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/SparseDenseProduct.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/SparseDenseProduct.h')
-rw-r--r-- | Eigen/src/SparseCore/SparseDenseProduct.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Eigen/src/SparseCore/SparseDenseProduct.h b/Eigen/src/SparseCore/SparseDenseProduct.h index ed3cb1990..5aea11425 100644 --- a/Eigen/src/SparseCore/SparseDenseProduct.h +++ b/Eigen/src/SparseCore/SparseDenseProduct.h @@ -147,6 +147,11 @@ struct generic_product_impl<Lhs, Rhs, SparseShape, DenseShape, ProductType> }; template<typename Lhs, typename Rhs, int ProductType> +struct generic_product_impl<Lhs, Rhs, SparseTriangularShape, DenseShape, ProductType> + : generic_product_impl<Lhs, Rhs, SparseShape, DenseShape, ProductType> +{}; + +template<typename Lhs, typename Rhs, int ProductType> struct generic_product_impl<Lhs, Rhs, DenseShape, SparseShape, ProductType> { template<typename Dest> @@ -158,12 +163,17 @@ struct generic_product_impl<Lhs, Rhs, DenseShape, SparseShape, ProductType> RhsNested rhsNested(rhs); dst.setZero(); - // transpoe everything + // transpose everything Transpose<Dest> dstT(dst); internal::sparse_time_dense_product(rhsNested.transpose(), lhsNested.transpose(), dstT, typename Dest::Scalar(1)); } }; +template<typename Lhs, typename Rhs, int ProductType> +struct generic_product_impl<Lhs, Rhs, DenseShape, SparseTriangularShape, ProductType> + : generic_product_impl<Lhs, Rhs, DenseShape, SparseShape, ProductType> +{}; + template<typename LhsT, typename RhsT, bool NeedToTranspose> struct sparse_dense_outer_product_evaluator { |