Pressio / pressio

core C++ library
Other
45 stars 7 forks source link

ops: epetra: revise matrix-matrix product #534

Closed mzuzek closed 1 year ago

mzuzek commented 1 year ago

@fnrizzi

refs #451

Contents

Overloads

Epetra level-3 pressio::ops::product() (i.e. performing C = alpha * op(A) * op(B) + beta * C) overloads:

A B C op(A) op(B)
epetra MV epetra MV eigen matrix transpose nontranspose
epetra MV epetra MV dynamic eigen matrix
(returned value)
transpose nontranspose
epetra MV
(self product)
eigen matrix transpose nontranspose
epetra MV
(self product)
dynamic eigen matrix
(returned value)
transpose nontranspose

Test coverage

Test cases for Epetra level-3 implementations of pressio::ops::product() (op(A) is always transpose and op(B) is always nontranspose):

test A B C
mv_T_mv_storein_eigen_C
mv_T_mv_storein_eigen_C_beta0
Epetra_MultiVector Epetra_MultiVector Eigen::MatrixXd
mv_T_self_storein_eigen_C
mv_T_self_storein_eigen_C_beta0
Epetra_MultiVector Eigen::MatrixXd
mzuzek commented 1 year ago

thanks @fnrizzi for your review!