SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches

\(B = \alpha A + \beta B\) More...

Functions

template<typename scalar_t >
void slate::add (scalar_t alpha, Matrix< scalar_t > &A, scalar_t beta, Matrix< scalar_t > &B, Options const &opts)
 Distributed parallel general matrix-matrix addition.
 
template<typename scalar_t >
void slate::add (scalar_t alpha, BaseTrapezoidMatrix< scalar_t > &A, scalar_t beta, BaseTrapezoidMatrix< scalar_t > &B, Options const &opts)
 Distributed parallel matrix-matrix addition.
 

Detailed Description

\(B = \alpha A + \beta B\)

Function Documentation

◆ add() [1/2]

template<typename scalar_t >
void slate::add ( scalar_t  alpha,
BaseTrapezoidMatrix< scalar_t > &  A,
scalar_t  beta,
BaseTrapezoidMatrix< scalar_t > &  B,
Options const &  opts 
)

Distributed parallel matrix-matrix addition.

Performs the matrix-matrix operation

\[ B = \alpha A + \beta B, \]

where alpha and beta are scalars, and \(A\) and \(B\) are matrices, with \(A\) an m-by-n matrix and \(B\) a m-by-n matrix. Transposition is currently not supported. TODO: Support transposition.

Template Parameters
scalar_tOne of float, double, std::complex<float>, std::complex<double>.
Parameters
[in]alphaThe scalar alpha.
[in]AThe m-by-n matrix A.
[in]betaThe scalar beta.
[in,out]BOn entry, the m-by-n matrix B. On exit, overwritten by the result \(\alpha A + \beta B\).
[in]optsAdditional options, as map of name = value pairs. Possible options:
  • Option::Target: Implementation to target. Possible values:
    • HostTask: OpenMP tasks on CPU host [default].
    • HostNest: nested OpenMP parallel for loop on CPU host.
    • HostBatch: batched BLAS on CPU host.
    • Devices: batched BLAS on GPU device.

◆ add() [2/2]

template<typename scalar_t >
void slate::add ( scalar_t  alpha,
Matrix< scalar_t > &  A,
scalar_t  beta,
Matrix< scalar_t > &  B,
Options const &  opts 
)

Distributed parallel general matrix-matrix addition.

Performs the matrix-matrix operation

\[ B = \alpha A + \beta B, \]

where alpha and beta are scalars, and \(A\) and \(B\) are matrices, with \(A\) an m-by-n matrix and \(B\) a m-by-n matrix. Transposition is currently not supported. TODO: Support transposition.

Template Parameters
scalar_tOne of float, double, std::complex<float>, std::complex<double>.
Parameters
[in]alphaThe scalar alpha.
[in]AThe m-by-n matrix A.
[in]betaThe scalar beta.
[in,out]BOn entry, the m-by-n matrix B. On exit, overwritten by the result \(\alpha A + \beta B\).
[in]optsAdditional options, as map of name = value pairs. Possible options:
  • Option::Target: Implementation to target. Possible values:
    • HostTask: OpenMP tasks on CPU host [default].
    • HostNest: nested OpenMP parallel for loop on CPU host.
    • HostBatch: batched BLAS on CPU host.
    • Devices: batched BLAS on GPU device.