Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?latps
Solves a triangular system of equations with the matrix held in packed storage.
Syntax
call slatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
call dlatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
call clatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
call zlatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
Include Files
mkl.fi
Description
The routine ?latps solves one of the triangular systems
A*x = s*b , or A^{T}*x = s*b, or A^{H}*x = s*b (for complex flavors)
with scaling to prevent overflow, where A is an upper or lower triangular matrix stored in packed form. Here AT denotes the transpose of A , AH denotes the conjugate transpose of A , x and b are n -element vectors, and s is a scaling factor, usually less than or equal to 1, chosen so that the components of x will be less than the overflow threshold. If the unscaled problem does not cause overflow, the Level 2 BLAS routine ?tpsv is called. If the matrix A is singular ( A(j, j) = 0 for some j ), then s is set to 0 and a non-trivial solution to A*x = 0 is returned.
Input Parameters
- uplo
-
CHARACTER*1 . Specifies whether the matrix A is upper or lower triangular. = ‘U’ : upper triangular = ‘L’ : uower triangular
- trans
-
CHARACTER*1 . Specifies the operation applied to A . = ‘N’ : solve A*x = s*b (no transpose) = ‘T’ : solve A^{T}*x = s*b (transpose) = ‘C’ : solve A^{H}*x = s*b (conjugate transpose)
- diag
-
CHARACTER*1 . Specifies whether the matrix A is unit triangular. = 'N ‘: non-unit triangular = ‘U’ : unit triangular
- normin
-
CHARACTER*1 . Specifies whether cnorm is set. = ‘Y’ : cnorm contains the column norms on entry; = ‘N’ : cnorm is not set on entry. On exit, the norms will be computed and stored in cnorm.
- n
-
INTEGER. Specifies the order of the matrix A. The value of n must be at least zero.
- ap
-
REAL for slatps DOUBLE PRECISION for dlatps COMPLEX for clatps DOUBLE COMPLEX for zlatps . Array, DIMENSION ( n(n+1)/2). The upper or lower triangular matrix A , packed columnwise in a linear array. The j -th column of A is stored in the array ap as follows: if uplo = 'U' , ap(i + (j-1)j/2) = A(i,j) for 1≤ i ≤ j ; if uplo = 'L' , ap(i + (j-1)(2n-j)/2) = A(i, j) for j≤i≤n .
- x
-
REAL for slatps DOUBLE PRECISION for dlatps COMPLEX for clatps DOUBLE COMPLEX for zlatps . Array, DIMENSION ( n ) On entry, the right hand side b of the triangular system.
- cnorm
-
REAL for slatps / clatps DOUBLE PRECISION for dlatps / zlatps . Array, DIMENSION ( n ). If normin = 'Y' , cnorm is an input argument and cnorm(j) contains the norm of the off-diagonal part of the j -th column of A . If trans = 'N' , cnorm(j) must be greater than or equal to the infinity-norm, and if trans = 'T' or ‘C’ , cnorm(j) must be greater than or equal to the 1-norm.
Output Parameters
- x
-
On exit, x is overwritten by the solution vector x .
- scale
-
REAL for slatps / clatps DOUBLE PRECISION for dlatps / zlatps . The scaling factor s for the triangular system as described above. If scale = 0 , the matrix A is singular or badly scaled, and the vector x is an exact or approximate solution to A*x = 0 .
- cnorm
-
If normin = 'N' , cnorm is an output argument and cnorm(j) returns the 1-norm of the off-diagonal part of the j -th column of A .
info
INTEGER .
= 0: successful exit
< 0: if info = -k , the k -th argument had an illegal value