diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-10-06 16:11:26 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-10-06 16:11:26 +0200 |
commit | d44d432baa142fdbe17f9d3abeab2c7629e199b8 (patch) | |
tree | e36ed1b2515d9d307925fa30ef4e389b279d1ed1 /Eigen/src/SparseCore/SparseProduct.h | |
parent | 893bfcf95fd7aaa49747f029bac708a02a1526cd (diff) |
Re-enable products with triangular views of sparse matrices: we simply have to treat them as a sparse matrix.
Diffstat (limited to 'Eigen/src/SparseCore/SparseProduct.h')
-rw-r--r-- | Eigen/src/SparseCore/SparseProduct.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Eigen/src/SparseCore/SparseProduct.h b/Eigen/src/SparseCore/SparseProduct.h index ae707376a..c62386ed1 100644 --- a/Eigen/src/SparseCore/SparseProduct.h +++ b/Eigen/src/SparseCore/SparseProduct.h @@ -33,6 +33,7 @@ SparseMatrixBase<Derived>::operator*(const SparseMatrixBase<OtherDerived> &other namespace internal { +// sparse * sparse template<typename Lhs, typename Rhs, int ProductType> struct generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType> { @@ -48,6 +49,18 @@ struct generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType> } }; +// sparse * sparse-triangular +template<typename Lhs, typename Rhs, int ProductType> +struct generic_product_impl<Lhs, Rhs, SparseShape, SparseTriangularShape, ProductType> + : public generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType> +{}; + +// sparse-triangular * sparse +template<typename Lhs, typename Rhs, int ProductType> +struct generic_product_impl<Lhs, Rhs, SparseTriangularShape, SparseShape, ProductType> + : public generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType> +{}; + template<typename Lhs, typename Rhs, int Options> struct evaluator<SparseView<Product<Lhs, Rhs, Options> > > : public evaluator<typename Product<Lhs, Rhs, DefaultProduct>::PlainObject>::type |