p?latrs
p?latrs
Solves a triangular system of equations with the scale factor set to prevent overflow.
Syntax
void
pslatrs
(
char
*uplo
,
char
*trans
,
char
*diag
,
char
*normin
,
MKL_INT
*n
,
float
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*x
,
MKL_INT
*ix
,
MKL_INT
*jx
,
MKL_INT
*descx
,
float
*scale
,
float
*cnorm
,
float
*work
);
void
pdlatrs
(
char
*uplo
,
char
*trans
,
char
*diag
,
char
*normin
,
MKL_INT
*n
,
double
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*x
,
MKL_INT
*ix
,
MKL_INT
*jx
,
MKL_INT
*descx
,
double
*scale
,
double
*cnorm
,
double
*work
);
void
pclatrs
(
char
*uplo
,
char
*trans
,
char
*diag
,
char
*normin
,
MKL_INT
*n
,
MKL_Complex8
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*x
,
MKL_INT
*ix
,
MKL_INT
*jx
,
MKL_INT
*descx
,
float
*scale
,
float
*cnorm
,
MKL_Complex8
*work
);
void
pzlatrs
(
char
*uplo
,
char
*trans
,
char
*diag
,
char
*normin
,
MKL_INT
*n
,
MKL_Complex16
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex16
*x
,
MKL_INT
*ix
,
MKL_INT
*jx
,
MKL_INT
*descx
,
double
*scale
,
double
*cnorm
,
MKL_Complex16
*work
);
Include Files
- mkl_scalapack.h
Description
The , or , where
p?latrs
function
solves a triangular system of equations Ax
= s
b
A
T
x
= s
b
A
H
x
= s
b
s
is a scale factor set to prevent overflow. The description of the function
will be extended in the future releases.Input Parameters
- uplo
- Specifies whether the matrixAis upper or lower triangular.='U': Upper triangular='L': Lower triangular
- trans
- Specifies the operation applied toAx.='N': Solve=Axs*b(no transpose)='T': SolveATx=s*b(transpose)='C': SolveAHx=s*b(conjugate transpose),wheres- is a scale factor
- diag
- Specifies whether or not the matrixAis unit triangular.='N': Non-unit triangular='U': Unit triangular
- normin
- Specifies whethercnormhas been set or not.='Y':cnormcontains the column norms on entry;='N':cnormis not set on entry. On exit, the norms will be computed and stored incnorm.
- n
- The order of the matrixA.n≥0
- a
- Array of sizelda*n. Contains the triangular matrixA.If, the leadinguplo=Un-by-nupper triangular part of the arrayacontains the upper triangular matrix, and the strictly lower triangular part ofais not referenced.If, the leadinguplo='L'n-by-nlower triangular part of the arrayacontains the lower triangular matrix, and the strictly upper triangular part ofais not referenced.If, the diagonal elements ofdiag='U'aare also not referenced and are assumed to be 1.
- ia,ja
- (global) The row and column indices in the global matrixAindicating the first row and the first column of the submatrixA, respectively.
- desca
- (global and local) array of sizedlen_. The array descriptor for the distributed matrixA.
- x
- Array of sizen. On entry, the right hand sidebof the triangular system.
- ix
- (global).The row index in the global matrixXindicating the first row of sub(x).
- jx
- (global)The column index in the global matrixXindicating the first column of sub(X).
- descx
- (global and local)Array of sizedlen_. The array descriptor for the distributed matrixX.
- cnorm
- Array of sizen. If,normin='Y'cnormis an input argument andcnorm[contains the norm of the off-diagonal part of thej](-th column ofj+1)the matrixA,. Ifj=0, 1, ...,n-1trans='N',cnorm[must be greater than or equal to the infinity-norm, and ifj]trans='T'or'C',cnorm[must be greater than or equal to the 1-norm.j]
- work
- (local).Temporary workspace.
Output Parameters
- X
- On exit,xis overwritten by the solution vectorx.
- scale
- Array of sizelda*n. The scaling factorsfor the triangular system as described above.If, the matrixscale= 0Ais singular or badly scaled, and the vectorxis an exact or approximate solution to.Ax= 0
- cnorm
- Ifnormin='N',cnormis an output argument andcnorm[returns the 1-norm of the off-diagonal part of thej](column ofj+1)-thA,.j=0, 1, ...,n-1