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

Functions

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::copyhb2st (HermitianBandMatrix< scalar_t > &A, std::vector< blas::real_type< scalar_t > > &D, std::vector< blas::real_type< scalar_t > > &E)
 Copy tri-diagonal HermitianBand matrix to two vectors.
 
template<typename scalar_t >
void slate::internal::copyhb2st (internal::TargetType< Target::HostTask >, HermitianBandMatrix< scalar_t > A, std::vector< blas::real_type< scalar_t > > &D, std::vector< blas::real_type< scalar_t > > &E)
 Copy tri-diagonal HermitianBand matrix to two vectors.
 
template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::copytb2bd (TriangularBandMatrix< scalar_t > &A, std::vector< blas::real_type< scalar_t > > &D, std::vector< blas::real_type< scalar_t > > &E)
 Copy bi-diagonal TriangularBand matrix to two vectors.
 
template<typename scalar_t >
void slate::internal::copytb2bd (internal::TargetType< Target::HostTask >, TriangularBandMatrix< scalar_t > A, std::vector< blas::real_type< scalar_t > > &D, std::vector< blas::real_type< scalar_t > > &E)
 Copy bi-diagonal TriangularBand matrix to two vectors.
 
template<Target target = Target::HostTask, typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy (Matrix< src_scalar_t > &&A, Matrix< dst_scalar_t > &&B, int priority, int queue_index)
 Copy and precision conversion.
 
template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy (internal::TargetType< Target::HostTask >, Matrix< src_scalar_t > &A, Matrix< dst_scalar_t > &B, int priority, int queue_index)
 Copy and precision conversion.
 
template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy (internal::TargetType< Target::Devices >, Matrix< src_scalar_t > &A, Matrix< dst_scalar_t > &B, int priority, int queue_index)
 Copy and precision conversion.
 
template<Target target = Target::HostTask, typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy (BaseTrapezoidMatrix< src_scalar_t > &&A, BaseTrapezoidMatrix< dst_scalar_t > &&B, int priority, int queue_index)
 Copy and precision conversion.
 
template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy (internal::TargetType< Target::HostTask >, BaseTrapezoidMatrix< src_scalar_t > &A, BaseTrapezoidMatrix< dst_scalar_t > &B, int priority, int queue_index)
 Copy and precision conversion.
 
template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy (internal::TargetType< Target::Devices >, BaseTrapezoidMatrix< src_scalar_t > &A, BaseTrapezoidMatrix< dst_scalar_t > &B, int priority, int queue_index)
 Copy and precision conversion.
 
template<typename scalar_t >
void slate::redistribute (Matrix< scalar_t > &A, Matrix< scalar_t > &B, Options const &opts)
 Redistribute a matrix A from one distribution into matrix B with another distribution.
 

Detailed Description

Function Documentation

◆ copy() [1/6]

template<Target target = Target::HostTask, typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy ( BaseTrapezoidMatrix< src_scalar_t > &&  A,
BaseTrapezoidMatrix< dst_scalar_t > &&  B,
int  priority,
int  queue_index 
)

Copy and precision conversion.

Dispatches to target implementations.

◆ copy() [2/6]

template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy ( internal::TargetType< Target::Devices ,
BaseTrapezoidMatrix< src_scalar_t > &  A,
BaseTrapezoidMatrix< dst_scalar_t > &  B,
int  priority,
int  queue_index 
)

Copy and precision conversion.

assumes A & B have same tile layout and dimensions, and have same distribution TODO: Inspect transposition? GPU device implementation.

◆ copy() [3/6]

template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy ( internal::TargetType< Target::Devices ,
Matrix< src_scalar_t > &  A,
Matrix< dst_scalar_t > &  B,
int  priority,
int  queue_index 
)

Copy and precision conversion.

Assumes A & B have same tile layout, dimensions, and distribution. TODO: Inspect transposition? GPU device implementation.

◆ copy() [4/6]

template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy ( internal::TargetType< Target::HostTask ,
BaseTrapezoidMatrix< src_scalar_t > &  A,
BaseTrapezoidMatrix< dst_scalar_t > &  B,
int  priority,
int  queue_index 
)

Copy and precision conversion.

assumes A & B have same tile layout and dimensions, and have same distribution TODO handle transpose A case Host OpenMP task implementation.

◆ copy() [5/6]

template<typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy ( internal::TargetType< Target::HostTask ,
Matrix< src_scalar_t > &  A,
Matrix< dst_scalar_t > &  B,
int  priority,
int  queue_index 
)

Copy and precision conversion.

assumes A & B have same tile layout and dimensions, and have same distribution TODO handle transpose A case Host OpenMP task implementation.

◆ copy() [6/6]

template<Target target = Target::HostTask, typename src_scalar_t , typename dst_scalar_t >
void slate::internal::copy ( Matrix< src_scalar_t > &&  A,
Matrix< dst_scalar_t > &&  B,
int  priority,
int  queue_index 
)

Copy and precision conversion.

Dispatches to target implementations.

◆ copyhb2st() [1/2]

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::copyhb2st ( HermitianBandMatrix< scalar_t > &  A,
std::vector< blas::real_type< scalar_t > > &  D,
std::vector< blas::real_type< scalar_t > > &  E 
)

Copy tri-diagonal HermitianBand matrix to two vectors.

Dispatches to target implementations.

◆ copyhb2st() [2/2]

template<typename scalar_t >
void slate::internal::copyhb2st ( internal::TargetType< Target::HostTask ,
HermitianBandMatrix< scalar_t >  A,
std::vector< blas::real_type< scalar_t > > &  D,
std::vector< blas::real_type< scalar_t > > &  E 
)

Copy tri-diagonal HermitianBand matrix to two vectors.

Host OpenMP task implementation.

◆ copytb2bd() [1/2]

template<typename scalar_t >
void slate::internal::copytb2bd ( internal::TargetType< Target::HostTask ,
TriangularBandMatrix< scalar_t >  A,
std::vector< blas::real_type< scalar_t > > &  D,
std::vector< blas::real_type< scalar_t > > &  E 
)

Copy bi-diagonal TriangularBand matrix to two vectors.

Host OpenMP task implementation.

◆ copytb2bd() [2/2]

template<Target target = Target::HostTask, typename scalar_t >
void slate::internal::copytb2bd ( TriangularBandMatrix< scalar_t > &  A,
std::vector< blas::real_type< scalar_t > > &  D,
std::vector< blas::real_type< scalar_t > > &  E 
)

Copy bi-diagonal TriangularBand matrix to two vectors.

Dispatches to target implementations.