Skip to content

Commit eec055e

Browse files
authored
Merge branch 'Reference-LAPACK:master' into skew-symmetric-new
2 parents 98d9c6a + 3c1abe4 commit eec055e

File tree

3,198 files changed

+3992
-96
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,198 files changed

+3992
-96
lines changed

BLAS/SRC/caxpy.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
*>
8686
* =====================================================================
8787
SUBROUTINE CAXPY(N,CA,CX,INCX,CY,INCY)
88+
IMPLICIT NONE
8889
*
8990
* -- Reference BLAS level1 routine --
9091
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/ccopy.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
*>
7979
* =====================================================================
8080
SUBROUTINE CCOPY(N,CX,INCX,CY,INCY)
81+
IMPLICIT NONE
8182
*
8283
* -- Reference BLAS level1 routine --
8384
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cdotc.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
*>
8181
* =====================================================================
8282
COMPLEX FUNCTION CDOTC(N,CX,INCX,CY,INCY)
83+
IMPLICIT NONE
8384
*
8485
* -- Reference BLAS level1 routine --
8586
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cdotu.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
*>
8181
* =====================================================================
8282
COMPLEX FUNCTION CDOTU(N,CX,INCX,CY,INCY)
83+
IMPLICIT NONE
8384
*
8485
* -- Reference BLAS level1 routine --
8586
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cgbmv.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@
187187
* =====================================================================
188188
SUBROUTINE CGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,
189189
+ BETA,Y,INCY)
190+
IMPLICIT NONE
190191
*
191192
* -- Reference BLAS level2 routine --
192193
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cgemm.f

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@
3535
*>
3636
*> alpha and beta are scalars, and A, B and C are matrices, with op( A )
3737
*> an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
38+
*>
39+
*> Note: if alpha and/or beta is zero, some parts of the matrix-matrix
40+
*> operations are not performed. This results in the following NaN/Inf
41+
*> propagation quirks:
42+
*>
43+
*> 1. If alpha is zero, NaNs or Infs in A or B do not affect the result.
44+
*> 2. If both alpha and beta are zero, then a zero matrix is returned in C,
45+
*> irrespective of any NaNs or Infs in A, B or C.
46+
*> 3. If only beta is zero, alpha*op( A )*op( B ) is returned, irrespective
47+
*> of any NaNs or Infs in C.
3848
*> \endverbatim
3949
*
4050
* Arguments:
@@ -92,7 +102,9 @@
92102
*> \param[in] ALPHA
93103
*> \verbatim
94104
*> ALPHA is COMPLEX
95-
*> On entry, ALPHA specifies the scalar alpha.
105+
*> On entry, ALPHA specifies the scalar alpha. If ALPHA is zero the
106+
*> values in A and B do not affect the result. This also means that
107+
*> NaN/Inf propagation from A and B is inhibited if ALPHA is zero.
96108
*> \endverbatim
97109
*>
98110
*> \param[in] A
@@ -102,7 +114,10 @@
102114
*> Before entry with TRANSA = 'N' or 'n', the leading m by k
103115
*> part of the array A must contain the matrix A, otherwise
104116
*> the leading k by m part of the array A must contain the
105-
*> matrix A.
117+
*> matrix A, except if ALPHA is zero.
118+
*> If ALPHA is zero, none of the values in A affect the result, even
119+
*> if they are NaN/Inf. This also implies that if ALPHA is zero,
120+
*> the matrix elements of A need not be initialized by the caller.
106121
*> \endverbatim
107122
*>
108123
*> \param[in] LDA
@@ -121,7 +136,10 @@
121136
*> Before entry with TRANSB = 'N' or 'n', the leading k by n
122137
*> part of the array B must contain the matrix B, otherwise
123138
*> the leading n by k part of the array B must contain the
124-
*> matrix B.
139+
*> matrix B, except if ALPHA is zero.
140+
*> If ALPHA is zero, none of the values in B affect the result, even
141+
*> if they are NaN/Inf. This also implies that if ALPHA is zero,
142+
*> the matrix elements of B need not be initialized by the caller.
125143
*> \endverbatim
126144
*>
127145
*> \param[in] LDB
@@ -136,16 +154,19 @@
136154
*> \param[in] BETA
137155
*> \verbatim
138156
*> BETA is COMPLEX
139-
*> On entry, BETA specifies the scalar beta. When BETA is
140-
*> supplied as zero then C need not be set on input.
157+
*> On entry, BETA specifies the scalar beta. If BETA is zero the
158+
*> values in C do not affect the result. This also means that
159+
*> NaN/Inf propagation from C is inhibited if BETA is zero.
141160
*> \endverbatim
142161
*>
143162
*> \param[in,out] C
144163
*> \verbatim
145164
*> C is COMPLEX array, dimension ( LDC, N )
146165
*> Before entry, the leading m by n part of the array C must
147-
*> contain the matrix C, except when beta is zero, in which
148-
*> case C need not be set on entry.
166+
*> contain the matrix C, except if beta is zero.
167+
*> If beta is zero, none of the values in C affect the result, even
168+
*> if they are NaN/Inf. This also implies that if beta is zero,
169+
*> the matrix elements of C need not be initialized by the caller.
149170
*> On exit, the array C is overwritten by the m by n matrix
150171
*> ( alpha*op( A )*op( B ) + beta*C ).
151172
*> \endverbatim
@@ -185,6 +206,7 @@
185206
* =====================================================================
186207
SUBROUTINE CGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,
187208
+ BETA,C,LDC)
209+
IMPLICIT NONE
188210
*
189211
* -- Reference BLAS level3 routine --
190212
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cgemv.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@
157157
*>
158158
* =====================================================================
159159
SUBROUTINE CGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
160+
IMPLICIT NONE
160161
*
161162
* -- Reference BLAS level2 routine --
162163
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cgerc.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
*>
128128
* =====================================================================
129129
SUBROUTINE CGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA)
130+
IMPLICIT NONE
130131
*
131132
* -- Reference BLAS level2 routine --
132133
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/cgeru.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
*>
128128
* =====================================================================
129129
SUBROUTINE CGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA)
130+
IMPLICIT NONE
130131
*
131132
* -- Reference BLAS level2 routine --
132133
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

BLAS/SRC/chbmv.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@
184184
*>
185185
* =====================================================================
186186
SUBROUTINE CHBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
187+
IMPLICIT NONE
187188
*
188189
* -- Reference BLAS level2 routine --
189190
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

0 commit comments

Comments
 (0)