diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-09-03 10:45:32 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-09-03 10:45:32 +0200 |
commit | c893917d65724aee15cad8c2d5d711d991c361c9 (patch) | |
tree | b93a7dbf2d5985fcaac0c04f41a024b212789e99 /Eigen/src/Core/SolveTriangular.h | |
parent | 8d449bd80e6e34506dae1be31478dc46a87f663b (diff) |
Fix serious bug discovered with gcc 4.2
Diffstat (limited to 'Eigen/src/Core/SolveTriangular.h')
-rw-r--r-- | Eigen/src/Core/SolveTriangular.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Eigen/src/Core/SolveTriangular.h b/Eigen/src/Core/SolveTriangular.h index 810b08240..c7f0cd227 100644 --- a/Eigen/src/Core/SolveTriangular.h +++ b/Eigen/src/Core/SolveTriangular.h @@ -30,7 +30,7 @@ template<typename Lhs, typename Rhs, int Side, // can be OnTheLeft/OnTheRight int Unrolling = Rhs::IsVectorAtCompileTime && Rhs::SizeAtCompileTime <= 8 // FIXME ? CompleteUnrolling : NoUnrolling, - int StorageOrder = int(Lhs::Flags) & RowMajorBit, + int StorageOrder = (int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor, int RhsCols = Rhs::ColsAtCompileTime > struct ei_triangular_solver_selector; @@ -157,7 +157,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> + (Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor> ::run(lhs.rows(), Side==OnTheLeft? rhs.cols() : rhs.rows(), &actualLhs.coeff(0,0), actualLhs.stride(), &rhs.coeffRef(0,0), rhs.stride()); } }; |