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