1STRSM(1)                         BLAS routine                         STRSM(1)
2
3
4

NAME

6       STRSM  -  solves  one of the matrix equations   op( A )*X = alpha*B, or
7       X*op( A ) = alpha*B,
8

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

115       Level 3 Blas routine.
116
117
118       -- Written on 8-February-1989.
119          Jack Dongarra, Argonne National Laboratory.
120          Iain Duff, AERE Harwell.
121          Jeremy Du Croz, Numerical Algorithms Group Ltd.
122          Sven Hammarling, Numerical Algorithms Group Ltd.
123
124
125
126
127BLAS routine                     November 2008                        STRSM(1)
Impressum