diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-08-02 15:32:43 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-08-02 15:32:43 +0200 |
commit | 0103de85126a950b2b02842ac7c4401133f898fb (patch) | |
tree | 675688637225ffd8c3085cb211a13b96649ea801 /Eigen/src | |
parent | 48fc64458cb16e0ce8a395a38bba56866b290133 (diff) |
bugfix in trsm
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Cholesky/LLT.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/SolveTriangular.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/Eigen/src/Cholesky/LLT.h b/Eigen/src/Cholesky/LLT.h index 58ac0c1fa..ef04b8fe4 100644 --- a/Eigen/src/Cholesky/LLT.h +++ b/Eigen/src/Cholesky/LLT.h @@ -169,7 +169,7 @@ template<> struct ei_llt_inplace<LowerTriangular> Block<MatrixType,Dynamic,Dynamic> A22(m,k+bs,k+bs,rs,rs); if(!unblocked(A11)) return false; - if(rs>0) A11.conjugate().template triangularView<LowerTriangular>().solveInPlace(A21.transpose()); + if(rs>0) A11.adjoint().template triangularView<UpperTriangular>().template solveInPlace<OnTheRight>(A21); if(rs>0) A22.template selfadjointView<LowerTriangular>().rankUpdate(A21,-1); // bottleneck } return true; diff --git a/Eigen/src/Core/SolveTriangular.h b/Eigen/src/Core/SolveTriangular.h index 15b45e4f2..810b08240 100644 --- a/Eigen/src/Core/SolveTriangular.h +++ b/Eigen/src/Core/SolveTriangular.h @@ -158,7 +158,7 @@ struct ei_triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,StorageOrder, const ActualLhsType actualLhs = LhsProductTraits::extract(lhs); ei_triangular_solve_matrix<Scalar,Side,Mode,LhsProductTraits::NeedToConjugate,StorageOrder, Rhs::Flags&RowMajorBit> - ::run(lhs.rows(), rhs.cols(), &actualLhs.coeff(0,0), actualLhs.stride(), &rhs.coeffRef(0,0), rhs.stride()); + ::run(lhs.rows(), Side==OnTheLeft? rhs.cols() : rhs.rows(), &actualLhs.coeff(0,0), actualLhs.stride(), &rhs.coeffRef(0,0), rhs.stride()); } }; |