optimize LU_kernel_bmod for small cases, and add an important .noalias()

This commit is contained in:
Gael Guennebaud
2012-07-29 22:26:00 +02:00
parent ce30d50e3e
commit 8f6d5eacb4
3 changed files with 85 additions and 48 deletions

View File

@@ -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