.TH "tfsm" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME tfsm \- tfsm: triangular-matrix solve, RFP format .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBctfsm\fP (transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb)" .br .RI "\fBCTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. " .ti -1c .RI "subroutine \fBdtfsm\fP (transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb)" .br .RI "\fBDTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. " .ti -1c .RI "subroutine \fBstfsm\fP (transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb)" .br .RI "\fBSTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. " .ti -1c .RI "subroutine \fBztfsm\fP (transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb)" .br .RI "\fBZTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine ctfsm (character transr, character side, character uplo, character trans, character diag, integer m, integer n, complex alpha, complex, dimension( 0: * ) a, complex, dimension( 0: ldb\-1, 0: * ) b, integer ldb)" .PP \fBCTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> Level 3 BLAS like routine for A in RFP Format\&. !> !> CTFSM solves the matrix equation !> !> op( A )*X = alpha*B or X*op( A ) = alpha*B !> !> where alpha is a scalar, X and B are m by n matrices, A is a unit, or !> non-unit, upper or lower triangular matrix and op( A ) is one of !> !> op( A ) = A or op( A ) = A**H\&. !> !> A is in Rectangular Full Packed (RFP) Format\&. !> !> The matrix X is overwritten on B\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fITRANSR\fP .PP .nf !> TRANSR is CHARACTER*1 !> = 'N': The Normal Form of RFP A is stored; !> = 'C': The Conjugate-transpose Form of RFP A is stored\&. !> .fi .PP .br \fISIDE\fP .PP .nf !> SIDE is CHARACTER*1 !> On entry, SIDE specifies whether op( A ) appears on the left !> or right of X as follows: !> !> SIDE = 'L' or 'l' op( A )*X = alpha*B\&. !> !> SIDE = 'R' or 'r' X*op( A ) = alpha*B\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIUPLO\fP .PP .nf !> UPLO is CHARACTER*1 !> On entry, UPLO specifies whether the RFP matrix A came from !> an upper or lower triangular matrix as follows: !> UPLO = 'U' or 'u' RFP A came from an upper triangular matrix !> UPLO = 'L' or 'l' RFP A came from a lower triangular matrix !> !> Unchanged on exit\&. !> .fi .PP .br \fITRANS\fP .PP .nf !> TRANS is CHARACTER*1 !> On entry, TRANS specifies the form of op( A ) to be used !> in the matrix multiplication as follows: !> !> TRANS = 'N' or 'n' op( A ) = A\&. !> !> TRANS = 'C' or 'c' op( A ) = conjg( A' )\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIDIAG\fP .PP .nf !> DIAG is CHARACTER*1 !> On entry, DIAG specifies whether or not RFP A is unit !> triangular as follows: !> !> DIAG = 'U' or 'u' A is assumed to be unit triangular\&. !> !> DIAG = 'N' or 'n' A is not assumed to be unit !> triangular\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> On entry, M specifies the number of rows of B\&. M must be at !> least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> On entry, N specifies the number of columns of B\&. N must be !> at least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIALPHA\fP .PP .nf !> ALPHA is COMPLEX !> On entry, ALPHA specifies the scalar alpha\&. When alpha is !> zero then A is not referenced and B need not be set before !> entry\&. !> Unchanged on exit\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is COMPLEX array, dimension (NT) !> NT = N*(N+1)/2 if SIDE='R' and NT = M*(M+1)/2 otherwise\&. !> On entry, the matrix A in RFP Format\&. !> RFP Format is described by TRANSR, UPLO and N as follows: !> If TRANSR='N' then RFP A is (0:N,0:K-1) when N is even; !> K=N/2\&. RFP A is (0:N-1,0:K) when N is odd; K=N/2\&. If !> TRANSR = 'C' then RFP is the Conjugate-transpose of RFP A as !> defined when TRANSR = 'N'\&. The contents of RFP A are defined !> by UPLO as follows: If UPLO = 'U' the RFP A contains the NT !> elements of upper packed A either in normal or !> conjugate-transpose Format\&. If UPLO = 'L' the RFP A contains !> the NT elements of lower packed A either in normal or !> conjugate-transpose Format\&. The LDA of RFP A is (N+1)/2 when !> TRANSR = 'C'\&. When TRANSR is 'N' the LDA is N+1 when N is !> even and is N when is odd\&. !> See the Note below for more details\&. Unchanged on exit\&. !> .fi .PP .br \fIB\fP .PP .nf !> B is COMPLEX array, dimension (LDB,N) !> Before entry, the leading m by n part of the array B must !> contain the right-hand side matrix B, and on exit is !> overwritten by the solution matrix X\&. !> .fi .PP .br \fILDB\fP .PP .nf !> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program\&. LDB must be at least !> max( 1, m )\&. !> Unchanged on exit\&. !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf !> !> We first consider Standard Packed Format when N is even\&. !> We give an example where N = 6\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 05 00 !> 11 12 13 14 15 10 11 !> 22 23 24 25 20 21 22 !> 33 34 35 30 31 32 33 !> 44 45 40 41 42 43 44 !> 55 50 51 52 53 54 55 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(4:6,0:2) consists of !> conjugate-transpose of the first three columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:2,0:2) consists of !> conjugate-transpose of the last three columns of AP lower\&. !> To denote conjugate we place -- above the element\&. This covers the !> case N even and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> -- -- -- !> 03 04 05 33 43 53 !> -- -- !> 13 14 15 00 44 54 !> -- !> 23 24 25 10 11 55 !> !> 33 34 35 20 21 22 !> -- !> 00 44 45 30 31 32 !> -- -- !> 01 11 55 40 41 42 !> -- -- -- !> 02 12 22 50 51 52 !> !> Now let TRANSR = 'C'\&. RFP A in both UPLO cases is just the conjugate- !> transpose of RFP A above\&. One therefore gets: !> !> !> RFP A RFP A !> !> -- -- -- -- -- -- -- -- -- -- !> 03 13 23 33 00 01 02 33 00 10 20 30 40 50 !> -- -- -- -- -- -- -- -- -- -- !> 04 14 24 34 44 11 12 43 44 11 21 31 41 51 !> -- -- -- -- -- -- -- -- -- -- !> 05 15 25 35 45 55 22 53 54 55 22 32 42 52 !> !> !> We next consider Standard Packed Format when N is odd\&. !> We give an example where N = 5\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 00 !> 11 12 13 14 10 11 !> 22 23 24 20 21 22 !> 33 34 30 31 32 33 !> 44 40 41 42 43 44 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(3:4,0:1) consists of !> conjugate-transpose of the first two columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:1,1:2) consists of !> conjugate-transpose of the last two columns of AP lower\&. !> To denote conjugate we place -- above the element\&. This covers the !> case N odd and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> -- -- !> 02 03 04 00 33 43 !> -- !> 12 13 14 10 11 44 !> !> 22 23 24 20 21 22 !> -- !> 00 33 34 30 31 32 !> -- -- !> 01 11 44 40 41 42 !> !> Now let TRANSR = 'C'\&. RFP A in both UPLO cases is just the conjugate- !> transpose of RFP A above\&. One therefore gets: !> !> !> RFP A RFP A !> !> -- -- -- -- -- -- -- -- -- !> 02 12 22 00 01 00 10 20 30 40 50 !> -- -- -- -- -- -- -- -- -- !> 03 13 23 33 11 33 11 21 31 41 51 !> -- -- -- -- -- -- -- -- -- !> 04 14 24 34 44 43 44 22 32 42 52 !> .fi .PP .RE .PP .PP Definition at line \fB297\fP of file \fBctfsm\&.f\fP\&. .SS "subroutine dtfsm (character transr, character side, character uplo, character trans, character diag, integer m, integer n, double precision alpha, double precision, dimension( 0: * ) a, double precision, dimension( 0: ldb\-1, 0: * ) b, integer ldb)" .PP \fBDTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> Level 3 BLAS like routine for A in RFP Format\&. !> !> DTFSM solves the matrix equation !> !> op( A )*X = alpha*B or X*op( A ) = alpha*B !> !> where alpha is a scalar, X and B are m by n matrices, A is a unit, or !> non-unit, upper or lower triangular matrix and op( A ) is one of !> !> op( A ) = A or op( A ) = A**T\&. !> !> A is in Rectangular Full Packed (RFP) Format\&. !> !> The matrix X is overwritten on B\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fITRANSR\fP .PP .nf !> TRANSR is CHARACTER*1 !> = 'N': The Normal Form of RFP A is stored; !> = 'T': The Transpose Form of RFP A is stored\&. !> .fi .PP .br \fISIDE\fP .PP .nf !> SIDE is CHARACTER*1 !> On entry, SIDE specifies whether op( A ) appears on the left !> or right of X as follows: !> !> SIDE = 'L' or 'l' op( A )*X = alpha*B\&. !> !> SIDE = 'R' or 'r' X*op( A ) = alpha*B\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIUPLO\fP .PP .nf !> UPLO is CHARACTER*1 !> On entry, UPLO specifies whether the RFP matrix A came from !> an upper or lower triangular matrix as follows: !> UPLO = 'U' or 'u' RFP A came from an upper triangular matrix !> UPLO = 'L' or 'l' RFP A came from a lower triangular matrix !> !> Unchanged on exit\&. !> .fi .PP .br \fITRANS\fP .PP .nf !> TRANS is CHARACTER*1 !> On entry, TRANS specifies the form of op( A ) to be used !> in the matrix multiplication as follows: !> !> TRANS = 'N' or 'n' op( A ) = A\&. !> !> TRANS = 'T' or 't' op( A ) = A'\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIDIAG\fP .PP .nf !> DIAG is CHARACTER*1 !> On entry, DIAG specifies whether or not RFP A is unit !> triangular as follows: !> !> DIAG = 'U' or 'u' A is assumed to be unit triangular\&. !> !> DIAG = 'N' or 'n' A is not assumed to be unit !> triangular\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> On entry, M specifies the number of rows of B\&. M must be at !> least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> On entry, N specifies the number of columns of B\&. N must be !> at least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIALPHA\fP .PP .nf !> ALPHA is DOUBLE PRECISION !> On entry, ALPHA specifies the scalar alpha\&. When alpha is !> zero then A is not referenced and B need not be set before !> entry\&. !> Unchanged on exit\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is DOUBLE PRECISION array, dimension (NT) !> NT = N*(N+1)/2 if SIDE='R' and NT = M*(M+1)/2 otherwise\&. !> On entry, the matrix A in RFP Format\&. !> RFP Format is described by TRANSR, UPLO and N as follows: !> If TRANSR='N' then RFP A is (0:N,0:K-1) when N is even; !> K=N/2\&. RFP A is (0:N-1,0:K) when N is odd; K=N/2\&. If !> TRANSR = 'T' then RFP is the transpose of RFP A as !> defined when TRANSR = 'N'\&. The contents of RFP A are defined !> by UPLO as follows: If UPLO = 'U' the RFP A contains the NT !> elements of upper packed A either in normal or !> transpose Format\&. If UPLO = 'L' the RFP A contains !> the NT elements of lower packed A either in normal or !> transpose Format\&. The LDA of RFP A is (N+1)/2 when !> TRANSR = 'T'\&. When TRANSR is 'N' the LDA is N+1 when N is !> even and is N when is odd\&. !> See the Note below for more details\&. Unchanged on exit\&. !> .fi .PP .br \fIB\fP .PP .nf !> B is DOUBLE PRECISION array, dimension (LDB,N) !> Before entry, the leading m by n part of the array B must !> contain the right-hand side matrix B, and on exit is !> overwritten by the solution matrix X\&. !> .fi .PP .br \fILDB\fP .PP .nf !> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program\&. LDB must be at least !> max( 1, m )\&. !> Unchanged on exit\&. !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf !> !> We first consider Rectangular Full Packed (RFP) Format when N is !> even\&. We give an example where N = 6\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 05 00 !> 11 12 13 14 15 10 11 !> 22 23 24 25 20 21 22 !> 33 34 35 30 31 32 33 !> 44 45 40 41 42 43 44 !> 55 50 51 52 53 54 55 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(4:6,0:2) consists of !> the transpose of the first three columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:2,0:2) consists of !> the transpose of the last three columns of AP lower\&. !> This covers the case N even and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> 03 04 05 33 43 53 !> 13 14 15 00 44 54 !> 23 24 25 10 11 55 !> 33 34 35 20 21 22 !> 00 44 45 30 31 32 !> 01 11 55 40 41 42 !> 02 12 22 50 51 52 !> !> Now let TRANSR = 'T'\&. RFP A in both UPLO cases is just the !> transpose of RFP A above\&. One therefore gets: !> !> !> RFP A RFP A !> !> 03 13 23 33 00 01 02 33 00 10 20 30 40 50 !> 04 14 24 34 44 11 12 43 44 11 21 31 41 51 !> 05 15 25 35 45 55 22 53 54 55 22 32 42 52 !> !> !> We then consider Rectangular Full Packed (RFP) Format when N is !> odd\&. We give an example where N = 5\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 00 !> 11 12 13 14 10 11 !> 22 23 24 20 21 22 !> 33 34 30 31 32 33 !> 44 40 41 42 43 44 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(3:4,0:1) consists of !> the transpose of the first two columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:1,1:2) consists of !> the transpose of the last two columns of AP lower\&. !> This covers the case N odd and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> 02 03 04 00 33 43 !> 12 13 14 10 11 44 !> 22 23 24 20 21 22 !> 00 33 34 30 31 32 !> 01 11 44 40 41 42 !> !> Now let TRANSR = 'T'\&. RFP A in both UPLO cases is just the !> transpose of RFP A above\&. One therefore gets: !> !> RFP A RFP A !> !> 02 12 22 00 01 00 10 20 30 40 50 !> 03 13 23 33 11 33 11 21 31 41 51 !> 04 14 24 34 44 43 44 22 32 42 52 !> .fi .PP .RE .PP .PP Definition at line \fB276\fP of file \fBdtfsm\&.f\fP\&. .SS "subroutine stfsm (character transr, character side, character uplo, character trans, character diag, integer m, integer n, real alpha, real, dimension( 0: * ) a, real, dimension( 0: ldb\-1, 0: * ) b, integer ldb)" .PP \fBSTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> Level 3 BLAS like routine for A in RFP Format\&. !> !> STFSM solves the matrix equation !> !> op( A )*X = alpha*B or X*op( A ) = alpha*B !> !> where alpha is a scalar, X and B are m by n matrices, A is a unit, or !> non-unit, upper or lower triangular matrix and op( A ) is one of !> !> op( A ) = A or op( A ) = A**T\&. !> !> A is in Rectangular Full Packed (RFP) Format\&. !> !> The matrix X is overwritten on B\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fITRANSR\fP .PP .nf !> TRANSR is CHARACTER*1 !> = 'N': The Normal Form of RFP A is stored; !> = 'T': The Transpose Form of RFP A is stored\&. !> .fi .PP .br \fISIDE\fP .PP .nf !> SIDE is CHARACTER*1 !> On entry, SIDE specifies whether op( A ) appears on the left !> or right of X as follows: !> !> SIDE = 'L' or 'l' op( A )*X = alpha*B\&. !> !> SIDE = 'R' or 'r' X*op( A ) = alpha*B\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIUPLO\fP .PP .nf !> UPLO is CHARACTER*1 !> On entry, UPLO specifies whether the RFP matrix A came from !> an upper or lower triangular matrix as follows: !> UPLO = 'U' or 'u' RFP A came from an upper triangular matrix !> UPLO = 'L' or 'l' RFP A came from a lower triangular matrix !> !> Unchanged on exit\&. !> .fi .PP .br \fITRANS\fP .PP .nf !> TRANS is CHARACTER*1 !> On entry, TRANS specifies the form of op( A ) to be used !> in the matrix multiplication as follows: !> !> TRANS = 'N' or 'n' op( A ) = A\&. !> !> TRANS = 'T' or 't' op( A ) = A'\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIDIAG\fP .PP .nf !> DIAG is CHARACTER*1 !> On entry, DIAG specifies whether or not RFP A is unit !> triangular as follows: !> !> DIAG = 'U' or 'u' A is assumed to be unit triangular\&. !> !> DIAG = 'N' or 'n' A is not assumed to be unit !> triangular\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> On entry, M specifies the number of rows of B\&. M must be at !> least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> On entry, N specifies the number of columns of B\&. N must be !> at least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIALPHA\fP .PP .nf !> ALPHA is REAL !> On entry, ALPHA specifies the scalar alpha\&. When alpha is !> zero then A is not referenced and B need not be set before !> entry\&. !> Unchanged on exit\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is REAL array, dimension (NT) !> NT = N*(N+1)/2 if SIDE='R' and NT = M*(M+1)/2 otherwise\&. !> On entry, the matrix A in RFP Format\&. !> RFP Format is described by TRANSR, UPLO and N as follows: !> If TRANSR='N' then RFP A is (0:N,0:K-1) when N is even; !> K=N/2\&. RFP A is (0:N-1,0:K) when N is odd; K=N/2\&. If !> TRANSR = 'T' then RFP is the transpose of RFP A as !> defined when TRANSR = 'N'\&. The contents of RFP A are defined !> by UPLO as follows: If UPLO = 'U' the RFP A contains the NT !> elements of upper packed A either in normal or !> transpose Format\&. If UPLO = 'L' the RFP A contains !> the NT elements of lower packed A either in normal or !> transpose Format\&. The LDA of RFP A is (N+1)/2 when !> TRANSR = 'T'\&. When TRANSR is 'N' the LDA is N+1 when N is !> even and is N when is odd\&. !> See the Note below for more details\&. Unchanged on exit\&. !> .fi .PP .br \fIB\fP .PP .nf !> B is REAL array, dimension (LDB,N) !> Before entry, the leading m by n part of the array B must !> contain the right-hand side matrix B, and on exit is !> overwritten by the solution matrix X\&. !> .fi .PP .br \fILDB\fP .PP .nf !> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program\&. LDB must be at least !> max( 1, m )\&. !> Unchanged on exit\&. !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf !> !> We first consider Rectangular Full Packed (RFP) Format when N is !> even\&. We give an example where N = 6\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 05 00 !> 11 12 13 14 15 10 11 !> 22 23 24 25 20 21 22 !> 33 34 35 30 31 32 33 !> 44 45 40 41 42 43 44 !> 55 50 51 52 53 54 55 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(4:6,0:2) consists of !> the transpose of the first three columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:2,0:2) consists of !> the transpose of the last three columns of AP lower\&. !> This covers the case N even and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> 03 04 05 33 43 53 !> 13 14 15 00 44 54 !> 23 24 25 10 11 55 !> 33 34 35 20 21 22 !> 00 44 45 30 31 32 !> 01 11 55 40 41 42 !> 02 12 22 50 51 52 !> !> Now let TRANSR = 'T'\&. RFP A in both UPLO cases is just the !> transpose of RFP A above\&. One therefore gets: !> !> !> RFP A RFP A !> !> 03 13 23 33 00 01 02 33 00 10 20 30 40 50 !> 04 14 24 34 44 11 12 43 44 11 21 31 41 51 !> 05 15 25 35 45 55 22 53 54 55 22 32 42 52 !> !> !> We then consider Rectangular Full Packed (RFP) Format when N is !> odd\&. We give an example where N = 5\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 00 !> 11 12 13 14 10 11 !> 22 23 24 20 21 22 !> 33 34 30 31 32 33 !> 44 40 41 42 43 44 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(3:4,0:1) consists of !> the transpose of the first two columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:1,1:2) consists of !> the transpose of the last two columns of AP lower\&. !> This covers the case N odd and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> 02 03 04 00 33 43 !> 12 13 14 10 11 44 !> 22 23 24 20 21 22 !> 00 33 34 30 31 32 !> 01 11 44 40 41 42 !> !> Now let TRANSR = 'T'\&. RFP A in both UPLO cases is just the !> transpose of RFP A above\&. One therefore gets: !> !> RFP A RFP A !> !> 02 12 22 00 01 00 10 20 30 40 50 !> 03 13 23 33 11 33 11 21 31 41 51 !> 04 14 24 34 44 43 44 22 32 42 52 !> .fi .PP .RE .PP .PP Definition at line \fB276\fP of file \fBstfsm\&.f\fP\&. .SS "subroutine ztfsm (character transr, character side, character uplo, character trans, character diag, integer m, integer n, complex*16 alpha, complex*16, dimension( 0: * ) a, complex*16, dimension( 0: ldb\-1, 0: * ) b, integer ldb)" .PP \fBZTFSM\fP solves a matrix equation (one operand is a triangular matrix in RFP format)\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> Level 3 BLAS like routine for A in RFP Format\&. !> !> ZTFSM solves the matrix equation !> !> op( A )*X = alpha*B or X*op( A ) = alpha*B !> !> where alpha is a scalar, X and B are m by n matrices, A is a unit, or !> non-unit, upper or lower triangular matrix and op( A ) is one of !> !> op( A ) = A or op( A ) = A**H\&. !> !> A is in Rectangular Full Packed (RFP) Format\&. !> !> The matrix X is overwritten on B\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fITRANSR\fP .PP .nf !> TRANSR is CHARACTER*1 !> = 'N': The Normal Form of RFP A is stored; !> = 'C': The Conjugate-transpose Form of RFP A is stored\&. !> .fi .PP .br \fISIDE\fP .PP .nf !> SIDE is CHARACTER*1 !> On entry, SIDE specifies whether op( A ) appears on the left !> or right of X as follows: !> !> SIDE = 'L' or 'l' op( A )*X = alpha*B\&. !> !> SIDE = 'R' or 'r' X*op( A ) = alpha*B\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIUPLO\fP .PP .nf !> UPLO is CHARACTER*1 !> On entry, UPLO specifies whether the RFP matrix A came from !> an upper or lower triangular matrix as follows: !> UPLO = 'U' or 'u' RFP A came from an upper triangular matrix !> UPLO = 'L' or 'l' RFP A came from a lower triangular matrix !> !> Unchanged on exit\&. !> .fi .PP .br \fITRANS\fP .PP .nf !> TRANS is CHARACTER*1 !> On entry, TRANS specifies the form of op( A ) to be used !> in the matrix multiplication as follows: !> !> TRANS = 'N' or 'n' op( A ) = A\&. !> !> TRANS = 'C' or 'c' op( A ) = conjg( A' )\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIDIAG\fP .PP .nf !> DIAG is CHARACTER*1 !> On entry, DIAG specifies whether or not RFP A is unit !> triangular as follows: !> !> DIAG = 'U' or 'u' A is assumed to be unit triangular\&. !> !> DIAG = 'N' or 'n' A is not assumed to be unit !> triangular\&. !> !> Unchanged on exit\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> On entry, M specifies the number of rows of B\&. M must be at !> least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> On entry, N specifies the number of columns of B\&. N must be !> at least zero\&. !> Unchanged on exit\&. !> .fi .PP .br \fIALPHA\fP .PP .nf !> ALPHA is COMPLEX*16 !> On entry, ALPHA specifies the scalar alpha\&. When alpha is !> zero then A is not referenced and B need not be set before !> entry\&. !> Unchanged on exit\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is COMPLEX*16 array, dimension (N*(N+1)/2) !> NT = N*(N+1)/2 if SIDE='R' and NT = M*(M+1)/2 otherwise\&. !> On entry, the matrix A in RFP Format\&. !> RFP Format is described by TRANSR, UPLO and N as follows: !> If TRANSR='N' then RFP A is (0:N,0:K-1) when N is even; !> K=N/2\&. RFP A is (0:N-1,0:K) when N is odd; K=N/2\&. If !> TRANSR = 'C' then RFP is the Conjugate-transpose of RFP A as !> defined when TRANSR = 'N'\&. The contents of RFP A are defined !> by UPLO as follows: If UPLO = 'U' the RFP A contains the NT !> elements of upper packed A either in normal or !> conjugate-transpose Format\&. If UPLO = 'L' the RFP A contains !> the NT elements of lower packed A either in normal or !> conjugate-transpose Format\&. The LDA of RFP A is (N+1)/2 when !> TRANSR = 'C'\&. When TRANSR is 'N' the LDA is N+1 when N is !> even and is N when is odd\&. !> See the Note below for more details\&. Unchanged on exit\&. !> .fi .PP .br \fIB\fP .PP .nf !> B is COMPLEX*16 array, dimension (LDB,N) !> Before entry, the leading m by n part of the array B must !> contain the right-hand side matrix B, and on exit is !> overwritten by the solution matrix X\&. !> .fi .PP .br \fILDB\fP .PP .nf !> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program\&. LDB must be at least !> max( 1, m )\&. !> Unchanged on exit\&. !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf !> !> We first consider Standard Packed Format when N is even\&. !> We give an example where N = 6\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 05 00 !> 11 12 13 14 15 10 11 !> 22 23 24 25 20 21 22 !> 33 34 35 30 31 32 33 !> 44 45 40 41 42 43 44 !> 55 50 51 52 53 54 55 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(4:6,0:2) consists of !> conjugate-transpose of the first three columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:2,0:2) consists of !> conjugate-transpose of the last three columns of AP lower\&. !> To denote conjugate we place -- above the element\&. This covers the !> case N even and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> -- -- -- !> 03 04 05 33 43 53 !> -- -- !> 13 14 15 00 44 54 !> -- !> 23 24 25 10 11 55 !> !> 33 34 35 20 21 22 !> -- !> 00 44 45 30 31 32 !> -- -- !> 01 11 55 40 41 42 !> -- -- -- !> 02 12 22 50 51 52 !> !> Now let TRANSR = 'C'\&. RFP A in both UPLO cases is just the conjugate- !> transpose of RFP A above\&. One therefore gets: !> !> !> RFP A RFP A !> !> -- -- -- -- -- -- -- -- -- -- !> 03 13 23 33 00 01 02 33 00 10 20 30 40 50 !> -- -- -- -- -- -- -- -- -- -- !> 04 14 24 34 44 11 12 43 44 11 21 31 41 51 !> -- -- -- -- -- -- -- -- -- -- !> 05 15 25 35 45 55 22 53 54 55 22 32 42 52 !> !> !> We next consider Standard Packed Format when N is odd\&. !> We give an example where N = 5\&. !> !> AP is Upper AP is Lower !> !> 00 01 02 03 04 00 !> 11 12 13 14 10 11 !> 22 23 24 20 21 22 !> 33 34 30 31 32 33 !> 44 40 41 42 43 44 !> !> !> Let TRANSR = 'N'\&. RFP holds AP as follows: !> For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last !> three columns of AP upper\&. The lower triangle A(3:4,0:1) consists of !> conjugate-transpose of the first two columns of AP upper\&. !> For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first !> three columns of AP lower\&. The upper triangle A(0:1,1:2) consists of !> conjugate-transpose of the last two columns of AP lower\&. !> To denote conjugate we place -- above the element\&. This covers the !> case N odd and TRANSR = 'N'\&. !> !> RFP A RFP A !> !> -- -- !> 02 03 04 00 33 43 !> -- !> 12 13 14 10 11 44 !> !> 22 23 24 20 21 22 !> -- !> 00 33 34 30 31 32 !> -- -- !> 01 11 44 40 41 42 !> !> Now let TRANSR = 'C'\&. RFP A in both UPLO cases is just the conjugate- !> transpose of RFP A above\&. One therefore gets: !> !> !> RFP A RFP A !> !> -- -- -- -- -- -- -- -- -- !> 02 12 22 00 01 00 10 20 30 40 50 !> -- -- -- -- -- -- -- -- -- !> 03 13 23 33 11 33 11 21 31 41 51 !> -- -- -- -- -- -- -- -- -- !> 04 14 24 34 44 43 44 22 32 42 52 !> .fi .PP .RE .PP .PP Definition at line \fB297\fP of file \fBztfsm\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.