SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
Loading...
Searching...
No Matches
symm: Symmetric matrix multiply

Functions

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::symm (Side side, scalar_t alpha, SymmetricMatrix< scalar_t > &&A, Matrix< scalar_t > &&B, scalar_t beta, Matrix< scalar_t > &&C, int priority)
 Symmetric matrix multiply to update trailing matrix, where A is a single tile.
 
template<typename scalar_t >
void slate::internal::symm (internal::TargetType< Target::HostTask >, Side side, scalar_t alpha, SymmetricMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, int priority)
 Symmetric matrix multiply to update trailing matrix.
 
template<typename scalar_t >
void slate::internal::symm (internal::TargetType< Target::HostNest >, Side side, scalar_t alpha, SymmetricMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, int priority)
 Symmetric matrix multiply to update trailing matrix.
 

Detailed Description

Function Documentation

◆ symm() [1/3]

template<typename scalar_t >
void slate::internal::symm ( internal::TargetType< Target::HostNest ,
Side  side,
scalar_t  alpha,
SymmetricMatrix< scalar_t > &  A,
Matrix< scalar_t > &  B,
scalar_t  beta,
Matrix< scalar_t > &  C,
int  priority 
)

Symmetric matrix multiply to update trailing matrix.

Host nested OpenMP implementation.

◆ symm() [2/3]

template<typename scalar_t >
void slate::internal::symm ( internal::TargetType< Target::HostTask ,
Side  side,
scalar_t  alpha,
SymmetricMatrix< scalar_t > &  A,
Matrix< scalar_t > &  B,
scalar_t  beta,
Matrix< scalar_t > &  C,
int  priority 
)

Symmetric matrix multiply to update trailing matrix.

Host OpenMP task implementation.

◆ symm() [3/3]

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::symm ( Side  side,
scalar_t  alpha,
SymmetricMatrix< scalar_t > &&  A,
Matrix< scalar_t > &&  B,
scalar_t  beta,
Matrix< scalar_t > &&  C,
int  priority 
)

Symmetric matrix multiply to update trailing matrix, where A is a single tile.

If side = left, B and C are each a single block row; if side = right, B and C are each a single block col. Unlike most BLAS operations, here op(B) and op(C) must be both the same, either both NoTrans or both Trans. Dispatches to target implementations.