diff options
author | 2008-10-13 13:14:43 +0000 | |
---|---|---|
committer | 2008-10-13 13:14:43 +0000 | |
commit | e2bd8623f88c3e7aa1c4a2eaa5dc7ab351219a33 (patch) | |
tree | 53276dd191e8138b1df91026e3a53b73a6ae23d3 /Eigen/src/Core/Product.h | |
parent | 537a0e0a522123fd9e2938487d42e5c95ea4b640 (diff) |
Solve the issue found by Timothy in solveTriangular:
=> row-major rhs are now evaluated to a column-major
temporary before the computations.
Add solveInPlace in Cholesky*
Diffstat (limited to 'Eigen/src/Core/Product.h')
-rw-r--r-- | Eigen/src/Core/Product.h | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index 04deae0ab..429cdc0e9 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -36,8 +36,6 @@ struct ei_product_coeff_impl; template<int StorageOrder, int Index, typename Lhs, typename Rhs, typename PacketScalar, int LoadMode> struct ei_product_packet_impl; -template<typename T> struct ei_product_eval_to_column_major; - /** \class ProductReturnType * * \brief Helper class to get the correct and optimized returned type of operator* @@ -70,7 +68,7 @@ struct ProductReturnType<Lhs,Rhs,CacheFriendlyProduct> typedef typename ei_nested<Lhs,Rhs::ColsAtCompileTime>::type LhsNested; typedef typename ei_nested<Rhs,Lhs::RowsAtCompileTime, - typename ei_product_eval_to_column_major<Rhs>::type + typename ei_eval_to_column_major<Rhs>::type >::type RhsNested; typedef Product<LhsNested, RhsNested, CacheFriendlyProduct> Type; @@ -706,23 +704,12 @@ inline Derived& MatrixBase<Derived>::lazyAssign(const Product<Lhs,Rhs,CacheFrien return derived(); } -template<typename T> struct ei_product_eval_to_column_major -{ - typedef Matrix<typename ei_traits<T>::Scalar, - ei_traits<T>::RowsAtCompileTime, - ei_traits<T>::ColsAtCompileTime, - ColMajor, - ei_traits<T>::MaxRowsAtCompileTime, - ei_traits<T>::MaxColsAtCompileTime - > type; -}; - template<typename T> struct ei_product_copy_rhs { typedef typename ei_meta_if< (ei_traits<T>::Flags & RowMajorBit) || (!(ei_traits<T>::Flags & DirectAccessBit)), - typename ei_product_eval_to_column_major<T>::type, + typename ei_eval_to_column_major<T>::type, const T& >::ret type; }; |