inline void smat_smat_mult(const MatrixA& a, const MatrixB& b, MatrixC& c, Assign, tag::row_major, // orientation a tag::col_major) // orientation b { // Copy B into a row-major matrix compressed2D<typename Collection<MatrixB>::value_type, matrix::parameters<> > b_copy(num_rows(b), num_cols(b)); b_copy= b; smat_smat_mult(a, b_copy, c, Assign(), tag::row_major(), tag::row_major()); }
inline void smat_smat_mult(const MatrixA& A, const MatrixB& B, MatrixC& C, Assign, tag::row_major, // orientation A tag::col_major) // orientation B { vampir_trace<4020> tracer; // Copy B into a sparse row-major matrix typename mtl::traits::transposed_sparse_matrix_type<MatrixB>::type B_copy(num_rows(B), num_cols(B)); B_copy= B; smat_smat_mult(A, B_copy, C, Assign(), tag::row_major(), tag::row_major()); }