103 Mtype, DenseShape, DenseShape, GemmProduct>
119 MatrixReplacementA, MatrixReplacementB>& op,
120 const Mtype& m,
const Scalar& alpha) {
123 assert(alpha ==
Scalar(1) &&
"scaling is not implemented");
124 EIGEN_ONLY_USED_FOR_DEBUG(alpha);
126 Index half = op.rows() / 2;
136 const Map<const MatrixXd> m_reshaped(m.data(), m.rows() / 2, m.cols() * 2);
138 const MatrixXd temp = op.A_ * m_reshaped;
139 const Map<const MatrixXd> temp_unshaped(temp.data(), m.rows(), m.cols());
140 dst.topRows(half) = temp_unshaped.topRows(half);
141 dst.bottomRows(half) = -temp_unshaped.bottomRows(half);
144 const MatrixXd temp = op.B_ * m_reshaped;
145 const Map<const MatrixXd> temp_unshaped(temp.data(), m.rows(), m.cols());
146 dst.topRows(half) += temp_unshaped.bottomRows(half);
147 dst.bottomRows(half) -= temp_unshaped.topRows(half);