BLAS++ 2024.05.31
BLAS C++ API
|
Functions | |
template<typename TX , typename TY > | |
void | blas::rot (int64_t n, TX *x, int64_t incx, TY *y, int64_t incy, blas::real_type< TX, TY > c, blas::scalar_type< TX, TY > s) |
Apply plane rotation: | |
void | blas::rot (int64_t n, float *x, int64_t incx, float *y, int64_t incy, float c, float s) |
void | blas::rot (int64_t n, double *x, int64_t incx, double *y, int64_t incy, double c, double s) |
void | blas::rot (int64_t n, std::complex< float > *x, int64_t incx, std::complex< float > *y, int64_t incy, float c, float s) |
real cosine, real sine Applies a real Givens rotation (e.g., in real tridiagonal eig) to a complex matrix (e.g., complex eigenvectors). | |
void | blas::rot (int64_t n, std::complex< double > *x, int64_t incx, std::complex< double > *y, int64_t incy, double c, double s) |
real cosine, real sine Applies a real Givens rotation (e.g., in real tridiagonal eig) to a complex matrix (e.g., complex eigenvectors). | |
void | blas::rot (int64_t n, std::complex< float > *x, int64_t incx, std::complex< float > *y, int64_t incy, float c, std::complex< float > s) |
real cosine, complex sine Applies a complex Givens rotation to a complex matrix (e.g., in complex GMRES). | |
void | blas::rot (int64_t n, std::complex< double > *x, int64_t incx, std::complex< double > *y, int64_t incy, double c, std::complex< double > s) |
real cosine, complex sine Applies a complex Givens rotation to a complex matrix (e.g., in complex GMRES). | |
void blas::rot | ( | int64_t | n, |
std::complex< double > * | x, | ||
int64_t | incx, | ||
std::complex< double > * | y, | ||
int64_t | incy, | ||
double | c, | ||
double | s | ||
) |
real cosine, real sine Applies a real Givens rotation (e.g., in real tridiagonal eig) to a complex matrix (e.g., complex eigenvectors).
real cosine, real sine
void blas::rot | ( | int64_t | n, |
std::complex< double > * | x, | ||
int64_t | incx, | ||
std::complex< double > * | y, | ||
int64_t | incy, | ||
double | c, | ||
std::complex< double > | s | ||
) |
real cosine, complex sine Applies a complex Givens rotation to a complex matrix (e.g., in complex GMRES).
real cosine, complex sine
void blas::rot | ( | int64_t | n, |
std::complex< float > * | x, | ||
int64_t | incx, | ||
std::complex< float > * | y, | ||
int64_t | incy, | ||
float | c, | ||
float | s | ||
) |
real cosine, real sine Applies a real Givens rotation (e.g., in real tridiagonal eig) to a complex matrix (e.g., complex eigenvectors).
real cosine, real sine This variant, with real sine, is used in the SVD or EVD where a real Givens rotation, that eliminates entries in the real bi- or tridiagonal matrix, is applied to complex singular or eigen vectors.
void blas::rot | ( | int64_t | n, |
std::complex< float > * | x, | ||
int64_t | incx, | ||
std::complex< float > * | y, | ||
int64_t | incy, | ||
float | c, | ||
std::complex< float > | s | ||
) |
real cosine, complex sine Applies a complex Givens rotation to a complex matrix (e.g., in complex GMRES).
real cosine, complex sine This variant, with complex sine, is used to eliminate entries in a complex matrix.
void blas::rot | ( | int64_t | n, |
TX * | x, | ||
int64_t | incx, | ||
TY * | y, | ||
int64_t | incy, | ||
blas::real_type< TX, TY > | c, | ||
blas::scalar_type< TX, TY > | s | ||
) |
Apply plane rotation:
\[ \begin{bmatrix} x^T \\ y^T \end{bmatrix} = \begin{bmatrix} c & s \\ -s & c \end{bmatrix} \begin{bmatrix} x^T \\ y^T \end{bmatrix}. \]
Generic implementation for arbitrary data types.
[in] | n | Number of elements in x and y. n >= 0. |
[in,out] | 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,out] | 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] | c | Cosine of rotation; real. |
[in] | s | Sine of rotation; complex. |