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

NAME

6       STRMM - performs one of the matrix-matrix operations   B := alpha*op( A
7       )*B, or B := alpha*B*op( A ),
8

SYNOPSIS

10       SUBROUTINE STRMM(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       STRMM  performs one of the matrix-matrix operations
22
23       where   alpha   is a scalar,  B  is an m by n matrix,  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

ARGUMENTS

30       SIDE   - CHARACTER*1.
31              On entry,  SIDE specifies whether  op( A ) multiplies B from the
32              left or right as follows:
33
34              SIDE = 'L' or 'l'   B := alpha*op( A )*B.
35
36              SIDE = 'R' or 'r'   B := alpha*B*op( A ).
37
38              Unchanged on exit.
39
40       UPLO   - CHARACTER*1.
41              On  entry,  UPLO  specifies  whether the matrix A is an upper or
42              lower triangular matrix as follows:
43
44              UPLO = 'U' or 'u'   A is an upper triangular matrix.
45
46              UPLO = 'L' or 'l'   A is a lower triangular matrix.
47
48              Unchanged on exit.
49
50              TRANSA - CHARACTER*1.  On entry, TRANSA specifies  the  form  of
51              op( A ) to be used in the matrix multiplication as follows:
52
53              TRANSA = 'N' or 'n'   op( A ) = A.
54
55              TRANSA = 'T' or 't'   op( A ) = A'.
56
57              TRANSA = 'C' or 'c'   op( A ) = A'.
58
59              Unchanged on exit.
60
61       DIAG   - CHARACTER*1.
62              On  entry, DIAG specifies whether or not A is unit triangular as
63              follows:
64
65              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
66
67              DIAG = 'N' or 'n'   A is not assumed to be unit triangular.
68
69              Unchanged on exit.
70
71       M      - INTEGER.
72              On entry, M specifies the number of rows of  B.  M  must  be  at
73              least zero.  Unchanged on exit.
74
75       N      - INTEGER.
76              On  entry, N specifies the number of columns of B.  N must be at
77              least zero.  Unchanged on exit.
78
79       ALPHA  - REAL            .
80              On entry,  ALPHA specifies the scalar   alpha.  When   alpha  is
81              zero  then   A  is  not referenced and  B need not be set before
82              entry.  Unchanged on exit.
83
84       A      - REAL             array of DIMENSION ( LDA, k ), where k is m
85              when  SIDE = 'L' or 'l'  and is  n  when  SIDE  =  'R'  or  'r'.
86              Before  entry   with   UPLO  = 'U' or 'u',  the  leading  k by k
87              upper triangular part of the array  A  must  contain  the  upper
88              triangular  matrix   and the strictly lower triangular part of A
89              is not referenced.  Before entry  with  UPLO = 'L' or 'l',   the
90              leading   k by k lower triangular part of the array  A must con‐
91              tain the lower triangular matrix  and the strictly upper  trian‐
92              gular  part  of A is not referenced.  Note that when  DIAG = 'U'
93              or 'u',  the diagonal elements of A  are not referenced  either,
94              but are assumed to be  unity.  Unchanged on exit.
95
96       LDA    - INTEGER.
97              On  entry, LDA specifies the first dimension of A as declared in
98              the calling (sub) program.  When  SIDE = 'L' or  'l'   then  LDA
99              must be at least  max( 1, m ),  when  SIDE = 'R' or 'r' then LDA
100              must be at least max( 1, n ).  Unchanged on exit.
101
102       B      - REAL             array of DIMENSION ( LDB, n ).
103              Before entry,  the leading  m by n part of  the  array   B  must
104              contain  the  matrix   B,   and  on exit  is overwritten  by the
105              transformed matrix.
106
107       LDB    - INTEGER.
108              On entry, LDB specifies the first dimension of B as declared  in
109              the  calling  (sub)  program.   LDB  must  be  at  least max( 1,
110              m ).  Unchanged on exit.
111

FURTHER DETAILS

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