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

NAME

6       CTRMM - performs one of the matrix-matrix operations   B := alpha*op( A
7       )*B, or B := alpha*B*op( A )  where alpha is a scalar, B is an m  by  n
8       matrix,  A is a unit, or non-unit, upper or lower triangular matrix and
9       op( A ) is one of   op( A ) = A or op( A ) = A' or op( A ) = conjg(  A'
10       )
11

SYNOPSIS

13       SUBROUTINE CTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
14
15           COMPLEX                                                   ALPHA
16
17           INTEGER                                                   LDA,LDB,M,N
18
19           CHARACTER                                                 DIAG,SIDE,TRANSA,UPLO
20
21           COMPLEX                                                   A(LDA,*),B(LDB,*)
22

PURPOSE

24       CTRMM  performs one of the matrix-matrix operations
25
26

ARGUMENTS

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

FURTHER DETAILS

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