Skip to content

Commit de1fbc2

Browse files
authored
Merge pull request #2 from Reference-LAPACK/master
rebase
2 parents 3c125d6 + 8e1e16c commit de1fbc2

Some content is hidden

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

59 files changed

+344
-143
lines changed

BLAS/SRC/cdotc.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
*>
4040
*> \param[in] CX
4141
*> \verbatim
42-
*> CX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
42+
*> CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
4343
*> \endverbatim
4444
*>
4545
*> \param[in] INCX
@@ -50,7 +50,7 @@
5050
*>
5151
*> \param[in] CY
5252
*> \verbatim
53-
*> CY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
53+
*> CY is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
5454
*> \endverbatim
5555
*>
5656
*> \param[in] INCY

BLAS/SRC/cdotu.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
*>
4040
*> \param[in] CX
4141
*> \verbatim
42-
*> CX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
42+
*> CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
4343
*> \endverbatim
4444
*>
4545
*> \param[in] INCX
@@ -50,7 +50,7 @@
5050
*>
5151
*> \param[in] CY
5252
*> \verbatim
53-
*> CY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
53+
*> CY is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
5454
*> \endverbatim
5555
*>
5656
*> \param[in] INCY

BLAS/SRC/zdotc.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
*>
4040
*> \param[in] ZX
4141
*> \verbatim
42-
*> ZX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
42+
*> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
4343
*> \endverbatim
4444
*>
4545
*> \param[in] INCX
@@ -50,7 +50,7 @@
5050
*>
5151
*> \param[in] ZY
5252
*> \verbatim
53-
*> ZY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
53+
*> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
5454
*> \endverbatim
5555
*>
5656
*> \param[in] INCY

BLAS/SRC/zdotu.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
*>
4040
*> \param[in] ZX
4141
*> \verbatim
42-
*> ZX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
42+
*> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
4343
*> \endverbatim
4444
*>
4545
*> \param[in] INCX
@@ -50,7 +50,7 @@
5050
*>
5151
*> \param[in] ZY
5252
*> \verbatim
53-
*> ZY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
53+
*> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
5454
*> \endverbatim
5555
*>
5656
*> \param[in] INCY

BLAS/TESTING/cblat1.f

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ SUBROUTINE CHECK1(SFAC)
127127
* .. Local Scalars ..
128128
COMPLEX CA
129129
REAL SA
130-
INTEGER I, J, LEN, NP1
130+
INTEGER I, IX, J, LEN, NP1
131131
* .. Local Arrays ..
132-
COMPLEX CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CX(8),
133-
+ MWPCS(5), MWPCT(5)
132+
COMPLEX CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CVR(8),
133+
+ CX(8), CXR(15), MWPCS(5), MWPCT(5)
134134
REAL STRUE2(5), STRUE4(5)
135-
INTEGER ITRUE3(5)
135+
INTEGER ITRUE3(5), ITRUEC(5)
136136
* .. External Functions ..
137137
REAL SCASUM, SCNRM2
138138
INTEGER ICAMAX
@@ -173,6 +173,9 @@ SUBROUTINE CHECK1(SFAC)
173173
+ (7.0E0,2.0E0), (0.3E0,0.1E0), (5.0E0,8.0E0),
174174
+ (0.5E0,0.0E0), (6.0E0,9.0E0), (0.0E0,0.5E0),
175175
+ (8.0E0,3.0E0), (0.0E0,0.2E0), (9.0E0,4.0E0)/
176+
DATA CVR/(8.0E0,8.0E0), (-7.0E0,-7.0E0),
177+
+ (9.0E0,9.0E0), (5.0E0,5.0E0), (9.0E0,9.0E0),
178+
+ (8.0E0,8.0E0), (7.0E0,7.0E0), (7.0E0,7.0E0)/
176179
DATA STRUE2/0.0E0, 0.5E0, 0.6E0, 0.7E0, 0.8E0/
177180
DATA STRUE4/0.0E0, 0.7E0, 1.0E0, 1.3E0, 1.6E0/
178181
DATA ((CTRUE5(I,J,1),I=1,8),J=1,5)/(0.1E0,0.1E0),
@@ -238,6 +241,7 @@ SUBROUTINE CHECK1(SFAC)
238241
+ (0.15E0,0.00E0), (6.0E0,9.0E0), (0.00E0,0.15E0),
239242
+ (8.0E0,3.0E0), (0.00E0,0.06E0), (9.0E0,4.0E0)/
240243
DATA ITRUE3/0, 1, 2, 2, 2/
244+
DATA ITRUEC/0, 1, 1, 1, 1/
241245
* .. Executable Statements ..
242246
DO 60 INCX = 1, 2
243247
DO 40 NP1 = 1, 5
@@ -268,12 +272,25 @@ SUBROUTINE CHECK1(SFAC)
268272
ELSE IF (ICASE.EQ.10) THEN
269273
* .. ICAMAX ..
270274
CALL ITEST1(ICAMAX(N,CX,INCX),ITRUE3(NP1))
275+
DO 160 I = 1, LEN
276+
CX(I) = (42.0E0,43.0E0)
277+
160 CONTINUE
278+
CALL ITEST1(ICAMAX(N,CX,INCX),ITRUEC(NP1))
271279
ELSE
272280
WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
273281
STOP
274282
END IF
275283
*
276284
40 CONTINUE
285+
IF (ICASE.EQ.10) THEN
286+
N = 8
287+
IX = 1
288+
DO 180 I = 1, N
289+
CXR(IX) = CVR(I)
290+
IX = IX + INCX
291+
180 CONTINUE
292+
CALL ITEST1(ICAMAX(N,CXR,INCX),3)
293+
END IF
277294
60 CONTINUE
278295
*
279296
INCX = 1
@@ -327,11 +344,13 @@ SUBROUTINE CHECK2(SFAC)
327344
LOGICAL PASS
328345
* .. Local Scalars ..
329346
COMPLEX CA
330-
INTEGER I, J, KI, KN, KSIZE, LENX, LENY, MX, MY
347+
INTEGER I, J, KI, KN, KSIZE, LENX, LENY, LINCX, LINCY,
348+
+ MX, MY
331349
* .. Local Arrays ..
332350
COMPLEX CDOT(1), CSIZE1(4), CSIZE2(7,2), CSIZE3(14),
333351
+ CT10X(7,4,4), CT10Y(7,4,4), CT6(4,4), CT7(4,4),
334-
+ CT8(7,4,4), CX(7), CX1(7), CY(7), CY1(7)
352+
+ CT8(7,4,4), CTY0(1), CX(7), CX0(1), CX1(7),
353+
+ CY(7), CY0(1), CY1(7)
335354
INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
336355
* .. External Functions ..
337356
COMPLEX CDOTC, CDOTU
@@ -546,6 +565,23 @@ SUBROUTINE CHECK2(SFAC)
546565
* .. CCOPY ..
547566
CALL CCOPY(N,CX,INCX,CY,INCY)
548567
CALL CTEST(LENY,CY,CT10Y(1,KN,KI),CSIZE3,1.0E0)
568+
IF (KI.EQ.1) THEN
569+
CX0(1) = (42.0E0,43.0E0)
570+
CY0(1) = (44.0E0,45.0E0)
571+
IF (N.EQ.0) THEN
572+
CTY0(1) = CY0(1)
573+
ELSE
574+
CTY0(1) = CX0(1)
575+
END IF
576+
LINCX = INCX
577+
INCX = 0
578+
LINCY = INCY
579+
INCY = 0
580+
CALL CCOPY(N,CX0,INCX,CY0,INCY)
581+
CALL CTEST(1,CY0,CTY0,CSIZE3,1.0E0)
582+
INCX = LINCX
583+
INCY = LINCY
584+
END IF
549585
ELSE IF (ICASE.EQ.5) THEN
550586
* .. CSWAP ..
551587
CALL CSWAP(N,CX,INCX,CY,INCY)

BLAS/TESTING/dblat1.f

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,12 @@ SUBROUTINE CHECK1(SFAC)
249249
INTEGER ICASE, INCX, INCY, N
250250
LOGICAL PASS
251251
* .. Local Scalars ..
252-
INTEGER I, LEN, NP1
252+
INTEGER I, IX, LEN, NP1
253253
* .. Local Arrays ..
254254
DOUBLE PRECISION DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
255-
+ SA(10), STEMP(1), STRUE(8), SX(8)
256-
INTEGER ITRUE2(5)
255+
+ DVR(8), SA(10), STEMP(1), STRUE(8), SX(8),
256+
+ SXR(15)
257+
INTEGER ITRUE2(5), ITRUEC(5)
257258
* .. External Functions ..
258259
DOUBLE PRECISION DASUM, DNRM2
259260
INTEGER IDAMAX
@@ -280,6 +281,8 @@ SUBROUTINE CHECK1(SFAC)
280281
+ 0.2D0, 3.0D0, -0.6D0, 5.0D0, 0.3D0, 2.0D0,
281282
+ 2.0D0, 2.0D0, 0.1D0, 4.0D0, -0.3D0, 6.0D0,
282283
+ -0.5D0, 7.0D0, -0.1D0, 3.0D0/
284+
DATA DVR/8.0D0, -7.0D0, 9.0D0, 5.0D0, 9.0D0, 8.0D0,
285+
+ 7.0D0, 7.0D0/
283286
DATA DTRUE1/0.0D0, 0.3D0, 0.5D0, 0.7D0, 0.6D0/
284287
DATA DTRUE3/0.0D0, 0.3D0, 0.7D0, 1.1D0, 1.0D0/
285288
DATA DTRUE5/0.10D0, 2.0D0, 2.0D0, 2.0D0, 2.0D0,
@@ -297,6 +300,7 @@ SUBROUTINE CHECK1(SFAC)
297300
+ 0.03D0, 4.0D0, -0.09D0, 6.0D0, -0.15D0, 7.0D0,
298301
+ -0.03D0, 3.0D0/
299302
DATA ITRUE2/0, 1, 2, 2, 3/
303+
DATA ITRUEC/0, 1, 1, 1, 1/
300304
* .. Executable Statements ..
301305
DO 80 INCX = 1, 2
302306
DO 60 NP1 = 1, 5
@@ -325,11 +329,24 @@ SUBROUTINE CHECK1(SFAC)
325329
ELSE IF (ICASE.EQ.10) THEN
326330
* .. IDAMAX ..
327331
CALL ITEST1(IDAMAX(N,SX,INCX),ITRUE2(NP1))
332+
DO 100 I = 1, LEN
333+
SX(I) = 42.0D0
334+
100 CONTINUE
335+
CALL ITEST1(IDAMAX(N,SX,INCX),ITRUEC(NP1))
328336
ELSE
329337
WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
330338
STOP
331339
END IF
332340
60 CONTINUE
341+
IF (ICASE.EQ.10) THEN
342+
N = 8
343+
IX = 1
344+
DO 120 I = 1, N
345+
SXR(IX) = DVR(I)
346+
IX = IX + INCX
347+
120 CONTINUE
348+
CALL ITEST1(IDAMAX(N,SXR,INCX),3)
349+
END IF
333350
80 CONTINUE
334351
RETURN
335352
END
@@ -345,7 +362,7 @@ SUBROUTINE CHECK2(SFAC)
345362
* .. Local Scalars ..
346363
DOUBLE PRECISION SA
347364
INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
348-
$ MX, MY
365+
$ LINCX, LINCY, MX, MY
349366
* .. Local Arrays ..
350367
DOUBLE PRECISION DT10X(7,4,4), DT10Y(7,4,4), DT7(4,4),
351368
$ DT8(7,4,4), DX1(7),
@@ -354,7 +371,8 @@ SUBROUTINE CHECK2(SFAC)
354371
$ DPAR(5,4), DT19X(7,4,16),DT19XA(7,4,4),
355372
$ DT19XB(7,4,4), DT19XC(7,4,4),DT19XD(7,4,4),
356373
$ DT19Y(7,4,16), DT19YA(7,4,4),DT19YB(7,4,4),
357-
$ DT19YC(7,4,4), DT19YD(7,4,4), DTEMP(5)
374+
$ DT19YC(7,4,4), DT19YD(7,4,4), DTEMP(5),
375+
$ STY0(1), SX0(1), SY0(1)
358376
INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
359377
* .. External Functions ..
360378
DOUBLE PRECISION DDOT, DSDOT
@@ -628,6 +646,23 @@ SUBROUTINE CHECK2(SFAC)
628646
60 CONTINUE
629647
CALL DCOPY(N,SX,INCX,SY,INCY)
630648
CALL STEST(LENY,SY,STY,SSIZE2(1,1),1.0D0)
649+
IF (KI.EQ.1) THEN
650+
SX0(1) = 42.0D0
651+
SY0(1) = 43.0D0
652+
IF (N.EQ.0) THEN
653+
STY0(1) = SY0(1)
654+
ELSE
655+
STY0(1) = SX0(1)
656+
END IF
657+
LINCX = INCX
658+
INCX = 0
659+
LINCY = INCY
660+
INCY = 0
661+
CALL DCOPY(N,SX0,INCX,SY0,INCY)
662+
CALL STEST(1,SY0,STY0,SSIZE2(1,1),1.0D0)
663+
INCX = LINCX
664+
INCY = LINCY
665+
END IF
631666
ELSE IF (ICASE.EQ.6) THEN
632667
* .. DSWAP ..
633668
CALL DSWAP(N,SX,INCX,SY,INCY)

BLAS/TESTING/sblat1.f

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,12 @@ SUBROUTINE CHECK1(SFAC)
249249
INTEGER ICASE, INCX, INCY, N
250250
LOGICAL PASS
251251
* .. Local Scalars ..
252-
INTEGER I, LEN, NP1
252+
INTEGER I, IX, LEN, NP1
253253
* .. Local Arrays ..
254254
REAL DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
255-
+ SA(10), STEMP(1), STRUE(8), SX(8)
256-
INTEGER ITRUE2(5)
255+
+ DVR(8), SA(10), STEMP(1), STRUE(8), SX(8),
256+
+ SXR(15)
257+
INTEGER ITRUE2(5), ITRUEC(5)
257258
* .. External Functions ..
258259
REAL SASUM, SNRM2
259260
INTEGER ISAMAX
@@ -280,6 +281,8 @@ SUBROUTINE CHECK1(SFAC)
280281
+ 0.2E0, 3.0E0, -0.6E0, 5.0E0, 0.3E0, 2.0E0,
281282
+ 2.0E0, 2.0E0, 0.1E0, 4.0E0, -0.3E0, 6.0E0,
282283
+ -0.5E0, 7.0E0, -0.1E0, 3.0E0/
284+
DATA DVR/8.0E0, -7.0E0, 9.0E0, 5.0E0, 9.0E0, 8.0E0,
285+
+ 7.0E0, 7.0E0/
283286
DATA DTRUE1/0.0E0, 0.3E0, 0.5E0, 0.7E0, 0.6E0/
284287
DATA DTRUE3/0.0E0, 0.3E0, 0.7E0, 1.1E0, 1.0E0/
285288
DATA DTRUE5/0.10E0, 2.0E0, 2.0E0, 2.0E0, 2.0E0,
@@ -297,6 +300,7 @@ SUBROUTINE CHECK1(SFAC)
297300
+ 0.03E0, 4.0E0, -0.09E0, 6.0E0, -0.15E0, 7.0E0,
298301
+ -0.03E0, 3.0E0/
299302
DATA ITRUE2/0, 1, 2, 2, 3/
303+
DATA ITRUEC/0, 1, 1, 1, 1/
300304
* .. Executable Statements ..
301305
DO 80 INCX = 1, 2
302306
DO 60 NP1 = 1, 5
@@ -325,11 +329,24 @@ SUBROUTINE CHECK1(SFAC)
325329
ELSE IF (ICASE.EQ.10) THEN
326330
* .. ISAMAX ..
327331
CALL ITEST1(ISAMAX(N,SX,INCX),ITRUE2(NP1))
332+
DO 100 I = 1, LEN
333+
SX(I) = 42.0E0
334+
100 CONTINUE
335+
CALL ITEST1(ISAMAX(N,SX,INCX),ITRUEC(NP1))
328336
ELSE
329337
WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
330338
STOP
331339
END IF
332340
60 CONTINUE
341+
IF (ICASE.EQ.10) THEN
342+
N = 8
343+
IX = 1
344+
DO 120 I = 1, N
345+
SXR(IX) = DVR(I)
346+
IX = IX + INCX
347+
120 CONTINUE
348+
CALL ITEST1(ISAMAX(N,SXR,INCX),3)
349+
END IF
333350
80 CONTINUE
334351
RETURN
335352
END
@@ -345,7 +362,7 @@ SUBROUTINE CHECK2(SFAC)
345362
* .. Local Scalars ..
346363
REAL SA
347364
INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
348-
$ MX, MY
365+
$ LINCX, LINCY, MX, MY
349366
* .. Local Arrays ..
350367
REAL DT10X(7,4,4), DT10Y(7,4,4), DT7(4,4),
351368
$ DT8(7,4,4), DX1(7),
@@ -355,7 +372,7 @@ SUBROUTINE CHECK2(SFAC)
355372
$ DT19XB(7,4,4), DT19XC(7,4,4),DT19XD(7,4,4),
356373
$ DT19Y(7,4,16), DT19YA(7,4,4),DT19YB(7,4,4),
357374
$ DT19YC(7,4,4), DT19YD(7,4,4), DTEMP(5),
358-
$ ST7B(4,4)
375+
$ ST7B(4,4), STY0(1), SX0(1), SY0(1)
359376
INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
360377
* .. External Functions ..
361378
REAL SDOT, SDSDOT
@@ -631,6 +648,23 @@ SUBROUTINE CHECK2(SFAC)
631648
60 CONTINUE
632649
CALL SCOPY(N,SX,INCX,SY,INCY)
633650
CALL STEST(LENY,SY,STY,SSIZE2(1,1),1.0E0)
651+
IF (KI.EQ.1) THEN
652+
SX0(1) = 42.0E0
653+
SY0(1) = 43.0E0
654+
IF (N.EQ.0) THEN
655+
STY0(1) = SY0(1)
656+
ELSE
657+
STY0(1) = SX0(1)
658+
END IF
659+
LINCX = INCX
660+
INCX = 0
661+
LINCY = INCY
662+
INCY = 0
663+
CALL SCOPY(N,SX0,INCX,SY0,INCY)
664+
CALL STEST(1,SY0,STY0,SSIZE2(1,1),1.0E0)
665+
INCX = LINCX
666+
INCY = LINCY
667+
END IF
634668
ELSE IF (ICASE.EQ.6) THEN
635669
* .. SSWAP ..
636670
CALL SSWAP(N,SX,INCX,SY,INCY)

0 commit comments

Comments
 (0)