diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-07-09 23:59:18 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-07-09 23:59:18 +0200 |
commit | 8885d56928e45b3beda91e529845e369a17d0a91 (patch) | |
tree | 9c183c9129c07146a0da553bf10949fbab0642d7 /Eigen/src/Core/Product.h | |
parent | fa60c72398fcfcacda5e034e796d85ee36da527d (diff) |
commit woking versions of triangular solvers naturally
handling conjuagted expression. still have to bench whether it
is faster (runtime and compile time) to directly call the
cache friendly functions, whence all the commented piece of code...
Diffstat (limited to 'Eigen/src/Core/Product.h')
-rw-r--r-- | Eigen/src/Core/Product.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index 44fde3dcf..8bd6af1b8 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -129,6 +129,19 @@ template<typename Scalar, typename NestedXpr> struct ei_product_factor_traits<Cw { return - Base::extractScalarFactor(x._expression()); } }; +// pop opposite +template<typename NestedXpr> struct ei_product_factor_traits<NestByValue<NestedXpr> > + : ei_product_factor_traits<NestedXpr> +{ + typedef typename NestedXpr::Scalar Scalar; + typedef ei_product_factor_traits<NestedXpr> Base; + typedef NestByValue<NestedXpr> XprType; + typedef typename Base::ActualXprType ActualXprType; + static inline const ActualXprType& extract(const XprType& x) { return Base::extract(static_cast<const NestedXpr&>(x)); } + static inline Scalar extractScalarFactor(const XprType& x) + { return Base::extractScalarFactor(static_cast<const NestedXpr&>(x)); } +}; + /* Helper class to determine the type of the product, can be either: * - NormalProduct * - CacheFriendlyProduct |