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