Changeset 70

Show
Ignore:
Timestamp:
08/12/08 02:48:21 (5 months ago)
Author:
pernet
Message:

Minor change in the computation of the row permutation
Remove commented debugging code

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • include/fflas-ffpack/ffpack_ludivine.inl

    r27 r70  
    421421                                        ip++; 
    422422                                } 
    423                                 if (ip == rowDim) {return 0;} 
    424                                 else{ 
     423                                if (ip == rowDim) { 
     424                                        return 0; 
     425                                } else { 
    425426                                        size_t oldip = ip; 
    426427                                        if ( Diag == FflasNonUnit ){ 
     
    463464                size_t Ndown =  rowDim - Nup; 
    464465                // Recursive call on NW 
    465                 //cerr<<"LUdivine1.."; 
    466  
    467                 //cerr<<"done"<<endl; 
    468466                size_t R, R2; 
    469467                if (trans == FflasTrans){ 
    470                         //cerr<<"LUdivine1..."<<endl; 
    471468                        R = LUdivine (F, Diag, trans, colDim, Nup, A, lda, P, Q, LuTag, cutoff); 
    472                         //cerr<<"done"<<endl; 
    473469                        typename Field::Element *Ar = A + Nup*incRow; // SW 
    474470                        typename Field::Element *Ac = A + R*incCol;     // NE 
     
    480476                                applyP (F, FflasLeft, FflasNoTrans, Ndown, 0, R, Ar, lda, P);  
    481477                                // Ar <- L1^-1 Ar 
    482                                 //write_field(F,cerr<<"Avant ftrsm"<<endl, A, M, N, lda); 
    483478                                ftrsm( F, FflasLeft, FflasLower,  
    484479                                       FflasNoTrans, Diag, R, Ndown,   
    485480                                       one, A, lda, Ar, lda); 
    486481                                // An <- An - Ac*Ar 
    487                                 //write_field(F,cerr<<"Avant fgemm"<<endl, A, M, N, lda); 
    488482                                fgemm( F, FflasNoTrans, FflasNoTrans, colDim-R, Ndown, R, 
    489483                                       Mone, Ac, lda, Ar, lda, one, An, lda); 
    490                                 //write_field(F,cerr<<"Apres fgemm"<<endl, A, M, N, lda); 
    491                                                          
    492484                        } 
    493485                        // Recursive call on SE 
    494                         // cerr<<"LUdivine2.."; 
    495 //                      write_field(F,cerr<<"Apres mise a jour"<<endl, A, M, N, lda); 
    496                          
    497486                        R2 = LUdivine (F, Diag, trans, colDim-R, Ndown, An, lda, P + R, Q + Nup, LuTag, cutoff); 
    498                         //cerr<<"done"<<endl; 
    499487                        for (size_t i = R; i < R + R2; ++i) 
    500488                                P[i] += R; 
     
    515503                        } else {                         
    516504                                // Ar <- Ar.P 
    517                                  
    518505                                applyP (F, FflasRight, FflasTrans, Ndown, 0, R, Ar, lda, P);  
    519506                                // Ar <- Ar.U1^-1 
     
    524511                                fgemm( F, FflasNoTrans, FflasNoTrans, Ndown, colDim-R, R, 
    525512                                       Mone, Ar, lda, Ac, lda, one, An, lda); 
    526                                 // Recursive call on SE 
     513                                 
    527514                        } 
    528                         // cerr<<"LUdivine2.."; 
    529 //                      write_field(F,cerr<<"Apres mise a jour"<<endl, A, M, N, lda); 
     515                        // Recursive call on SE 
    530516                        R2=LUdivine (F, Diag, trans, Ndown, N-R, An, lda,P+R, Q+Nup, LuTag, cutoff); 
    531                         //cerr<<"done"<<endl; 
    532517                        for (size_t i = R; i < R + R2; ++i) 
    533518                                P[i] += R; 
     
    540525                } 
    541526                // Non zero row permutations 
    542                 for (size_t i = Nup; i < rowDim; i++) 
     527                for (size_t i = Nup; i < Nup + R2; i++) 
    543528                        Q[i] += Nup; 
    544529                if (R < Nup){ 
     
    638623                        typename Field::Element * Xn = Xr + Nup;    //  SE 
    639624                        typename Field::Element * Xi = Xr; 
    640                         if ( computeX ) 
     625                        if ( computeX ){ 
    641626                                if (MinTag == FfpackDense) 
    642627                                        for (size_t i=0; i< Ndown; ++i, Xi+=ldx){ 
     
    651636                                                fcopy(F, N, u,1,Xi, 1); 
    652637                                        } 
    653                           
     638                        } 
    654639                        // Apply the permutation on SW 
    655                 applyP( F, FflasRight, FflasTrans, Ndown, 0, R, Xr, ldx, P);  
     640                        applyP( F, FflasRight, FflasTrans, Ndown, 0, R, Xr, ldx, P);  
    656641                        // Triangular block inversion of NW and apply to SW 
    657642                        // Xr <- Xr.U1^-1