Developer Reference for Intel® oneAPI Math Kernel Library for C
?sptri
Computes the inverse of a symmetric matrix using U * D * UT or L * D * LT Bunch-Kaufman factorization of matrix in packed storage.
Syntax
lapack_intLAPACKE_ssptri ( intmatrix_layout , charuplo , lapack_intn , float*ap , constlapack_int*ipiv );
lapack_intLAPACKE_dsptri ( intmatrix_layout , charuplo , lapack_intn , double*ap , constlapack_int*ipiv );
lapack_intLAPACKE_csptri ( intmatrix_layout , charuplo , lapack_intn , lapack_complex_float*ap , constlapack_int*ipiv );
lapack_intLAPACKE_zsptri ( intmatrix_layout , charuplo , lapack_intn , lapack_complex_double*ap , constlapack_int*ipiv );
Include Files
mkl.h
Description
ssptri dsptri csptri zsptri sptri
The routine computes the inverse inv(A) of a packed symmetric matrix A . Before calling this routine, call ?sptrf (Computes the Bunch-Kaufman factorization of a symmetric matrix using packed storage.) to factorize A .
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
uplo
Must be ‘U’ or ‘L’ .
Indicates how the input matrix A has been factored:
If uplo = 'U' , the array ap stores the Bunch-Kaufman factorization A = U*D*U^{T} .
If uplo = 'L' , the array ap stores the Bunch-Kaufman factorization A = L*D*L^{T} .
n
The order of the matrix A ; n≥ 0 .
ap , work
Arrays:
ap(*) contains the factorization of the matrix A , as returned by ?sptrf (Computes the Bunch-Kaufman factorization of a symmetric matrix using packed storage.) .
The dimension of ap must be at least max(1,n(n+1)/2) .
work(*) is a workspace array.
The dimension of work must be at least max(1,n) .
ap
Arrays ap (size max(1, n(n+1)/2)) contains the factorization of the matrix A , as returned by ?sptrf (Computes the Bunch-Kaufman factorization of a symmetric matrix using packed storage.) .
ipiv
Array, size at least max(1, n) . The ipiv array, as returned by ?sptrf (Computes the Bunch-Kaufman factorization of a symmetric matrix using packed storage.) .
Output Parameters
ap
Overwritten by the matrix inv(A) in packed form.
Return Values
This function returns a value info .
If info = 0 , the execution is successful.
If info = -i , parameter i had an illegal value.
If info = i , the i -th diagonal element of D is zero, D is singular, and the inversion could not be completed.
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.
Application Notes
The computed inverse \(X\) satisfies the following error bounds:
\[|D U^{T} P^{T} X P U - I| \leq c(n)\varepsilon(|D||U^{T}|P^{T}|X|P|U| + |D||D^{-1}|)\]
for uplo = ‘U’ , and
\[|D L^{T} P^{T} X P L - I| \leq c(n)\varepsilon(|D||L^{T}|P^{T}|X|P|L| + |D||D^{-1}|)\]
for uplo = 'L' . Here c(n) is a modest linear function of n , and \(\varepsilon\) is the machine precision; \(I\) denotes the identity matrix.
The total number of floating-point operations is approximately \((2/3)n^{3}\) for real flavors and \((8/3)n^{3}\) for complex flavors.