184 using Teuchos::rcp_implicit_cast;
185 using Teuchos::rcpFromRef;
193 Aprime = transposer_type(Aprime).createTranspose();
198 addParams->set(
"Call fillComplete",
false);
200 Tpetra::MatrixMatrix::add<SC, LO, GO, NO>(beta, transposeB, B, alpha,
false, *Aprime, *C, Teuchos::null, Teuchos::null, addParams);
201 return rcp_implicit_cast<Matrix>(rcp(
new CrsWrap(rcp_implicit_cast<CrsType>(rcp(
new XTCrsType(C))))));
209 Bprime = transposer_type(Bprime).createTranspose();
211 if (!(Aprime->getRowMap()->isSameAs(*(Bprime->getRowMap())))) {
212 auto import = rcp(new import_type(Bprime->getRowMap(), Aprime->getRowMap()));
213 Bprime = Tpetra::importAndFillCompleteCrsMatrix<tcrs_matrix_type>(Bprime, *
import, Aprime->getDomainMap(), Aprime->getRangeMap());
216 LO numLocalRows = Aprime->getLocalNumRows();
219 for (
LO i = 0; i < numLocalRows; i++) {
220 allocPerRow[i] = Aprime->getNumEntriesInLocalRow(i) + Bprime->getNumEntriesInLocalRow(i);
225 Tpetra::MatrixMatrix::Add<SC, LO, GO, NO>(
226 *Aprime,
false, alpha,
227 *Bprime,
false, beta,
229 return rcp(
new CrsWrap(rcp_implicit_cast<CrsType>(rcp(
new XTCrsType(C)))));
static Teuchos::RCP< Matrix > tpetraAdd(const tcrs_matrix_type &A, bool transposeA, const typename tcrs_matrix_type::scalar_type alpha, const tcrs_matrix_type &B, bool transposeB, const typename tcrs_matrix_type::scalar_type beta)