aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Product.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-07-09 23:59:18 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-07-09 23:59:18 +0200
commit8885d56928e45b3beda91e529845e369a17d0a91 (patch)
tree9c183c9129c07146a0da553bf10949fbab0642d7 /Eigen/src/Core/Product.h
parentfa60c72398fcfcacda5e034e796d85ee36da527d (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.h13
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