| 
    BLAS++ 2024.05.31
    
   BLAS C++ API 
   | 
 
\(A = \alpha xy^T + \alpha yx^T + A\) More...
Functions | |
| template<typename TA , typename TX , typename TY > | |
| void | blas::syr2 (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) | 
| Symmetric matrix rank-2 update:   | |
| void | blas::syr2 (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::syr2 (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::syr2 (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::syr2 (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^T + \alpha yx^T + A\)
| void blas::syr2 | ( | 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 | ||
| ) | 
Symmetric matrix rank-2 update:
\[ A = \alpha x y^T + \alpha y x^T + A, \]
where alpha is a scalar, x and y are vectors, and A is an n-by-n symmetric 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]. | 
| [in] | lda | Leading dimension of A. lda >= max(1, n). | 
| void blas::syr2 | ( | 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.
LAPACK doesn't have [cz]syr2; this calls [cz]syr2k with k == 1, beta = 1.
| void blas::syr2 | ( | 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.
LAPACK doesn't have [cz]syr2; this calls [cz]syr2k with k == 1, beta = 1.