sptrd#
Functions
-
void ssptrd(const char *uplo, const INT n, f32 *restrict AP, f32 *restrict D, f32 *restrict E, f32 *restrict tau, INT *info)#
SSPTRD reduces a real symmetric matrix A stored in packed form to symmetric tridiagonal form T by an orthogonal similarity transformation: Q**T * A * Q = T.
Parameters
inuploSpecifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangle of A is stored; = ‘L’: Lower triangle of A is stored.
innThe order of the matrix A. n >= 0.
inoutAPDouble precision array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. On exit, if uplo = ‘U’, the diagonal and first superdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements above the first superdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors; if uplo = ‘L’, the diagonal and first subdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements below the first subdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors.
outDDouble precision array, dimension (n). The diagonal elements of the tridiagonal matrix T.
outEDouble precision array, dimension (n-1). The off-diagonal elements of the tridiagonal matrix T.
outtauDouble precision array, dimension (n-1). The scalar factors of the elementary reflectors.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void ssptrd(
const char* uplo,
const INT n,
f32* restrict AP,
f32* restrict D,
f32* restrict E,
f32* restrict tau,
INT* info
);
Functions
-
void dsptrd(const char *uplo, const INT n, f64 *restrict AP, f64 *restrict D, f64 *restrict E, f64 *restrict tau, INT *info)#
DSPTRD reduces a real symmetric matrix A stored in packed form to symmetric tridiagonal form T by an orthogonal similarity transformation: Q**T * A * Q = T.
Parameters
inuploSpecifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangle of A is stored; = ‘L’: Lower triangle of A is stored.
innThe order of the matrix A. n >= 0.
inoutAPDouble precision array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. On exit, if uplo = ‘U’, the diagonal and first superdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements above the first superdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors; if uplo = ‘L’, the diagonal and first subdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements below the first subdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors.
outDDouble precision array, dimension (n). The diagonal elements of the tridiagonal matrix T.
outEDouble precision array, dimension (n-1). The off-diagonal elements of the tridiagonal matrix T.
outtauDouble precision array, dimension (n-1). The scalar factors of the elementary reflectors.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
void dsptrd(
const char* uplo,
const INT n,
f64* restrict AP,
f64* restrict D,
f64* restrict E,
f64* restrict tau,
INT* info
);