BLAS++ 2024.05.31
BLAS C++ API
|
\(A = \alpha xy^H + conj(\alpha) yx^H + A\) More...
Functions | |
template<typename TA , typename TX , typename TY > | |
void | blas::her2 (blas::Layout layout, blas::Uplo uplo, int64_t n, blas::scalar_type< TA, TX, TY > alpha, TX const *x, int64_t incx, TY const *y, int64_t incy, TA *A, int64_t lda) |
Hermitian matrix rank-2 update: | |
void | blas::her2 (blas::Layout layout, blas::Uplo uplo, int64_t n, float alpha, float const *x, int64_t incx, float const *y, int64_t incy, float *A, int64_t lda) |
CPU, float version. | |
void | blas::her2 (blas::Layout layout, blas::Uplo uplo, int64_t n, double alpha, double const *x, int64_t incx, double const *y, int64_t incy, double *A, int64_t lda) |
CPU, double version. | |
void | blas::her2 (blas::Layout layout, blas::Uplo uplo, int64_t n, std::complex< float > alpha, std::complex< float > const *x, int64_t incx, std::complex< float > const *y, int64_t incy, std::complex< float > *A, int64_t lda) |
CPU, complex<float> version. | |
void | blas::her2 (blas::Layout layout, blas::Uplo uplo, int64_t n, std::complex< double > alpha, std::complex< double > const *x, int64_t incx, std::complex< double > const *y, int64_t incy, std::complex< double > *A, int64_t lda) |
CPU, complex<double> version. | |
\(A = \alpha xy^H + conj(\alpha) yx^H + A\)
void blas::her2 | ( | blas::Layout | layout, |
blas::Uplo | uplo, | ||
int64_t | n, | ||
blas::scalar_type< TA, TX, TY > | alpha, | ||
TX const * | x, | ||
int64_t | incx, | ||
TY const * | y, | ||
int64_t | incy, | ||
TA * | A, | ||
int64_t | lda | ||
) |
Hermitian matrix rank-2 update:
\[ A = \alpha x y^H + \text{conj}(\alpha) y x^H + A, \]
where alpha is a scalar, x and y are vectors, and A is an n-by-n Hermitian matrix.
Generic implementation for arbitrary data types.
[in] | layout | Matrix storage, Layout::ColMajor or Layout::RowMajor. |
[in] | uplo | What part of the matrix A is referenced, the opposite triangle being assumed from symmetry.
|
[in] | n | Number of rows and columns of the matrix A. n >= 0. |
[in] | alpha | Scalar alpha. If alpha is zero, A is not updated. |
[in] | x | The n-element vector x, in an array of length (n-1)*abs(incx) + 1. |
[in] | incx | Stride between elements of x. incx must not be zero. If incx < 0, uses elements of x in reverse order: x(n-1), ..., x(0). |
[in] | y | The n-element vector y, in an array of length (n-1)*abs(incy) + 1. |
[in] | incy | Stride between elements of y. incy must not be zero. If incy < 0, uses elements of y in reverse order: y(n-1), ..., y(0). |
[in,out] | A | The n-by-n matrix A, stored in an lda-by-n array [RowMajor: n-by-lda]. Imaginary parts of the diagonal elements need not be set, are assumed to be zero on entry, and are set to zero on exit. |
[in] | lda | Leading dimension of A. lda >= max(1, n). |