| @@ -1,5 +1,3 @@ | |||
| include ../../make.inc | |||
| ####################################################################### | |||
| # This is the makefile to create a library of the test matrix | |||
| # generators used in LAPACK. The files are organized as follows: | |||
| @@ -32,6 +30,9 @@ include ../../make.inc | |||
| # | |||
| ####################################################################### | |||
| TOPSRCDIR = ../.. | |||
| include $(TOPSRCDIR)/make.inc | |||
| SCATGEN = slatm1.o slatm7.o slaran.o slarnd.o | |||
| SMATGEN = slatms.o slatme.o slatmr.o slatmt.o \ | |||
| @@ -52,32 +53,32 @@ ZMATGEN = zlatms.o zlatme.o zlatmr.o zlatmt.o \ | |||
| zlagge.o zlaghe.o zlagsy.o zlakf2.o zlarge.o zlaror.o zlarot.o \ | |||
| zlatm1.o zlarnd.o zlatm2.o zlatm3.o zlatm5.o zlatm6.o zlahilb.o | |||
| all: ../../$(TMGLIB) | |||
| .PHONY: all | |||
| all: $(TMGLIB) | |||
| ALLOBJ = $(SMATGEN) $(CMATGEN) $(SCATGEN) $(DMATGEN) $(ZMATGEN) \ | |||
| $(DZATGEN) | |||
| .PHONY: ../../$(TMGLIB) | |||
| ../../$(TMGLIB): $(ALLOBJ) | |||
| $(ARCH) $(ARCHFLAGS) $@ $^ | |||
| $(TMGLIB): $(ALLOBJ) | |||
| $(AR) $(ARFLAGS) $@ $^ | |||
| $(RANLIB) $@ | |||
| .PHONY: single complex double complex16 | |||
| single: $(SMATGEN) $(SCATGEN) | |||
| $(ARCH) $(ARCHFLAGS) ../../$(TMGLIB) $^ | |||
| $(RANLIB) ../../$(TMGLIB) | |||
| $(AR) $(ARFLAGS) $(TMGLIB) $^ | |||
| $(RANLIB) $(TMGLIB) | |||
| complex: $(CMATGEN) $(SCATGEN) | |||
| $(ARCH) $(ARCHFLAGS) ../../$(TMGLIB) $^ | |||
| $(RANLIB) ../../$(TMGLIB) | |||
| $(AR) $(ARFLAGS) $(TMGLIB) $^ | |||
| $(RANLIB) $(TMGLIB) | |||
| double: $(DMATGEN) $(DZATGEN) | |||
| $(ARCH) $(ARCHFLAGS) ../../$(TMGLIB) $^ | |||
| $(RANLIB) ../../$(TMGLIB) | |||
| $(AR) $(ARFLAGS) $(TMGLIB) $^ | |||
| $(RANLIB) $(TMGLIB) | |||
| complex16: $(ZMATGEN) $(DZATGEN) | |||
| $(ARCH) $(ARCHFLAGS) ../../$(TMGLIB) $^ | |||
| $(RANLIB) ../../$(TMGLIB) | |||
| $(AR) $(ARFLAGS) $(TMGLIB) $^ | |||
| $(RANLIB) $(TMGLIB) | |||
| $(SCATGEN): $(FRC) | |||
| $(SMATGEN): $(FRC) | |||
| @@ -89,14 +90,12 @@ $(ZMATGEN): $(FRC) | |||
| FRC: | |||
| @FRC=$(FRC) | |||
| clean: cleanobj #cleanlib | |||
| .PHONY: clean cleanobj cleanlib | |||
| clean: cleanobj cleanlib | |||
| cleanobj: | |||
| rm -f *.o | |||
| cleanlib: | |||
| rm -f ../../$(TMGLIB) | |||
| .f.o: | |||
| $(FORTRAN) $(OPTS) -c -o $@ $< | |||
| rm -f $(TMGLIB) | |||
| slaran.o: slaran.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||
| dlaran.o: dlaran.f ; $(FORTRAN) $(NOOPT) -c -o $@ $< | |||
| slaran.o: slaran.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||
| dlaran.o: dlaran.f ; $(FC) $(FFLAGS_NOOPT) -c -o $@ $< | |||
| @@ -164,7 +164,7 @@ | |||
| INTEGER NMAX_EXACT, NMAX_APPROX, SIZE_D | |||
| PARAMETER (NMAX_EXACT = 6, NMAX_APPROX = 11, SIZE_D = 8) | |||
| * | |||
| * d's are generated from random permuation of those eight elements. | |||
| * d's are generated from random permutation of those eight elements. | |||
| COMPLEX D1(8), D2(8), INVD1(8), INVD2(8) | |||
| DATA D1 /(-1,0),(0,1),(-1,-1),(0,-1),(1,0),(-1,1),(1,1),(1,-1)/ | |||
| DATA D2 /(-1,0),(0,-1),(-1,1),(0,1),(1,0),(-1,-1),(1,-1),(1,1)/ | |||
| @@ -186,7 +186,7 @@ | |||
| *> SPARSE is REAL | |||
| *> Value between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -202,7 +202,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is REAL between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -316,20 +316,6 @@ | |||
| *> Not referenced if PIVTNG = 'N'. Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is REAL | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] KL | |||
| *> \verbatim | |||
| *> KL is INTEGER | |||
| @@ -350,6 +336,20 @@ | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is REAL | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] ANORM | |||
| *> \verbatim | |||
| *> ANORM is REAL | |||
| @@ -416,7 +416,7 @@ | |||
| *> If PACK='C' or 'R', LDA must be at least 1. | |||
| *> If PACK='B', or 'Q', LDA must be MIN ( KU+1, N ) | |||
| *> If PACK='Z', LDA must be at least KUU+KLL+1, where | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, N-1 ) | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, M-1 ) | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| @@ -182,7 +182,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -199,7 +199,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -303,20 +303,6 @@ | |||
| *> Not referenced if PIVTNG = 'N'. Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] KL | |||
| *> \verbatim | |||
| *> KL is INTEGER | |||
| @@ -337,6 +323,20 @@ | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] ANORM | |||
| *> \verbatim | |||
| *> ANORM is DOUBLE PRECISION | |||
| @@ -398,7 +398,7 @@ | |||
| *> If PACK='C' or 'R', LDA must be at least 1. | |||
| *> If PACK='B', or 'Q', LDA must be MIN ( KU+1, N ) | |||
| *> If PACK='Z', LDA must be at least KUU+KLL+1, where | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, N-1 ) | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, M-1 ) | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| @@ -182,7 +182,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is REAL between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -199,7 +199,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is REAL between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -303,20 +303,6 @@ | |||
| *> Not referenced if PIVTNG = 'N'. Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is REAL | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] KL | |||
| *> \verbatim | |||
| *> KL is INTEGER | |||
| @@ -337,6 +323,20 @@ | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is REAL | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] ANORM | |||
| *> \verbatim | |||
| *> ANORM is REAL | |||
| @@ -398,7 +398,7 @@ | |||
| *> If PACK='C' or 'R', LDA must be at least 1. | |||
| *> If PACK='B', or 'Q', LDA must be MIN ( KU+1, N ) | |||
| *> If PACK='Z', LDA must be at least KUU+KLL+1, where | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, N-1 ) | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, M-1 ) | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| @@ -164,7 +164,7 @@ | |||
| INTEGER NMAX_EXACT, NMAX_APPROX, SIZE_D | |||
| PARAMETER (NMAX_EXACT = 6, NMAX_APPROX = 11, SIZE_D = 8) | |||
| * | |||
| * d's are generated from random permuation of those eight elements. | |||
| * d's are generated from random permutation of those eight elements. | |||
| COMPLEX*16 d1(8), d2(8), invd1(8), invd2(8) | |||
| DATA D1 /(-1,0),(0,1),(-1,-1),(0,-1),(1,0),(-1,1),(1,1),(1,-1)/ | |||
| DATA D2 /(-1,0),(0,-1),(-1,1),(0,1),(1,0),(-1,-1),(1,-1),(1,1)/ | |||
| @@ -185,7 +185,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -202,7 +202,7 @@ | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION between 0. and 1. | |||
| *> On entry specifies the sparsity of the matrix | |||
| *> if sparse matix is to be generated. | |||
| *> if sparse matrix is to be generated. | |||
| *> SPARSE should lie between 0 and 1. | |||
| *> A uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| @@ -316,20 +316,6 @@ | |||
| *> Not referenced if PIVTNG = 'N'. Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] KL | |||
| *> \verbatim | |||
| *> KL is INTEGER | |||
| @@ -350,6 +336,20 @@ | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] SPARSE | |||
| *> \verbatim | |||
| *> SPARSE is DOUBLE PRECISION | |||
| *> On entry specifies the sparsity of the matrix if a sparse | |||
| *> matrix is to be generated. SPARSE should lie between | |||
| *> 0 and 1. To generate a sparse matrix, for each matrix entry | |||
| *> a uniform ( 0, 1 ) random number x is generated and | |||
| *> compared to SPARSE; if x is larger the matrix entry | |||
| *> is unchanged and if x is smaller the entry is set | |||
| *> to zero. Thus on the average a fraction SPARSE of the | |||
| *> entries will be set to zero. | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||
| *> \param[in] ANORM | |||
| *> \verbatim | |||
| *> ANORM is DOUBLE PRECISION | |||
| @@ -416,7 +416,7 @@ | |||
| *> If PACK='C' or 'R', LDA must be at least 1. | |||
| *> If PACK='B', or 'Q', LDA must be MIN ( KU+1, N ) | |||
| *> If PACK='Z', LDA must be at least KUU+KLL+1, where | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, N-1 ) | |||
| *> KUU = MIN ( KU, N-1 ) and KLL = MIN ( KL, M-1 ) | |||
| *> Not modified. | |||
| *> \endverbatim | |||
| *> | |||