diff options
Diffstat (limited to 'bench/btl')
-rw-r--r-- | bench/btl/data/action_settings.txt | 1 | ||||
-rwxr-xr-x | bench/btl/data/go_mean | 1 | ||||
-rw-r--r-- | bench/btl/libs/eigen3/eigen3_interface.hh | 6 |
3 files changed, 5 insertions, 3 deletions
diff --git a/bench/btl/data/action_settings.txt b/bench/btl/data/action_settings.txt index da80f56a0..e32213e22 100644 --- a/bench/btl/data/action_settings.txt +++ b/bench/btl/data/action_settings.txt @@ -5,6 +5,7 @@ axpby ; "{/*1.5 Y = alpha X + beta Y}" ; "vector size" ; 5:1000000 axpy ; "{/*1.5 Y += alpha X}" ; "vector size" ; 5:1000000 matrix_matrix ; "{/*1.5 matrix matrix product}" ; "matrix size" ; 4:3000 matrix_vector ; "{/*1.5 matrix vector product}" ; "matrix size" ; 4:3000 +trmm ; "{/*1.5 triangular matrix matrix product}" ; "matrix size" ; 4:3000 trisolve_vector ; "{/*1.5 triangular solver - vector (X = inv(L) X)}" ; "size" ; 4:3000 trisolve_matrix ; "{/*1.5 triangular solver - matrix (M = inv(L) M)}" ; "size" ; 4:3000 cholesky ; "{/*1.5 Cholesky decomposition}" ; "matrix size" ; 4:3000 diff --git a/bench/btl/data/go_mean b/bench/btl/data/go_mean index 176c3c994..42338ca27 100755 --- a/bench/btl/data/go_mean +++ b/bench/btl/data/go_mean @@ -38,6 +38,7 @@ source mk_mean_script.sh atv $1 11 50 300 1000 $mode $prefix source mk_mean_script.sh matrix_matrix $1 11 100 300 1000 $mode $prefix source mk_mean_script.sh aat $1 11 100 300 1000 $mode $prefix # source mk_mean_script.sh ata $1 11 100 300 1000 $mode $prefix +source mk_mean_script.sh trmm $1 11 100 300 1000 $mode $prefix source mk_mean_script.sh trisolve_vector $1 11 100 300 1000 $mode $prefix source mk_mean_script.sh trisolve_matrix $1 11 100 300 1000 $mode $prefix source mk_mean_script.sh cholesky $1 11 100 300 1000 $mode $prefix diff --git a/bench/btl/libs/eigen3/eigen3_interface.hh b/bench/btl/libs/eigen3/eigen3_interface.hh index 2fca393e9..31bcc1f93 100644 --- a/bench/btl/libs/eigen3/eigen3_interface.hh +++ b/bench/btl/libs/eigen3/eigen3_interface.hh @@ -195,16 +195,16 @@ public : } static inline void trisolve_lower_matrix(const gene_matrix & L, const gene_matrix& B, gene_matrix& X, int N){ - X = L.template triangularView<Lower>().solve(B); + X = L.template triangularView<Upper>().solve(B); } static inline void trmm(const gene_matrix & L, const gene_matrix& B, gene_matrix& X, int N){ - X = L.template triangularView<Lower>() * B; + X.noalias() = L.template triangularView<Lower>() * B; } static inline void cholesky(const gene_matrix & X, gene_matrix & C, int N){ C = X; - internal::llt_inplace<Lower>::blocked(C); + internal::llt_inplace<real,Lower>::blocked(C); //C = X.llt().matrixL(); // C = X; // Cholesky<gene_matrix>::computeInPlace(C); |