diff --git a/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h b/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h index 84fd72fc6..14502f03f 100644 --- a/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +++ b/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h @@ -31,6 +31,8 @@ void kroneckerProduct_full(const Derived_A& A, const Derived_B& B, Derived_AB & Ac = A.cols(), Br = B.rows(), Bc = B.cols(); + AB.resize(Ar*Br,Ac*Bc); + for (unsigned int i=0; i -void kroneckerProduct(const MatrixBase& a, const MatrixBase& b, Matrix& c) -{ - c.resize(a.rows()*b.rows(),a.cols()*b.cols()); - internal::kroneckerProduct_full(a.derived(), b.derived(), c); -} - /*! * Computes Kronecker tensor product of two dense matrices * @@ -107,10 +93,9 @@ void kroneckerProduct(const MatrixBase& a, const MatrixBase& b, Matrix -void kroneckerProduct(const MatrixBase& a, const MatrixBase& b, MatrixBase const & c_) +void kroneckerProduct(const MatrixBase& a, const MatrixBase& b, const MatrixBase& c) { - MatrixBase& c = const_cast& >(c_); - internal::kroneckerProduct_full(a.derived(), b.derived(), c.derived()); + internal::kroneckerProduct_full(a.derived(), b.derived(), c.const_cast_derived()); } /*!