diff options
author | Gael Guennebaud <g.gael@free.fr> | 2012-07-29 22:26:00 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2012-07-29 22:26:00 +0200 |
commit | 8f6d5eacb4af8fc31301625652a5017e6c2e50eb (patch) | |
tree | b3d0fd50370dcba4631ed51cb33bc6123c6e3d54 /Eigen/src/SparseLU/SparseLU_column_bmod.h | |
parent | ce30d50e3ed9723ed3ecd38e7c99661730c12813 (diff) |
optimize LU_kernel_bmod for small cases, and add an important .noalias()
Diffstat (limited to 'Eigen/src/SparseLU/SparseLU_column_bmod.h')
-rw-r--r-- | Eigen/src/SparseLU/SparseLU_column_bmod.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Eigen/src/SparseLU/SparseLU_column_bmod.h b/Eigen/src/SparseLU/SparseLU_column_bmod.h index 1457b6f35..5c26bd70e 100644 --- a/Eigen/src/SparseLU/SparseLU_column_bmod.h +++ b/Eigen/src/SparseLU/SparseLU_column_bmod.h @@ -122,7 +122,10 @@ int LU_column_bmod(const int jcol, const int nseg, BlockScalarVector& dense, Sca // Perform a triangular solver and block update, // then scatter the result of sup-col update to dense no_zeros = kfnz - fst_col; - LU_kernel_bmod(segsize, dense, tempv, lusup, luptr, nsupr, nrow, lsub, lptr, no_zeros); + if(segsize==1) + LU_kernel_bmod<1>::run(segsize, dense, tempv, lusup, luptr, nsupr, nrow, lsub, lptr, no_zeros); + else + LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, lusup, luptr, nsupr, nrow, lsub, lptr, no_zeros); } // end if jsupno } // end for each segment |