diff options
Diffstat (limited to 'bench/btl/libs/eigen2')
-rw-r--r-- | bench/btl/libs/eigen2/eigen2_interface.hh | 9 | ||||
-rw-r--r-- | bench/btl/libs/eigen2/main_adv.cpp | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/bench/btl/libs/eigen2/eigen2_interface.hh b/bench/btl/libs/eigen2/eigen2_interface.hh index 186a485cf..ffc800a8d 100644 --- a/bench/btl/libs/eigen2/eigen2_interface.hh +++ b/bench/btl/libs/eigen2/eigen2_interface.hh @@ -109,7 +109,7 @@ public : static inline void symv(const gene_matrix & A, const gene_vector & B, gene_vector & X, int N){ //X = (A.template marked<SelfAdjoint|LowerTriangular>() * B)/*.lazy()*/; - ei_product_selfadjoint_vector<real,0,LowerTriangularBit>(N,A.data(),N, B.data(), X.data()); + ei_product_selfadjoint_vector<real,0,LowerTriangularBit,false,false>(N,A.data(),N, B.data(), 1, X.data(), 1); } template<typename Dest, typename Src> static void triassign(Dest& dst, const Src& src) @@ -186,11 +186,14 @@ public : } static inline void trisolve_lower(const gene_matrix & L, const gene_vector& B, gene_vector& X, int N){ - X = L.template marked<LowerTriangular>().solveTriangular(B); + X = L.template triangularView<LowerTriangular>().solve(B); } static inline void trisolve_lower_matrix(const gene_matrix & L, const gene_matrix& B, gene_matrix& X, int N){ - X = L.template marked<LowerTriangular>().solveTriangular(B); +// X = L.template triangularView<LowerTriangular>().solve(B); + X = B; + ei_triangular_solve_matrix<real,ColMajor,ColMajor,LowerTriangular> + ::run(L.cols(), X.cols(), L.data(), L.stride(), X.data(), X.stride()); } static inline void cholesky(const gene_matrix & X, gene_matrix & C, int N){ diff --git a/bench/btl/libs/eigen2/main_adv.cpp b/bench/btl/libs/eigen2/main_adv.cpp index e6c7fe7cd..c3e5fac30 100644 --- a/bench/btl/libs/eigen2/main_adv.cpp +++ b/bench/btl/libs/eigen2/main_adv.cpp @@ -23,7 +23,7 @@ #include "action_cholesky.hh" #include "action_hessenberg.hh" #include "action_lu_decomp.hh" -#include "action_partial_lu_decomp.hh" +// #include "action_partial_lu_decomp.hh" BTL_MAIN; @@ -33,7 +33,7 @@ int main() bench<Action_trisolve_matrix<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_cholesky<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_lu_decomp<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); - bench<Action_partial_lu_decomp<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); +// bench<Action_partial_lu_decomp<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_hessenberg<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_tridiagonalization<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); |