pub unsafe extern "C" fn cusolverDnDsytrd(
handle: cusolverDnHandle_t,
uplo: cublasFillMode_t,
n: c_int,
A: *mut f64,
lda: c_int,
d: *mut f64,
e: *mut f64,
tau: *mut f64,
work: *mut f64,
lwork: c_int,
info: *mut c_int,
) -> cusolverStatus_tExpand description
These helper functions calculate the size of work buffers needed.
The S and D data types are real valued single and double precision, respectively.
The C and Z data types are complex valued single and double precision, respectively.
This function reduces a general symmetric (Hermitian) $n \times n$ matrix A to real symmetric tridiagonal form T by an orthogonal transformation: $Q^{H}\*A\*Q = T$
As an output, A contains T and householder reflection vectors. If uplo = cublasFillMode_t::CUBLAS_FILL_MODE_UPPER, 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 = cublasFillMode_t::CUBLAS_FILL_MODE_LOWER, 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.
The user has to provide working space which is pointed by input parameter work. The input parameter lwork is size of the working space, and it is returned by sytrd_bufferSize(). Please note that the size in bytes of the working space is equal to sizeof(<type>) * lwork.
If output parameter devInfo = -i (less than zero), the i-th parameter is wrong (not counting handle). Note that the problem size n is limited by a condition n*lda < INT32_MAX primarily due to the current implementation constraints.