5 #ifndef FML_MPI_LINALG_ADD_H
6 #define FML_MPI_LINALG_ADD_H
10 #include "../../_internals/linalgutils.hh"
12 #include "../mpimat.hh"
14 #include "internals/err.hh"
15 #include "internals/pblas.hh"
40 template <
typename REAL>
43 err::check_grid(x, y, ret);
46 fml::linalgutils::matadd_params(transx, transy, x.
nrows(), x.
ncols(), y.
nrows(), y.
ncols(), &m, &n);
51 char ctransx = transx ?
'T' :
'N';
52 char ctransy = transy ?
'T' :
'N';
54 fml::pblas::geadd(ctransy, m, n, beta, y.
data_ptr(), y.desc_ptr(), (REAL) 0.0f, ret.
data_ptr(), ret.desc_ptr());
55 fml::pblas::geadd(ctransx, m, n, alpha, x.
data_ptr(), x.desc_ptr(), (REAL) 1.0f, ret.
data_ptr(), ret.desc_ptr());
61 template <
typename REAL>
64 err::check_grid(x, y);
67 fml::linalgutils::matadd_params(transx, transy, x.
nrows(), x.
ncols(), y.
nrows(), y.
ncols(), &m, &n);
69 const grid g = x.get_grid();
71 add(transx, transy, alpha, beta, x, y, ret);