1ZTRMM(1) BLAS routine ZTRMM(1)
2
3
4
6 ZTRMM - one of the matrix-matrix operations B := alpha*op( A )*B, or
7 B := alpha*B*op( A ) where alpha is a scalar, B is an m by n matrix, A
8 is a unit, or non-unit, upper or lower triangular matrix and op( A ) is
9 one of op( A ) = A or op( A ) = A' or op( A ) = conjg( A' )
10
12 SUBROUTINE ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
13
14 DOUBLE COMPLEX
15 ALPHA
16
17 INTEGER LDA,LDB,M,N
18
19 CHARACTER DIAG,SIDE,TRANSA,UPLO
20
21 DOUBLE COMPLEX
22 A(LDA,*),B(LDB,*)
23
25 ZTRMM performs one of the matrix-matrix operations
26
27
29 SIDE - CHARACTER*1.
30 On entry, SIDE specifies whether op( A ) multiplies B from the
31 left or right as follows:
32
33 SIDE = 'L' or 'l' B := alpha*op( A )*B.
34
35 SIDE = 'R' or 'r' B := alpha*B*op( A ).
36
37 Unchanged on exit.
38
39 UPLO - CHARACTER*1.
40 On entry, UPLO specifies whether the matrix A is an upper or
41 lower triangular matrix as follows:
42
43 UPLO = 'U' or 'u' A is an upper triangular matrix.
44
45 UPLO = 'L' or 'l' A is a lower triangular matrix.
46
47 Unchanged on exit.
48
49 TRANSA - CHARACTER*1. On entry, TRANSA specifies the form of
50 op( A ) to be used in the matrix multiplication as follows:
51
52 TRANSA = 'N' or 'n' op( A ) = A.
53
54 TRANSA = 'T' or 't' op( A ) = A'.
55
56 TRANSA = 'C' or 'c' op( A ) = conjg( A' ).
57
58 Unchanged on exit.
59
60 DIAG - CHARACTER*1.
61 On entry, DIAG specifies whether or not A is unit triangular as
62 follows:
63
64 DIAG = 'U' or 'u' A is assumed to be unit triangular.
65
66 DIAG = 'N' or 'n' A is not assumed to be unit triangular.
67
68 Unchanged on exit.
69
70 M - INTEGER.
71 On entry, M specifies the number of rows of B. M must be at
72 least zero. Unchanged on exit.
73
74 N - INTEGER.
75 On entry, N specifies the number of columns of B. N must be at
76 least zero. Unchanged on exit.
77
78 ALPHA - COMPLEX*16 .
79 On entry, ALPHA specifies the scalar alpha. When alpha is
80 zero then A is not referenced and B need not be set before
81 entry. Unchanged on exit.
82
83 A - COMPLEX*16 array of DIMENSION ( LDA, k ), where k is m
84 when SIDE = 'L' or 'l' and is n when SIDE = 'R' or 'r'.
85 Before entry with UPLO = 'U' or 'u', the leading k by k
86 upper triangular part of the array A must contain the upper
87 triangular matrix and the strictly lower triangular part of A
88 is not referenced. Before entry with UPLO = 'L' or 'l', the
89 leading k by k lower triangular part of the array A must con‐
90 tain the lower triangular matrix and the strictly upper trian‐
91 gular part of A is not referenced. Note that when DIAG = 'U'
92 or 'u', the diagonal elements of A are not referenced either,
93 but are assumed to be unity. Unchanged on exit.
94
95 LDA - INTEGER.
96 On entry, LDA specifies the first dimension of A as declared in
97 the calling (sub) program. When SIDE = 'L' or 'l' then LDA
98 must be at least max( 1, m ), when SIDE = 'R' or 'r' then LDA
99 must be at least max( 1, n ). Unchanged on exit.
100
101 B - COMPLEX*16 array of DIMENSION ( LDB, n ).
102 Before entry, the leading m by n part of the array B must
103 contain the matrix B, and on exit is overwritten by the
104 transformed matrix.
105
106 LDB - INTEGER.
107 On entry, LDB specifies the first dimension of B as declared in
108 the calling (sub) program. LDB must be at least max( 1,
109 m ). Unchanged on exit.
110
111 Level 3 Blas routine.
112
113 -- Written on 8-February-1989. Jack Dongarra, Argonne National
114 Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical
115 Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms
116 Group Ltd.
117
118
119
120
121
122
123BLAS routine November 2006 ZTRMM(1)