BLAS++ 2024.05.31
BLAS C++ API
|
\(C = \alpha A A^H + \beta C\) where \(C\) is Hermitian More...
Functions | |
template<typename TA , typename TC > | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, real_type< TA, TC > alpha, TA const *A, int64_t lda, real_type< TA, TC > beta, TC *C, int64_t ldc) |
Hermitian rank-k update: | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< float > const &alpha, std::vector< float * > const &Aarray, std::vector< int64_t > const &lda, std::vector< float > const &beta, std::vector< float * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info) |
CPU, variable-size batched, float version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< double > const &alpha, std::vector< double * > const &Aarray, std::vector< int64_t > const &lda, std::vector< double > const &beta, std::vector< double * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info) |
CPU, variable-size batched, double version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< float > const &alpha, std::vector< std::complex< float > * > const &Aarray, std::vector< int64_t > const &lda, std::vector< float > const &beta, std::vector< std::complex< float > * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info) |
CPU, variable-size batched, complex<float> version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< double > const &alpha, std::vector< std::complex< double > * > const &Aarray, std::vector< int64_t > const &lda, std::vector< double > const &beta, std::vector< std::complex< double > * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info) |
CPU, variable-size batched, complex<double> version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< float > const &alpha, std::vector< float * > const &Aarray, std::vector< int64_t > const &lda, std::vector< float > const &beta, std::vector< float * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info, blas::Queue &queue) |
GPU device, variable-size batched, float version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< double > const &alpha, std::vector< double * > const &Aarray, std::vector< int64_t > const &lda, std::vector< double > const &beta, std::vector< double * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info, blas::Queue &queue) |
GPU device, variable-size batched, double version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< float > const &alpha, std::vector< std::complex< float > * > const &Aarray, std::vector< int64_t > const &lda, std::vector< float > const &beta, std::vector< std::complex< float > * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info, blas::Queue &queue) |
GPU device, variable-size batched, complex<float> version. | |
void | blas::batch::herk (blas::Layout layout, std::vector< blas::Uplo > const &uplo, std::vector< blas::Op > const &trans, std::vector< int64_t > const &n, std::vector< int64_t > const &k, std::vector< double > const &alpha, std::vector< std::complex< double > * > const &Aarray, std::vector< int64_t > const &lda, std::vector< double > const &beta, std::vector< std::complex< double > * > const &Carray, std::vector< int64_t > const &ldc, size_t batch_size, std::vector< int64_t > &info, blas::Queue &queue) |
GPU device, variable-size batched, complex<double> version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, float alpha, float const *A, int64_t lda, float beta, float *C, int64_t ldc, blas::Queue &queue) |
GPU device, float version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, double alpha, double const *A, int64_t lda, double beta, double *C, int64_t ldc, blas::Queue &queue) |
GPU device, double version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, float alpha, std::complex< float > const *A, int64_t lda, float beta, std::complex< float > *C, int64_t ldc, blas::Queue &queue) |
GPU device, complex<float> version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, double alpha, std::complex< double > const *A, int64_t lda, double beta, std::complex< double > *C, int64_t ldc, blas::Queue &queue) |
GPU device, complex<double> version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, float alpha, float const *A, int64_t lda, float beta, float *C, int64_t ldc) |
CPU, float version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, double alpha, double const *A, int64_t lda, double beta, double *C, int64_t ldc) |
CPU, double version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, float alpha, std::complex< float > const *A, int64_t lda, float beta, std::complex< float > *C, int64_t ldc) |
CPU, complex<float> version. | |
void | blas::herk (blas::Layout layout, blas::Uplo uplo, blas::Op trans, int64_t n, int64_t k, double alpha, std::complex< double > const *A, int64_t lda, double beta, std::complex< double > *C, int64_t ldc) |
CPU, complex<double> version. | |
\(C = \alpha A A^H + \beta C\) where \(C\) is Hermitian
void blas::herk | ( | blas::Layout | layout, |
blas::Uplo | uplo, | ||
blas::Op | trans, | ||
int64_t | n, | ||
int64_t | k, | ||
real_type< TA, TC > | alpha, | ||
TA const * | A, | ||
int64_t | lda, | ||
real_type< TA, TC > | beta, | ||
TC * | C, | ||
int64_t | ldc | ||
) |
Hermitian rank-k update:
\[ C = \alpha A A^H + \beta C, \]
or
\[ C = \alpha A^H A + \beta C, \]
where alpha and beta are real scalars, C is an n-by-n Hermitian matrix, and A is an n-by-k or k-by-n matrix.
Generic implementation for arbitrary data types.
[in] | layout | Matrix storage, Layout::ColMajor or Layout::RowMajor. |
[in] | uplo | What part of the matrix C is referenced, the opposite triangle being assumed from symmetry:
|
[in] | trans | The operation to be performed:
|
[in] | n | Number of rows and columns of the matrix C. n >= 0. |
[in] | k |
|
[in] | alpha | Scalar alpha. If alpha is zero, A is not accessed. |
[in] | A |
|
[in] | lda | Leading dimension of A. If trans = NoTrans: lda >= max(1, n) [RowMajor: lda >= max(1, k)], If Otherwise: lda >= max(1, k) [RowMajor: lda >= max(1, n)]. |
[in] | beta | Scalar beta. If beta is zero, C need not be set on input. |
[in] | C | The n-by-n Hermitian matrix C, stored in an lda-by-n array [RowMajor: n-by-lda]. |
[in] | ldc | Leading dimension of C. ldc >= max(1, n). |