TiledArray::math::blas Namespace Reference

Typedefs

using integer = int64_t
 
using Op = ::blas::Op
 
template<typename T , int Options = ::Eigen::ColMajor>
using Matrix = ::Eigen::Matrix< T, ::Eigen::Dynamic, ::Eigen::Dynamic, Options >
 
template<typename T >
using Vector = ::Eigen::Matrix< T, ::Eigen::Dynamic, 1, ::Eigen::ColMajor >
 

Functions

int64_t to_int (Op op)
 
template<typename S1 , typename T1 , typename T2 , typename S2 , typename T3 >
void gemm (Op op_a, Op op_b, const integer m, const integer n, const integer k, const S1 alpha, const T1 *a, const integer lda, const T2 *b, const integer ldb, const S2 beta, T3 *c, const integer ldc)
 
void gemm (Op op_a, Op op_b, const integer m, const integer n, const integer k, const float alpha, const float *a, const integer lda, const float *b, const integer ldb, const float beta, float *c, const integer ldc)
 
void gemm (Op op_a, Op op_b, const integer m, const integer n, const integer k, const double alpha, const double *a, const integer lda, const double *b, const integer ldb, const double beta, double *c, const integer ldc)
 
void gemm (Op op_a, Op op_b, const integer m, const integer n, const integer k, const std::complex< float > alpha, const std::complex< float > *a, const integer lda, const std::complex< float > *b, const integer ldb, const std::complex< float > beta, std::complex< float > *c, const integer ldc)
 
void gemm (Op op_a, Op op_b, const integer m, const integer n, const integer k, const std::complex< double > alpha, const std::complex< double > *a, const integer lda, const std::complex< double > *b, const integer ldb, const std::complex< double > beta, std::complex< double > *c, const integer ldc)
 
template<typename T , typename U >
std::enable_if< detail::is_numeric_v< T > >::type scale (const integer n, const T alpha, U *x)
 
void scale (const integer n, const float alpha, float *x)
 
void scale (const integer n, const double alpha, double *x)
 
void scale (const integer n, const std::complex< float > alpha, std::complex< float > *x)
 
void scale (const integer n, const std::complex< double > alpha, std::complex< double > *x)
 
void scale (const integer n, const float alpha, std::complex< float > *x)
 
void scale (const integer n, const double alpha, std::complex< double > *x)
 
template<typename T , typename U >
dot (const integer n, const T *x, const U *y)
 
float dot (const integer n, const float *x, const float *y)
 
double dot (integer n, const double *x, const double *y)
 
std::complex< float > dot (integer n, const std::complex< float > *x, const std::complex< float > *y)
 
std::complex< double > dot (integer n, const std::complex< double > *x, const std::complex< double > *y)
 

Typedef Documentation

◆ integer

using TiledArray::math::blas::integer = typedef int64_t

the integer type used by C++ BLAS/LAPACK interface, same as that used by BLAS++/LAPACK++

Definition at line 44 of file blas.h.

◆ Matrix

template<typename T , int Options = ::Eigen::ColMajor>
using TiledArray::math::blas::Matrix = typedef ::Eigen::Matrix<T, ::Eigen::Dynamic, ::Eigen::Dynamic, Options>

Definition at line 63 of file blas.h.

◆ Op

Definition at line 46 of file blas.h.

◆ Vector

template<typename T >
using TiledArray::math::blas::Vector = typedef ::Eigen::Matrix<T, ::Eigen::Dynamic, 1, ::Eigen::ColMajor>

Definition at line 66 of file blas.h.

Function Documentation

◆ dot() [1/5]

float TiledArray::math::blas::dot ( const integer  n,
const float *  x,
const float *  y 
)
inline

Definition at line 241 of file blas.h.

Here is the call graph for this function:

◆ dot() [2/5]

template<typename T , typename U >
T TiledArray::math::blas::dot ( const integer  n,
const T *  x,
const U *  y 
)

Definition at line 237 of file blas.h.

◆ dot() [3/5]

double TiledArray::math::blas::dot ( integer  n,
const double *  x,
const double *  y 
)
inline

Definition at line 245 of file blas.h.

Here is the call graph for this function:

◆ dot() [4/5]

std::complex<double> TiledArray::math::blas::dot ( integer  n,
const std::complex< double > *  x,
const std::complex< double > *  y 
)
inline

Definition at line 254 of file blas.h.

Here is the caller graph for this function:

◆ dot() [5/5]

std::complex<float> TiledArray::math::blas::dot ( integer  n,
const std::complex< float > *  x,
const std::complex< float > *  y 
)
inline

Definition at line 249 of file blas.h.

Here is the call graph for this function:

◆ gemm() [1/5]

void TiledArray::math::blas::gemm ( Op  op_a,
Op  op_b,
const integer  m,
const integer  n,
const integer  k,
const double  alpha,
const double *  a,
const integer  lda,
const double *  b,
const integer  ldb,
const double  beta,
double *  c,
const integer  ldc 
)
inline

Definition at line 171 of file blas.h.

Here is the call graph for this function:

◆ gemm() [2/5]

void TiledArray::math::blas::gemm ( Op  op_a,
Op  op_b,
const integer  m,
const integer  n,
const integer  k,
const float  alpha,
const float *  a,
const integer  lda,
const float *  b,
const integer  ldb,
const float  beta,
float *  c,
const integer  ldc 
)
inline

Definition at line 163 of file blas.h.

Here is the call graph for this function:

◆ gemm() [3/5]

template<typename S1 , typename T1 , typename T2 , typename S2 , typename T3 >
void TiledArray::math::blas::gemm ( Op  op_a,
Op  op_b,
const integer  m,
const integer  n,
const integer  k,
const S1  alpha,
const T1 *  a,
const integer  lda,
const T2 *  b,
const integer  ldb,
const S2  beta,
T3 *  c,
const integer  ldc 
)
inline

Definition at line 71 of file blas.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gemm() [4/5]

void TiledArray::math::blas::gemm ( Op  op_a,
Op  op_b,
const integer  m,
const integer  n,
const integer  k,
const std::complex< double >  alpha,
const std::complex< double > *  a,
const integer  lda,
const std::complex< double > *  b,
const integer  ldb,
const std::complex< double >  beta,
std::complex< double > *  c,
const integer  ldc 
)
inline

Definition at line 189 of file blas.h.

Here is the caller graph for this function:

◆ gemm() [5/5]

void TiledArray::math::blas::gemm ( Op  op_a,
Op  op_b,
const integer  m,
const integer  n,
const integer  k,
const std::complex< float >  alpha,
const std::complex< float > *  a,
const integer  lda,
const std::complex< float > *  b,
const integer  ldb,
const std::complex< float >  beta,
std::complex< float > *  c,
const integer  ldc 
)
inline

Definition at line 179 of file blas.h.

Here is the call graph for this function:

◆ scale() [1/7]

void TiledArray::math::blas::scale ( const integer  n,
const double  alpha,
double *  x 
)
inline

Definition at line 211 of file blas.h.

◆ scale() [2/7]

void TiledArray::math::blas::scale ( const integer  n,
const double  alpha,
std::complex< double > *  x 
)
inline

Definition at line 229 of file blas.h.

◆ scale() [3/7]

void TiledArray::math::blas::scale ( const integer  n,
const float  alpha,
float *  x 
)
inline

Definition at line 207 of file blas.h.

◆ scale() [4/7]

void TiledArray::math::blas::scale ( const integer  n,
const float  alpha,
std::complex< float > *  x 
)
inline

Definition at line 225 of file blas.h.

◆ scale() [5/7]

void TiledArray::math::blas::scale ( const integer  n,
const std::complex< double >  alpha,
std::complex< double > *  x 
)
inline

Definition at line 220 of file blas.h.

◆ scale() [6/7]

void TiledArray::math::blas::scale ( const integer  n,
const std::complex< float >  alpha,
std::complex< float > *  x 
)
inline

Definition at line 215 of file blas.h.

◆ scale() [7/7]

template<typename T , typename U >
std::enable_if<detail::is_numeric_v<T> >::type TiledArray::math::blas::scale ( const integer  n,
const T  alpha,
U *  x 
)
inline

Definition at line 202 of file blas.h.

◆ to_int()

int64_t TiledArray::math::blas::to_int ( Op  op)
inline

converts Op to ints in manner useful for bit manipulations NoTranspose -> 0, Transpose->1, ConjTranspose->2

Definition at line 53 of file blas.h.

Here is the caller graph for this function: