From db65b3102e28c82bcda7aea15abf816696245e24 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 15 May 2024 15:37:42 +0200 Subject: [PATCH 01/28] initial skeleton with tests ran --- SRC/dlarf1.f | 231 +++++++++++++++++++++++++++ SRC/la_constants.mod | Bin 0 -> 1563 bytes SRC/la_xisnan.mod | Bin 0 -> 321 bytes testOutput | 368 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 599 insertions(+) create mode 100644 SRC/dlarf1.f create mode 100644 SRC/la_constants.mod create mode 100644 SRC/la_xisnan.mod create mode 100644 testOutput diff --git a/SRC/dlarf1.f b/SRC/dlarf1.f new file mode 100644 index 0000000000..071e72c817 --- /dev/null +++ b/SRC/dlarf1.f @@ -0,0 +1,231 @@ +*> \brief \b DLARF applies an elementary reflector to a general rectangular matrix. +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLARF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* .. Scalar Arguments .. +* CHARACTER SIDE +* INTEGER INCV, LDC, M, N +* DOUBLE PRECISION TAU +* .. +* .. Array Arguments .. +* DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLARF applies a real elementary reflector H to a real m by n matrix +*> C, from either the left or the right. H is represented in the form +*> +*> H = I - tau * v * v**T +*> +*> where tau is a real scalar and v is a real vector. +*> +*> If tau = 0, then H is taken to be the unit matrix. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] SIDE +*> \verbatim +*> SIDE is CHARACTER*1 +*> = 'L': form H * C +*> = 'R': form C * H +*> \endverbatim +*> +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix C. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix C. +*> \endverbatim +*> +*> \param[in] V +*> \verbatim +*> V is DOUBLE PRECISION array, dimension +*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' +*> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' +*> The vector v in the representation of H. V is not used if +*> TAU = 0. +*> \endverbatim +*> +*> \param[in] INCV +*> \verbatim +*> INCV is INTEGER +*> The increment between elements of v. INCV <> 0. +*> \endverbatim +*> +*> \param[in] TAU +*> \verbatim +*> TAU is DOUBLE PRECISION +*> The value tau in the representation of H. +*> \endverbatim +*> +*> \param[in,out] C +*> \verbatim +*> C is DOUBLE PRECISION array, dimension (LDC,N) +*> On entry, the m by n matrix C. +*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', +*> or C * H if SIDE = 'R'. +*> \endverbatim +*> +*> \param[in] LDC +*> \verbatim +*> LDC is INTEGER +*> The leading dimension of the array C. LDC >= max(1,M). +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is DOUBLE PRECISION array, dimension +*> (N) if SIDE = 'L' +*> or (M) if SIDE = 'R' +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup larf +* +* ===================================================================== + SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* -- LAPACK auxiliary routine -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* +* .. Scalar Arguments .. + CHARACTER SIDE + INTEGER INCV, LDC, M, N + DOUBLE PRECISION TAU +* .. +* .. Array Arguments .. + DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) +* .. +* +* ===================================================================== +* +* .. Parameters .. + DOUBLE PRECISION ONE, ZERO + PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) + INTEGER IONE + PARAMETER ( IONE = 1 ) +* .. +* .. Local Scalars .. + LOGICAL APPLYLEFT + INTEGER I, LASTV, LASTC +* .. +* .. External Subroutines .. + EXTERNAL DGEMV, DGER +* .. +* .. External Functions .. + LOGICAL LSAME + INTEGER ILADLR, ILADLC + EXTERNAL LSAME, ILADLR, ILADLC +* .. +* .. Executable Statements .. +* + APPLYLEFT = LSAME( SIDE, 'L' ) + LASTV = 0 + LASTC = 0 + IF( TAU.NE.ZERO ) THEN +! Set up variables for scanning V. LASTV begins pointing to the end +! of V. + IF( APPLYLEFT ) THEN + LASTV = M + ELSE + LASTV = N + END IF + IF( INCV.GT.0 ) THEN + I = 1 + (LASTV-1) * INCV + ELSE + I = 1 + END IF +! Look for the last non-zero row in V. + DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) + LASTV = LASTV - 1 + I = I - INCV + END DO + IF( APPLYLEFT ) THEN +! Scan for the last non-zero column in C(1:lastv,:). + LASTC = ILADLC(LASTV, N, C, LDC) + ELSE +! Scan for the last non-zero row in C(:,1:lastv). + LASTC = ILADLR(M, LASTV, C, LDC) + END IF + END IF +! Note that lastc.eq.0 renders the BLAS operations null; no special +! case is needed at this level. + IF( APPLYLEFT ) THEN +* +* Form H * C +* + IF( LASTV.GT.0 ) THEN +* +* w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) +* + CALL DGEMV( 'Transpose', LASTV, LASTC, ONE, C(2,1), LDC, + $ V(INCV), INCV, ZERO, WORK, 1 ) +* +* w(1:lastc,1) := w(1:lastc,1) + C(1,1:lastc)**T * v(1,1) +* = w(1:lastc,1) + C(1,1:lastc)**T +* + CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) +* +* C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)**T +* + CALL DGER( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) + END IF + ELSE +* +* Form C * H +* + IF( LASTV.GT.0 ) THEN +* +* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) +* + CALL DGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, + $ V, INCV, ZERO, WORK, 1 ) +* +* C(1:lastc,1:lastv) := C(...) - w(1:lastc,1) * v(1:lastv,1)**T +* + CALL DGER( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) + END IF + END IF + RETURN +* +* End of DLARF +* + END diff --git a/SRC/la_constants.mod b/SRC/la_constants.mod new file mode 100644 index 0000000000000000000000000000000000000000..b8006a566979124de13911e5efcec9baedca2f6f GIT binary patch literal 1563 zcmV+$2ITo4iwFP!000001La%abD~HPe&?^4H_U@u12dq$t!3Cf>k>>Eb9Z|$78@{2 zoxvQC+b#e4>lqk8;-Hp5q>}7bXyr$L-80kQbT?nW%;t;v*hbGA_jT=||GY5rHvv*L zLq(6F=fs|iR^jFut)1oLCWvAuh@(%d5mtJ=D^$lnMI2lyaJc8cj?^W4Hs}^FeYy;( ziqxJT#GxNV{^J!$D$-D|cQ>C+tm}ulg&yqR?b)Ape`+r*d!Y!Coglu;{$lw3@?cLE z)0vH|8|xOX7~h~fxQ{ZP&&S`EvxkK>UtU{xmVIs6lW&Q>a|_O*{Bn%A01&v40Mc`i zSix5cDZ?0E4ve831}VXyNPYDDwI4j4s6K)}^QnD5op1n3C4gfMuk6v77Bohnu>l(Y zaMml(usDcwg~#*ptp!giD_pd9rtb9i?q)ifF8cT5KP>(L{;bIiKDYkL2857{swtD1 zeZLsPoe!L@;!i`&e?DWCNjR6-JmJW8L7D(^6L_7%sHLd1BQXvD<4fqR{9nz&{0;6h zVK>o)=GiB`UXD*;_x=hWirFLN6rjd|6l_y4P4N**`4P!A8d4|x4rq@lhG2@V7j8P` zZ+zmI9wF8J?mq>u&yB*YUI7dKmYoP-C@%hd)+v#?PJ;_v&wu(6Up%VeE-FoqNn@B^ zqOKw8YZZP1-r=q`ui?dmqDQ+4IEdSLC~Uw_SPlvJi0eQ39K=P^5v|NeG$15y)3Le^ zCum2HD_|e)OQU#1Y!$&}H`cz1Mb)RPLphWIgYuC`#stevKvn9in!_rb%9dK6(R$n&^IWER7B4D?jL!}Wa zN5u$6^t|pMW$)`$zGmo*Wkdk%;!%|sLQ*jV84rm&I0UO!cb!p@*t`72!a0^)>5P%Y zKSJ;F2_rcg6Jr)}2j>%n;DH-VZZqzflnAIlD60>#7j{!!QGZxgAA)S?xc7kM5F=^N#S(BJpxXj$k%X#(S&wNC3SHgOB+g)D zp`Fr5UF3Qs2gB$>J0+32sE?d57>qEqQVKZ}i*u0187$tnR0BB^3^@qKWL%(~;zwQc zUz5*&lW~DoiXJtAsc;PA0j*R!>hep4TNnvwr^<0An8W1_69~YzwGMu zL%h&}ky&`}1EWFq>H|i@!W#k@jk3miFnQ8u&l06@tYxj-Am~{WGzdiW;=-|!bg{yb znKyy5TMhC)NRWnk{~$=CLfaiiSr=aNZPLBQ`6NzTzEb87-;u1R2n3q-;(%a?9u_z@ z^X?Cj28!sL0AVQF4d8er3iTNAqP?&Xt9I`WAo$Es^87wVJl&t>$3fCXf*FoUmY@ZJ zW*JTpj5I|E=Hcl={^TUvmU)V2tTMZa6i8wjosSB) literal 0 HcmV?d00001 diff --git a/SRC/la_xisnan.mod b/SRC/la_xisnan.mod new file mode 100644 index 0000000000000000000000000000000000000000..1b5610476a459fda31282807dce61ffd51c6d396 GIT binary patch literal 321 zcmV-H0lxkpiwFP!000001I3fcYQr!PhVOccxye4HC|(lx=z0mJwp4`O(o-?D3xUK2 zyDfSAYKfPmY3U(QB!Ncr!+iQR+Qf|K+^4W_tB+j`pLN%7+XnE`#qiqI<$GPhTi5Pk zSH2v!eN#3!@hw4yVZt>g8a5^pTd@o*3aL66@K_Ur1@@>JmIb)FAjKG#U>Faa1yNY= z2nu>n*%MtPG>>Qw84HUvTF5+vQIMiz9*7umL4!PDRAZ%VlLUSWj>-`jV!^A<3|Hx_ z=`uoPqSYzScQ%c14mO06Y=oM@X{I@?978ObWUL(}lf??j2HgLjS8K`RDV=@hl?(Ww zIK*@W%A?N{|L%8l;DR|QEVArbqwq-7^^P1W_{kj2;LRA;*JN=1&LA6lY-b``YW_?F TR@3_t@fFY)*n0O@xdQ+IFY=W< literal 0 HcmV?d00001 diff --git a/testOutput b/testOutput new file mode 100644 index 0000000000..ed9c630306 --- /dev/null +++ b/testOutput @@ -0,0 +1,368 @@ +make -C INSTALL run +make -C SRC +make -C TESTING/MATGEN +make -C BLAS +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/INSTALL' +gfortran -O2 -frecursive -o testlsame lsame.o lsametst.o +gfortran -O2 -frecursive -o testslamch slamch.o lsame.o slamchtst.o +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' +make -C SRC +gfortran -O2 -frecursive -o testdlamch dlamch.o lsame.o dlamchtst.o +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' +make[1]: Nothing to be done for 'all'. +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' +[INFO] : TIMER value: INT_ETIME (given by make.inc) +[INFO] : TIMER value: INT_ETIME (given by make.inc) +gfortran -O2 -frecursive -o testsecond second_INT_ETIME.o secondtst.o +gfortran -O2 -frecursive -o testdsecnd dsecnd_INT_ETIME.o dsecndtst.o +gfortran -O2 -frecursive -o testieee tstiee.o ../SRC/ieeeck.o ../SRC/ilaenv.o ../SRC/iparmq.o +gfortran -O2 -frecursive -o testversion ilaver.o LAPACK_version.o +gfortran -O2 -frecursive -o test_zcomplexabs test_zcomplexabs.o +gfortran -O2 -frecursive -o test_zcomplexdiv test_zcomplexdiv.o +gfortran -O2 -frecursive -o test_zcomplexmult test_zcomplexmult.o +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' +make[2]: Nothing to be done for 'all'. +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' +make -C BLAS blas_testing +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' +make -C SRC +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' +make[2]: Nothing to be done for 'all'. +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' +make -C TESTING run +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/TESTING' +./xblat1s > sblat1.out +./xblat1d > dblat1.out +./xblat1c > cblat1.out +./xblat1z > zblat1.out +./xblat2s < sblat2.in +./xblat2d < dblat2.in +gfortran -O2 -frecursive -o test_zminMax test_zminMax.o +./xblat2c < cblat2.in +./xblat2z < zblat2.in +./xblat3s < sblat3.in +./testlsame + ASCII character set + Tests completed +./testslamch + Epsilon = 5.96046448E-08 + Safe minimum = 1.17549435E-38 + Base = 2.00000000 + Precision = 1.19209290E-07 + Number of digits in mantissa = 24.0000000 + Rounding mode = 1.00000000 + Minimum exponent = -125.000000 + Underflow threshold = 1.17549435E-38 + Largest exponent = 128.000000 + Overflow threshold = 3.40282347E+38 + Reciprocal of safe minimum = 8.50705917E+37 +./testdlamch +./xblat3d < dblat3.in + Epsilon = 1.1102230246251565E-016 + Safe minimum = 2.2250738585072014E-308 + Base = 2.0000000000000000 + Precision = 2.2204460492503131E-016 + Number of digits in mantissa = 53.000000000000000 + Rounding mode = 1.0000000000000000 + Minimum exponent = -1021.0000000000000 + Underflow threshold = 2.2250738585072014E-308 + Largest exponent = 1024.0000000000000 + Overflow threshold = 1.7976931348623157E+308 + Reciprocal of safe minimum = 4.4942328371557898E+307 +./testsecond +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' +make -C TESTING/LIN cleanexe +./xblat3c < cblat3.in +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +rm -f xlintst* +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +make -C TESTING +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING' +make -C LIN xlintsts +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintsts aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o schkaa.o schkeq.o schkgb.o schkge.o schkgt.o schklq.o schkpb.o schkpo.o schkps.o schkpp.o schkpt.o schkq3.o schkqp3rk.o schkql.o schkqr.o schkrq.o schksp.o schksy.o schksy_rook.o schksy_rk.o schksy_aa.o schksy_aa_2stage.o schktb.o schktp.o schktr.o schktz.o sdrvgt.o sdrvls.o sdrvpb.o sdrvpp.o sdrvpt.o sdrvsp.o sdrvsy_rook.o sdrvsy_rk.o sdrvsy_aa.o sdrvsy_aa_2stage.o serrgt.o serrlq.o serrls.o serrps.o serrql.o serrqp.o serrqr.o serrrq.o serrtr.o serrtz.o sgbt01.o sgbt02.o sgbt05.o sgeqls.o sgerqs.o sget01.o sget02.o sget03.o sget04.o sget06.o sget07.o sgtt01.o sgtt02.o sgtt05.o slaptm.o slarhs.o slatb4.o slatb5.o slattb.o slattp.o slattr.o slavsp.o slavsy.o slavsy_rook.o slqt01.o slqt02.o slqt03.o spbt01.o spbt02.o spbt05.o spot01.o spot02.o spot03.o spot05.o spst01.o sppt01.o sppt02.o sppt03.o sppt05.o sptt01.o sptt02.o sptt05.o sqlt01.o sqlt02.o sqlt03.o sqpt01.o sqrt01.o sqrt01p.o sqrt02.o sqrt03.o sqrt11.o sqrt12.o sqrt13.o sqrt14.o sqrt15.o sqrt16.o sqrt17.o srqt01.o srqt02.o srqt03.o srzt01.o srzt02.o sspt01.o ssyt01.o ssyt01_rook.o ssyt01_3.o ssyt01_aa.o stbt02.o stbt03.o stbt05.o stbt06.o stpt01.o stpt02.o stpt03.o stpt05.o stpt06.o strt01.o strt02.o strt03.o strt05.o strt06.o sgennd.o sqrt04.o sqrt05.o schkqrt.o serrqrt.o schkqrtp.o serrqrtp.o schklqt.o schklqtp.o schktsqr.o serrlqt.o serrlqtp.o serrtsqr.o stsqr01.o slqt04.o slqt05.o schkorhr_col.o serrorhr_col.o sorhr_col01.o sorhr_col02.o sdrvgb.o sdrvge.o sdrvsy.o sdrvpo.o serrvx.o serrge.o serrsy.o serrpo.o slaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a + Time for 0.100E+09 SAXPY ops = 0.00 seconds + *** Warning: Time for operations was less or equal than zero => timing in TESTING might be dubious + Including SECOND, time = 0.333E-02 seconds + Average time for SECOND = 0.665E-04 milliseconds +./testdsecnd +./xblat3z < zblat3.in +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/TESTING' +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' + Time for 0.100E+09 DAXPY ops = 0.100E-05 seconds + DAXPY performance rate = 0.100E+09 mflops + Including DSECND, time = 0.295E-02 seconds + Average time for DSECND = 0.590E-04 milliseconds + Equivalent floating point ops = 0.590E+07 ops +./testieee + We are about to check whether infinity arithmetic + can be trusted. If this test hangs, set + ILAENV = 0 for ISPEC = 11 in LAPACK/SRC/ilaenv.f + + Infinity arithmetic performed as per the ieee spec. + However, this is not an exhaustive test and does not + guarantee that infinity arithmetic meets the ieee spec. + + We are about to check whether NaN arithmetic + can be trusted. If this test hangs, set + ILAENV = 0 for ISPEC = 10 in LAPACK/SRC/ilaenv.f + + NaN arithmetic performed as per the ieee spec. + However, this is not an exhaustive test and does not + guarantee that NaN arithmetic meets the ieee spec. + +./testversion + LAPACK 3 . 12 . 0 +./test_zcomplexabs 2> test_zcomplexabs.err + # All tests pass for ABS(a+b*I) +./test_zcomplexdiv 2> test_zcomplexdiv.err + !! Some (x+x*I)/(x+x*I) differ from 1 + !! Some (x+x*I)/(x-x*I) differ from I + # 12602 tests out of 12606 pass for complex division, 4 fail. + # Please check the failed divisions in [stderr] +./test_zcomplexmult 2> test_zcomplexmult.err + # All tests pass for complex multiplication. +./test_zminMax 2> test_zminMax.err +[i8] MIN( NaN, 0.) = 0. +[i8] MAX( NaN, 0.) = 0. + # 14 tests out of 16 pass for intrinsic MIN and MAX, 2 fail. +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/INSTALL' +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing REAL LAPACK linear equation routines +./LIN/xlintsts < stest.in > stest.out 2>&1 +make -C LIN xlintstc +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstc aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o cchkaa.o cchkeq.o cchkgb.o cchkge.o cchkgt.o cchkhe.o cchkhe_rook.o cchkhe_rk.o cchkhe_aa.o cchkhe_aa_2stage.o cchkhp.o cchklq.o cchkpb.o cchkpo.o cchkps.o cchkpp.o cchkpt.o cchkq3.o cchkqp3rk.o cchkql.o cchkqr.o cchkrq.o cchksp.o cchksy.o cchksy_rook.o cchksy_rk.o cchksy_aa.o cchksy_aa_2stage.o cchktb.o cchktp.o cchktr.o cchktz.o cdrvgt.o cdrvhe_rook.o cdrvhe_rk.o cdrvhe_aa.o cdrvhp.o cdrvhe_aa_2stage.o cdrvls.o cdrvpb.o cdrvpp.o cdrvpt.o cdrvsp.o cdrvsy_rook.o cdrvsy_rk.o cdrvsy_aa.o cdrvsy_aa_2stage.o cerrgt.o cerrlq.o cerrls.o cerrps.o cerrql.o cerrqp.o cerrqr.o cerrrq.o cerrtr.o cerrtz.o cgbt01.o cgbt02.o cgbt05.o cgeqls.o cgerqs.o cget01.o cget02.o cget03.o cget04.o cget07.o cgtt01.o cgtt02.o cgtt05.o chet01.o chet01_rook.o chet01_3.o chet01_aa.o chpt01.o claipd.o claptm.o clarhs.o clatb4.o clatb5.o clatsp.o clatsy.o clattb.o clattp.o clattr.o clavhe.o clavhe_rook.o clavhp.o clavsp.o clavsy.o clavsy_rook.o clqt01.o clqt02.o clqt03.o cpbt01.o cpbt02.o cpbt05.o cpot01.o cpot02.o cpot03.o cpot05.o cpst01.o cppt01.o cppt02.o cppt03.o cppt05.o cptt01.o cptt02.o cptt05.o cqlt01.o cqlt02.o cqlt03.o cqpt01.o cqrt01.o cqrt01p.o cqrt02.o cqrt03.o cqrt11.o cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o csbmv.o cspt01.o cspt02.o cspt03.o csyt01.o csyt01_rook.o csyt01_3.o csyt01_aa.o csyt02.o csyt03.o ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o ctrt02.o ctrt03.o ctrt05.o ctrt06.o sget06.o cgennd.o cqrt04.o cqrt05.o cchkqrt.o cerrqrt.o cchkqrtp.o cerrqrtp.o cchklqt.o cchklqtp.o cchktsqr.o cerrlqt.o cerrlqtp.o cerrtsqr.o ctsqr01.o clqt04.o clqt05.o cchkunhr_col.o cerrunhr_col.o cunhr_col01.o cunhr_col02.o cdrvgb.o cdrvge.o cdrvhe.o cdrvsy.o cdrvpo.o cerrvx.o cerrge.o cerrhe.o cerrsy.o cerrpo.o slaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing COMPLEX LAPACK linear equation routines +./LIN/xlintstc < ctest.in > ctest.out 2>&1 +make -C LIN xlintstd +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstd aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o dchkaa.o dchkeq.o dchkgb.o dchkge.o dchkgt.o dchklq.o dchkpb.o dchkpo.o dchkps.o dchkpp.o dchkpt.o dchkq3.o dchkqp3rk.o dchkql.o dchkqr.o dchkrq.o dchksp.o dchksy.o dchksy_rook.o dchksy_rk.o dchksy_aa.o dchksy_aa_2stage.o dchktb.o dchktp.o dchktr.o dchktz.o ddrvgt.o ddrvls.o ddrvpb.o ddrvpp.o ddrvpt.o ddrvsp.o ddrvsy_rook.o ddrvsy_rk.o ddrvsy_aa.o ddrvsy_aa_2stage.o derrgt.o derrlq.o derrls.o derrps.o derrql.o derrqp.o derrqr.o derrrq.o derrtr.o derrtz.o dgbt01.o dgbt02.o dgbt05.o dgeqls.o dgerqs.o dget01.o dget02.o dget03.o dget04.o dget06.o dget07.o dgtt01.o dgtt02.o dgtt05.o dlaptm.o dlarhs.o dlatb4.o dlatb5.o dlattb.o dlattp.o dlattr.o dlavsp.o dlavsy.o dlavsy_rook.o dlqt01.o dlqt02.o dlqt03.o dpbt01.o dpbt02.o dpbt05.o dpot01.o dpot02.o dpot03.o dpot05.o dpst01.o dppt01.o dppt02.o dppt03.o dppt05.o dptt01.o dptt02.o dptt05.o dqlt01.o dqlt02.o dqlt03.o dqpt01.o dqrt01.o dqrt01p.o dqrt02.o dqrt03.o dqrt11.o dqrt12.o dqrt13.o dqrt14.o dqrt15.o dqrt16.o dqrt17.o drqt01.o drqt02.o drqt03.o drzt01.o drzt02.o dspt01.o dsyt01.o dsyt01_rook.o dsyt01_3.o dsyt01_aa.o dtbt02.o dtbt03.o dtbt05.o dtbt06.o dtpt01.o dtpt02.o dtpt03.o dtpt05.o dtpt06.o dtrt01.o dtrt02.o dtrt03.o dtrt05.o dtrt06.o dgennd.o dqrt04.o dqrt05.o dchkqrt.o derrqrt.o dchkqrtp.o derrqrtp.o dchklqt.o dchklqtp.o dchktsqr.o derrlqt.o derrlqtp.o derrtsqr.o dtsqr01.o dlqt04.o dlqt05.o dchkorhr_col.o derrorhr_col.o dorhr_col01.o dorhr_col02.o ddrvgb.o ddrvge.o ddrvsy.o ddrvpo.o derrvx.o derrge.o derrsy.o derrpo.o dlaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing DOUBLE PRECISION LAPACK linear equation routines +./LIN/xlintstd < dtest.in > dtest.out 2>&1 +make -C LIN xlintstz +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstz aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o zchkaa.o zchkeq.o zchkgb.o zchkge.o zchkgt.o zchkhe.o zchkhe_rook.o zchkhe_rk.o zchkhe_aa.o zchkhe_aa_2stage.o zchkhp.o zchklq.o zchkpb.o zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkqp3rk.o zchkql.o zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchksy_rk.o zchksy_aa.o zchksy_aa_2stage.o zchktb.o zchktp.o zchktr.o zchktz.o zdrvgt.o zdrvhe_rook.o zdrvhe_rk.o zdrvhe_aa.o zdrvhe_aa_2stage.o zdrvhp.o zdrvls.o zdrvpb.o zdrvpp.o zdrvpt.o zdrvsp.o zdrvsy_rook.o zdrvsy_rk.o zdrvsy_aa.o zdrvsy_aa_2stage.o zerrgt.o zerrlq.o zerrls.o zerrps.o zerrql.o zerrqp.o zerrqr.o zerrrq.o zerrtr.o zerrtz.o zgbt01.o zgbt02.o zgbt05.o zgeqls.o zgerqs.o zget01.o zget02.o zget03.o zget04.o zget07.o zgtt01.o zgtt02.o zgtt05.o zhet01.o zhet01_rook.o zhet01_3.o zhet01_aa.o zhpt01.o zlaipd.o zlaptm.o zlarhs.o zlatb4.o zlatb5.o zlatsp.o zlatsy.o zlattb.o zlattp.o zlattr.o zlavhe.o zlavhe_rook.o zlavhp.o zlavsp.o zlavsy.o zlavsy_rook.o zlqt01.o zlqt02.o zlqt03.o zpbt01.o zpbt02.o zpbt05.o zpot01.o zpot02.o zpot03.o zpot05.o zpst01.o zppt01.o zppt02.o zppt03.o zppt05.o zptt01.o zptt02.o zptt05.o zqlt01.o zqlt02.o zqlt03.o zqpt01.o zqrt01.o zqrt01p.o zqrt02.o zqrt03.o zqrt11.o zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o zsbmv.o zspt01.o zspt02.o zspt03.o zsyt01.o zsyt01_rook.o zsyt01_3.o zsyt01_aa.o zsyt02.o zsyt03.o ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o ztrt02.o ztrt03.o ztrt05.o ztrt06.o dget06.o zgennd.o zqrt04.o zqrt05.o zchkqrt.o zerrqrt.o zchkqrtp.o zerrqrtp.o zchklqt.o zchklqtp.o zchktsqr.o zerrlqt.o zerrlqtp.o zerrtsqr.o ztsqr01.o zlqt04.o zlqt05.o zchkunhr_col.o zerrunhr_col.o zunhr_col01.o zunhr_col02.o zdrvgb.o zdrvge.o zdrvhe.o zdrvsy.o zdrvpo.o zerrvx.o zerrge.o zerrhe.o zerrsy.o zerrpo.o dlaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing COMPLEX16 LAPACK linear equation routines +./LIN/xlintstz < ztest.in > ztest.out 2>&1 +make -C LIN xlintstrfs +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstrfs schkrfp.o sdrvrfp.o sdrvrf1.o sdrvrf2.o sdrvrf3.o sdrvrf4.o serrrfp.o slatb4.o slarhs.o sget04.o spot01.o spot03.o spot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing REAL LAPACK RFP prototype linear equation routines +./LIN/xlintstrfs < stest_rfp.in > stest_rfp.out 2>&1 +make -C LIN xlintstds +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstds dchkab.o ddrvab.o ddrvac.o derrab.o derrac.o dget08.o alaerh.o alahd.o aladhd.o alareq.o chkxer.o dlarhs.o dlatb4.o xerbla.o dget02.o dpot06.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing SINGLE-DOUBLE PRECISION LAPACK prototype linear equation routines +./LIN/xlintstds < dstest.in > dstest.out 2>&1 +make -C LIN xlintstrfd +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstrfd dchkrfp.o ddrvrfp.o ddrvrf1.o ddrvrf2.o ddrvrf3.o ddrvrf4.o derrrfp.o dlatb4.o dlarhs.o dget04.o dpot01.o dpot03.o dpot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing DOUBLE PRECISION LAPACK RFP prototype linear equation routines +./LIN/xlintstrfd < dtest_rfp.in > dtest_rfp.out 2>&1 +make -C LIN xlintstrfc +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstrfc cchkrfp.o cdrvrfp.o cdrvrf1.o cdrvrf2.o cdrvrf3.o cdrvrf4.o cerrrfp.o claipd.o clatb4.o clarhs.o csbmv.o cget04.o cpot01.o cpot03.o cpot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing COMPLEX LAPACK RFP prototype linear equation routines +./LIN/xlintstrfc < ctest_rfp.in > ctest_rfp.out 2>&1 +make -C LIN xlintstzc +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstzc zchkab.o zdrvab.o zdrvac.o zerrab.o zerrac.o zget08.o alaerh.o alahd.o aladhd.o alareq.o chkxer.o zget02.o zlarhs.o zlatb4.o zsbmv.o xerbla.o zpot06.o zlaipd.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing COMPLEX-COMPLEX16 LAPACK prototype linear equation routines +./LIN/xlintstzc < zctest.in > zctest.out 2>&1 +make -C LIN xlintstrfz +make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +gfortran -O2 -frecursive -o xlintstrfz zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp.o zlatb4.o zlaipd.o zlarhs.o zsbmv.o zget04.o zpot01.o zpot03.o zpot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a +make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' +Testing COMPLEX16 LAPACK RFP prototype linear equation routines +./LIN/xlintstrfz < ztest_rfp.in > ztest_rfp.out 2>&1 +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING' +./lapack_testing.py + +---------------- Testing LAPACK Routines ---------------- + +-- Detailed results are stored in testing_results.txt + +------------------------- REAL ------------------------ + +Testing REAL Nonsymmetric-Eigenvalue-Problem-snep.out passed: 10080 + +Testing REAL Symmetric-Eigenvalue-Problem-ssep.out passed: 89520 + +Testing REAL Symmetric-Eigenvalue-Problem-2-stage-sse2.out passed: 89520 + +Testing REAL Singular-Value-Decomposition-ssvd.out passed: 125400 + +Testing REAL Eigen-Condition-sec.out passed: 501251 + +Testing REAL Nonsymmetric-Eigenvalue-sed.out passed: 14704 + +Testing REAL Nonsymmetric-Generalized-Eigenvalue-Problem-sgg.out passed: 8736 + +Testing REAL Nonsymmetric-Generalized-Eigenvalue-Problem-driver-sgd.out passed: 10482 + +Testing REAL Symmetric-Eigenvalue-Problem-ssb.out passed: 810 + +Testing REAL Symmetric-Eigenvalue-Generalized-Problem-ssg.out passed: 33516 + +Testing REAL Banded-Singular-Value-Decomposition-routines-sbb.out passed: 6000 + +Testing REAL Generalized-Linear-Regression-Model-routines-sglm.out passed: 48 + +Testing REAL Generalized-QR-and-RQ-factorization-routines-sgqr.out passed: 1728 + +Testing REAL Generalized-Singular-Value-Decomposition-routines-sgsv.out passed: 384 + +Testing REAL CS-Decomposition-routines-scsd.out passed: 600 + +Testing REAL Constrained-Linear-Least-Squares-routines-slse.out passed: 96 + +Testing REAL Linear-Equation-routines-stest.out passed: 663645 + +Testing REAL RFP-linear-equation-routines-stest_rfp.out passed: 13128 + + +------------------------- DOUBLE PRECISION ------------------------ + +Testing DOUBLE PRECISION Nonsymmetric-Eigenvalue-Problem-dnep.out passed: 10080 + +Testing DOUBLE PRECISION Symmetric-Eigenvalue-Problem-dsep.out passed: 89520 + +Testing DOUBLE PRECISION Symmetric-Eigenvalue-Problem-2-stage-dse2.out passed: 89520 + +Testing DOUBLE PRECISION Singular-Value-Decomposition-dsvd.out passed: 125400 + +Testing DOUBLE PRECISION Eigen-Condition-dec.out passed: 501261 + +Testing DOUBLE PRECISION Nonsymmetric-Eigenvalue-ded.out passed: 14704 + +Testing DOUBLE PRECISION Nonsymmetric-Generalized-Eigenvalue-Problem-dgg.out passed: 8736 + +Testing DOUBLE PRECISION Nonsymmetric-Generalized-Eigenvalue-Problem-driver-dgd.out passed: 10482 + +Testing DOUBLE PRECISION Symmetric-Eigenvalue-Problem-dsb.out passed: 810 + +Testing DOUBLE PRECISION Symmetric-Eigenvalue-Generalized-Problem-dsg.out passed: 33516 + +Testing DOUBLE PRECISION Banded-Singular-Value-Decomposition-routines-dbb.out passed: 6000 + +Testing DOUBLE PRECISION Generalized-Linear-Regression-Model-routines-dglm.out passed: 48 + +Testing DOUBLE PRECISION Generalized-QR-and-RQ-factorization-routines-dgqr.out passed: 1728 + +Testing DOUBLE PRECISION Generalized-Singular-Value-Decomposition-routines-dgsv.out passed: 384 + +Testing DOUBLE PRECISION CS-Decomposition-routines-dcsd.out passed: 600 + +Testing DOUBLE PRECISION Constrained-Linear-Least-Squares-routines-dlse.out passed: 96 + +Testing DOUBLE PRECISION Linear-Equation-routines-dtest.out DQK: 36885 out of 241365 tests failed to pass the threshold + passed: 422280 +failing to pass the threshold: 36885 + +Testing DOUBLE PRECISION Mixed-Precision-linear-equation-routines-dstest.out passed: 812 + +Testing DOUBLE PRECISION RFP-linear-equation-routines-dtest_rfp.out passed: 13128 + + +------------------------- COMPLEX ------------------------ + +Testing COMPLEX Nonsymmetric-Eigenvalue-Problem-cnep.out passed: 10080 + +Testing COMPLEX Symmetric-Eigenvalue-Problem-csep.out passed: 77280 + +Testing COMPLEX Symmetric-Eigenvalue-Problem-2-stage-cse2.out passed: 77280 + +Testing COMPLEX Singular-Value-Decomposition-csvd.out passed: 92125 + +Testing COMPLEX Eigen-Condition-cec.out passed: 5966 + +Testing COMPLEX Nonsymmetric-Eigenvalue-ced.out passed: 14080 + +Testing COMPLEX Nonsymmetric-Generalized-Eigenvalue-Problem-cgg.out passed: 8736 + +Testing COMPLEX Nonsymmetric-Generalized-Eigenvalue-Problem-driver-cgd.out passed: 10482 + +Testing COMPLEX Symmetric-Eigenvalue-Problem-csb.out passed: 810 + +Testing COMPLEX Symmetric-Eigenvalue-Generalized-Problem-csg.out passed: 33516 + +Testing COMPLEX Banded-Singular-Value-Decomposition-routines-cbb.out passed: 6000 + +Testing COMPLEX Generalized-Linear-Regression-Model-routines-cglm.out passed: 48 + +Testing COMPLEX Generalized-QR-and-RQ-factorization-routines-cgqr.out passed: 1728 + +Testing COMPLEX Generalized-Singular-Value-Decomposition-routines-cgsv.out passed: 385 + +Testing COMPLEX CS-Decomposition-routines-ccsd.out passed: 600 + +Testing COMPLEX Constrained-Linear-Least-Squares-routines-clse.out passed: 96 + +Testing COMPLEX Linear-Equation-routines-ctest.out passed: 677390 + +Testing COMPLEX RFP-linear-equation-routines-ctest_rfp.out passed: 13128 + + +------------------------- COMPLEX16 ------------------------ + +Testing COMPLEX16 Nonsymmetric-Eigenvalue-Problem-znep.out passed: 10080 + +Testing COMPLEX16 Symmetric-Eigenvalue-Problem-zsep.out passed: 77280 + +Testing COMPLEX16 Symmetric-Eigenvalue-Problem-2-stage-zse2.out passed: 77280 + +Testing COMPLEX16 Singular-Value-Decomposition-zsvd.out passed: 92125 + +Testing COMPLEX16 Eigen-Condition-zec.out passed: 6222 + +Testing COMPLEX16 Nonsymmetric-Eigenvalue-zed.out passed: 14080 + +Testing COMPLEX16 Nonsymmetric-Generalized-Eigenvalue-Problem-zgg.out passed: 8736 + +Testing COMPLEX16 Nonsymmetric-Generalized-Eigenvalue-Problem-driver-zgd.out passed: 10482 + +Testing COMPLEX16 Symmetric-Eigenvalue-Problem-zsb.out passed: 810 + +Testing COMPLEX16 Symmetric-Eigenvalue-Generalized-Problem-zsg.out passed: 33516 + +Testing COMPLEX16 Banded-Singular-Value-Decomposition-routines-zbb.out passed: 6000 + +Testing COMPLEX16 Generalized-Linear-Regression-Model-routines-zglm.out passed: 48 + +Testing COMPLEX16 Generalized-QR-and-RQ-factorization-routines-zgqr.out passed: 1728 + +Testing COMPLEX16 Generalized-Singular-Value-Decomposition-routines-zgsv.out passed: 384 + +Testing COMPLEX16 CS-Decomposition-routines-zcsd.out passed: 600 + +Testing COMPLEX16 Constrained-Linear-Least-Squares-routines-zlse.out passed: 96 + +Testing COMPLEX16 Linear-Equation-routines-ztest.out passed: 677390 + +Testing COMPLEX16 Mixed-Precision-linear-equation-routines-zctest.out passed: 812 + +Testing COMPLEX16 RFP-linear-equation-routines-ztest_rfp.out passed: 13128 + + + --> LAPACK TESTING SUMMARY <-- + Processing LAPACK Testing output found in the TESTING directory +SUMMARY nb test run numerical error other error +================ =========== ================= ================ +REAL 1569648 0 (0.000%) 0 (0.000%) +DOUBLE PRECISION 1329105 36885 (2.775%) 0 (0.000%) +COMPLEX 1029730 0 (0.000%) 0 (0.000%) +COMPLEX16 1030797 0 (0.000%) 0 (0.000%) + +--> ALL PRECISIONS 4959280 36885 (0.744%) 0 (0.000%) + From 2ec963d93daede72abd79c4682b80fe81342e42e Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 15 May 2024 15:37:52 +0200 Subject: [PATCH 02/28] initial skeleton with tests ran --- testOutput | 368 ----------------------------------------------------- 1 file changed, 368 deletions(-) delete mode 100644 testOutput diff --git a/testOutput b/testOutput deleted file mode 100644 index ed9c630306..0000000000 --- a/testOutput +++ /dev/null @@ -1,368 +0,0 @@ -make -C INSTALL run -make -C SRC -make -C TESTING/MATGEN -make -C BLAS -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/INSTALL' -gfortran -O2 -frecursive -o testlsame lsame.o lsametst.o -gfortran -O2 -frecursive -o testslamch slamch.o lsame.o slamchtst.o -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' -make -C SRC -gfortran -O2 -frecursive -o testdlamch dlamch.o lsame.o dlamchtst.o -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' -make[1]: Nothing to be done for 'all'. -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' -[INFO] : TIMER value: INT_ETIME (given by make.inc) -[INFO] : TIMER value: INT_ETIME (given by make.inc) -gfortran -O2 -frecursive -o testsecond second_INT_ETIME.o secondtst.o -gfortran -O2 -frecursive -o testdsecnd dsecnd_INT_ETIME.o dsecndtst.o -gfortran -O2 -frecursive -o testieee tstiee.o ../SRC/ieeeck.o ../SRC/ilaenv.o ../SRC/iparmq.o -gfortran -O2 -frecursive -o testversion ilaver.o LAPACK_version.o -gfortran -O2 -frecursive -o test_zcomplexabs test_zcomplexabs.o -gfortran -O2 -frecursive -o test_zcomplexdiv test_zcomplexdiv.o -gfortran -O2 -frecursive -o test_zcomplexmult test_zcomplexmult.o -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' -make[2]: Nothing to be done for 'all'. -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' -make -C BLAS blas_testing -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' -make -C SRC -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' -make[2]: Nothing to be done for 'all'. -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/SRC' -make -C TESTING run -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/TESTING' -./xblat1s > sblat1.out -./xblat1d > dblat1.out -./xblat1c > cblat1.out -./xblat1z > zblat1.out -./xblat2s < sblat2.in -./xblat2d < dblat2.in -gfortran -O2 -frecursive -o test_zminMax test_zminMax.o -./xblat2c < cblat2.in -./xblat2z < zblat2.in -./xblat3s < sblat3.in -./testlsame - ASCII character set - Tests completed -./testslamch - Epsilon = 5.96046448E-08 - Safe minimum = 1.17549435E-38 - Base = 2.00000000 - Precision = 1.19209290E-07 - Number of digits in mantissa = 24.0000000 - Rounding mode = 1.00000000 - Minimum exponent = -125.000000 - Underflow threshold = 1.17549435E-38 - Largest exponent = 128.000000 - Overflow threshold = 3.40282347E+38 - Reciprocal of safe minimum = 8.50705917E+37 -./testdlamch -./xblat3d < dblat3.in - Epsilon = 1.1102230246251565E-016 - Safe minimum = 2.2250738585072014E-308 - Base = 2.0000000000000000 - Precision = 2.2204460492503131E-016 - Number of digits in mantissa = 53.000000000000000 - Rounding mode = 1.0000000000000000 - Minimum exponent = -1021.0000000000000 - Underflow threshold = 2.2250738585072014E-308 - Largest exponent = 1024.0000000000000 - Overflow threshold = 1.7976931348623157E+308 - Reciprocal of safe minimum = 4.4942328371557898E+307 -./testsecond -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' -make -C TESTING/LIN cleanexe -./xblat3c < cblat3.in -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -rm -f xlintst* -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -make -C TESTING -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING' -make -C LIN xlintsts -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintsts aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o schkaa.o schkeq.o schkgb.o schkge.o schkgt.o schklq.o schkpb.o schkpo.o schkps.o schkpp.o schkpt.o schkq3.o schkqp3rk.o schkql.o schkqr.o schkrq.o schksp.o schksy.o schksy_rook.o schksy_rk.o schksy_aa.o schksy_aa_2stage.o schktb.o schktp.o schktr.o schktz.o sdrvgt.o sdrvls.o sdrvpb.o sdrvpp.o sdrvpt.o sdrvsp.o sdrvsy_rook.o sdrvsy_rk.o sdrvsy_aa.o sdrvsy_aa_2stage.o serrgt.o serrlq.o serrls.o serrps.o serrql.o serrqp.o serrqr.o serrrq.o serrtr.o serrtz.o sgbt01.o sgbt02.o sgbt05.o sgeqls.o sgerqs.o sget01.o sget02.o sget03.o sget04.o sget06.o sget07.o sgtt01.o sgtt02.o sgtt05.o slaptm.o slarhs.o slatb4.o slatb5.o slattb.o slattp.o slattr.o slavsp.o slavsy.o slavsy_rook.o slqt01.o slqt02.o slqt03.o spbt01.o spbt02.o spbt05.o spot01.o spot02.o spot03.o spot05.o spst01.o sppt01.o sppt02.o sppt03.o sppt05.o sptt01.o sptt02.o sptt05.o sqlt01.o sqlt02.o sqlt03.o sqpt01.o sqrt01.o sqrt01p.o sqrt02.o sqrt03.o sqrt11.o sqrt12.o sqrt13.o sqrt14.o sqrt15.o sqrt16.o sqrt17.o srqt01.o srqt02.o srqt03.o srzt01.o srzt02.o sspt01.o ssyt01.o ssyt01_rook.o ssyt01_3.o ssyt01_aa.o stbt02.o stbt03.o stbt05.o stbt06.o stpt01.o stpt02.o stpt03.o stpt05.o stpt06.o strt01.o strt02.o strt03.o strt05.o strt06.o sgennd.o sqrt04.o sqrt05.o schkqrt.o serrqrt.o schkqrtp.o serrqrtp.o schklqt.o schklqtp.o schktsqr.o serrlqt.o serrlqtp.o serrtsqr.o stsqr01.o slqt04.o slqt05.o schkorhr_col.o serrorhr_col.o sorhr_col01.o sorhr_col02.o sdrvgb.o sdrvge.o sdrvsy.o sdrvpo.o serrvx.o serrge.o serrsy.o serrpo.o slaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a - Time for 0.100E+09 SAXPY ops = 0.00 seconds - *** Warning: Time for operations was less or equal than zero => timing in TESTING might be dubious - Including SECOND, time = 0.333E-02 seconds - Average time for SECOND = 0.665E-04 milliseconds -./testdsecnd -./xblat3z < zblat3.in -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS/TESTING' -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/BLAS' - Time for 0.100E+09 DAXPY ops = 0.100E-05 seconds - DAXPY performance rate = 0.100E+09 mflops - Including DSECND, time = 0.295E-02 seconds - Average time for DSECND = 0.590E-04 milliseconds - Equivalent floating point ops = 0.590E+07 ops -./testieee - We are about to check whether infinity arithmetic - can be trusted. If this test hangs, set - ILAENV = 0 for ISPEC = 11 in LAPACK/SRC/ilaenv.f - - Infinity arithmetic performed as per the ieee spec. - However, this is not an exhaustive test and does not - guarantee that infinity arithmetic meets the ieee spec. - - We are about to check whether NaN arithmetic - can be trusted. If this test hangs, set - ILAENV = 0 for ISPEC = 10 in LAPACK/SRC/ilaenv.f - - NaN arithmetic performed as per the ieee spec. - However, this is not an exhaustive test and does not - guarantee that NaN arithmetic meets the ieee spec. - -./testversion - LAPACK 3 . 12 . 0 -./test_zcomplexabs 2> test_zcomplexabs.err - # All tests pass for ABS(a+b*I) -./test_zcomplexdiv 2> test_zcomplexdiv.err - !! Some (x+x*I)/(x+x*I) differ from 1 - !! Some (x+x*I)/(x-x*I) differ from I - # 12602 tests out of 12606 pass for complex division, 4 fail. - # Please check the failed divisions in [stderr] -./test_zcomplexmult 2> test_zcomplexmult.err - # All tests pass for complex multiplication. -./test_zminMax 2> test_zminMax.err -[i8] MIN( NaN, 0.) = 0. -[i8] MAX( NaN, 0.) = 0. - # 14 tests out of 16 pass for intrinsic MIN and MAX, 2 fail. -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/INSTALL' -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing REAL LAPACK linear equation routines -./LIN/xlintsts < stest.in > stest.out 2>&1 -make -C LIN xlintstc -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstc aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o cchkaa.o cchkeq.o cchkgb.o cchkge.o cchkgt.o cchkhe.o cchkhe_rook.o cchkhe_rk.o cchkhe_aa.o cchkhe_aa_2stage.o cchkhp.o cchklq.o cchkpb.o cchkpo.o cchkps.o cchkpp.o cchkpt.o cchkq3.o cchkqp3rk.o cchkql.o cchkqr.o cchkrq.o cchksp.o cchksy.o cchksy_rook.o cchksy_rk.o cchksy_aa.o cchksy_aa_2stage.o cchktb.o cchktp.o cchktr.o cchktz.o cdrvgt.o cdrvhe_rook.o cdrvhe_rk.o cdrvhe_aa.o cdrvhp.o cdrvhe_aa_2stage.o cdrvls.o cdrvpb.o cdrvpp.o cdrvpt.o cdrvsp.o cdrvsy_rook.o cdrvsy_rk.o cdrvsy_aa.o cdrvsy_aa_2stage.o cerrgt.o cerrlq.o cerrls.o cerrps.o cerrql.o cerrqp.o cerrqr.o cerrrq.o cerrtr.o cerrtz.o cgbt01.o cgbt02.o cgbt05.o cgeqls.o cgerqs.o cget01.o cget02.o cget03.o cget04.o cget07.o cgtt01.o cgtt02.o cgtt05.o chet01.o chet01_rook.o chet01_3.o chet01_aa.o chpt01.o claipd.o claptm.o clarhs.o clatb4.o clatb5.o clatsp.o clatsy.o clattb.o clattp.o clattr.o clavhe.o clavhe_rook.o clavhp.o clavsp.o clavsy.o clavsy_rook.o clqt01.o clqt02.o clqt03.o cpbt01.o cpbt02.o cpbt05.o cpot01.o cpot02.o cpot03.o cpot05.o cpst01.o cppt01.o cppt02.o cppt03.o cppt05.o cptt01.o cptt02.o cptt05.o cqlt01.o cqlt02.o cqlt03.o cqpt01.o cqrt01.o cqrt01p.o cqrt02.o cqrt03.o cqrt11.o cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o csbmv.o cspt01.o cspt02.o cspt03.o csyt01.o csyt01_rook.o csyt01_3.o csyt01_aa.o csyt02.o csyt03.o ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o ctrt02.o ctrt03.o ctrt05.o ctrt06.o sget06.o cgennd.o cqrt04.o cqrt05.o cchkqrt.o cerrqrt.o cchkqrtp.o cerrqrtp.o cchklqt.o cchklqtp.o cchktsqr.o cerrlqt.o cerrlqtp.o cerrtsqr.o ctsqr01.o clqt04.o clqt05.o cchkunhr_col.o cerrunhr_col.o cunhr_col01.o cunhr_col02.o cdrvgb.o cdrvge.o cdrvhe.o cdrvsy.o cdrvpo.o cerrvx.o cerrge.o cerrhe.o cerrsy.o cerrpo.o slaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing COMPLEX LAPACK linear equation routines -./LIN/xlintstc < ctest.in > ctest.out 2>&1 -make -C LIN xlintstd -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstd aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o dchkaa.o dchkeq.o dchkgb.o dchkge.o dchkgt.o dchklq.o dchkpb.o dchkpo.o dchkps.o dchkpp.o dchkpt.o dchkq3.o dchkqp3rk.o dchkql.o dchkqr.o dchkrq.o dchksp.o dchksy.o dchksy_rook.o dchksy_rk.o dchksy_aa.o dchksy_aa_2stage.o dchktb.o dchktp.o dchktr.o dchktz.o ddrvgt.o ddrvls.o ddrvpb.o ddrvpp.o ddrvpt.o ddrvsp.o ddrvsy_rook.o ddrvsy_rk.o ddrvsy_aa.o ddrvsy_aa_2stage.o derrgt.o derrlq.o derrls.o derrps.o derrql.o derrqp.o derrqr.o derrrq.o derrtr.o derrtz.o dgbt01.o dgbt02.o dgbt05.o dgeqls.o dgerqs.o dget01.o dget02.o dget03.o dget04.o dget06.o dget07.o dgtt01.o dgtt02.o dgtt05.o dlaptm.o dlarhs.o dlatb4.o dlatb5.o dlattb.o dlattp.o dlattr.o dlavsp.o dlavsy.o dlavsy_rook.o dlqt01.o dlqt02.o dlqt03.o dpbt01.o dpbt02.o dpbt05.o dpot01.o dpot02.o dpot03.o dpot05.o dpst01.o dppt01.o dppt02.o dppt03.o dppt05.o dptt01.o dptt02.o dptt05.o dqlt01.o dqlt02.o dqlt03.o dqpt01.o dqrt01.o dqrt01p.o dqrt02.o dqrt03.o dqrt11.o dqrt12.o dqrt13.o dqrt14.o dqrt15.o dqrt16.o dqrt17.o drqt01.o drqt02.o drqt03.o drzt01.o drzt02.o dspt01.o dsyt01.o dsyt01_rook.o dsyt01_3.o dsyt01_aa.o dtbt02.o dtbt03.o dtbt05.o dtbt06.o dtpt01.o dtpt02.o dtpt03.o dtpt05.o dtpt06.o dtrt01.o dtrt02.o dtrt03.o dtrt05.o dtrt06.o dgennd.o dqrt04.o dqrt05.o dchkqrt.o derrqrt.o dchkqrtp.o derrqrtp.o dchklqt.o dchklqtp.o dchktsqr.o derrlqt.o derrlqtp.o derrtsqr.o dtsqr01.o dlqt04.o dlqt05.o dchkorhr_col.o derrorhr_col.o dorhr_col01.o dorhr_col02.o ddrvgb.o ddrvge.o ddrvsy.o ddrvpo.o derrvx.o derrge.o derrsy.o derrpo.o dlaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing DOUBLE PRECISION LAPACK linear equation routines -./LIN/xlintstd < dtest.in > dtest.out 2>&1 -make -C LIN xlintstz -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstz aladhd.o alaerh.o alaesm.o alahd.o alareq.o alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o zchkaa.o zchkeq.o zchkgb.o zchkge.o zchkgt.o zchkhe.o zchkhe_rook.o zchkhe_rk.o zchkhe_aa.o zchkhe_aa_2stage.o zchkhp.o zchklq.o zchkpb.o zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkqp3rk.o zchkql.o zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchksy_rk.o zchksy_aa.o zchksy_aa_2stage.o zchktb.o zchktp.o zchktr.o zchktz.o zdrvgt.o zdrvhe_rook.o zdrvhe_rk.o zdrvhe_aa.o zdrvhe_aa_2stage.o zdrvhp.o zdrvls.o zdrvpb.o zdrvpp.o zdrvpt.o zdrvsp.o zdrvsy_rook.o zdrvsy_rk.o zdrvsy_aa.o zdrvsy_aa_2stage.o zerrgt.o zerrlq.o zerrls.o zerrps.o zerrql.o zerrqp.o zerrqr.o zerrrq.o zerrtr.o zerrtz.o zgbt01.o zgbt02.o zgbt05.o zgeqls.o zgerqs.o zget01.o zget02.o zget03.o zget04.o zget07.o zgtt01.o zgtt02.o zgtt05.o zhet01.o zhet01_rook.o zhet01_3.o zhet01_aa.o zhpt01.o zlaipd.o zlaptm.o zlarhs.o zlatb4.o zlatb5.o zlatsp.o zlatsy.o zlattb.o zlattp.o zlattr.o zlavhe.o zlavhe_rook.o zlavhp.o zlavsp.o zlavsy.o zlavsy_rook.o zlqt01.o zlqt02.o zlqt03.o zpbt01.o zpbt02.o zpbt05.o zpot01.o zpot02.o zpot03.o zpot05.o zpst01.o zppt01.o zppt02.o zppt03.o zppt05.o zptt01.o zptt02.o zptt05.o zqlt01.o zqlt02.o zqlt03.o zqpt01.o zqrt01.o zqrt01p.o zqrt02.o zqrt03.o zqrt11.o zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o zsbmv.o zspt01.o zspt02.o zspt03.o zsyt01.o zsyt01_rook.o zsyt01_3.o zsyt01_aa.o zsyt02.o zsyt03.o ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o ztrt02.o ztrt03.o ztrt05.o ztrt06.o dget06.o zgennd.o zqrt04.o zqrt05.o zchkqrt.o zerrqrt.o zchkqrtp.o zerrqrtp.o zchklqt.o zchklqtp.o zchktsqr.o zerrlqt.o zerrlqtp.o zerrtsqr.o ztsqr01.o zlqt04.o zlqt05.o zchkunhr_col.o zerrunhr_col.o zunhr_col01.o zunhr_col02.o zdrvgb.o zdrvge.o zdrvhe.o zdrvsy.o zdrvpo.o zerrvx.o zerrge.o zerrhe.o zerrsy.o zerrpo.o dlaord.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing COMPLEX16 LAPACK linear equation routines -./LIN/xlintstz < ztest.in > ztest.out 2>&1 -make -C LIN xlintstrfs -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstrfs schkrfp.o sdrvrfp.o sdrvrf1.o sdrvrf2.o sdrvrf3.o sdrvrf4.o serrrfp.o slatb4.o slarhs.o sget04.o spot01.o spot03.o spot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing REAL LAPACK RFP prototype linear equation routines -./LIN/xlintstrfs < stest_rfp.in > stest_rfp.out 2>&1 -make -C LIN xlintstds -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstds dchkab.o ddrvab.o ddrvac.o derrab.o derrac.o dget08.o alaerh.o alahd.o aladhd.o alareq.o chkxer.o dlarhs.o dlatb4.o xerbla.o dget02.o dpot06.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing SINGLE-DOUBLE PRECISION LAPACK prototype linear equation routines -./LIN/xlintstds < dstest.in > dstest.out 2>&1 -make -C LIN xlintstrfd -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstrfd dchkrfp.o ddrvrfp.o ddrvrf1.o ddrvrf2.o ddrvrf3.o ddrvrf4.o derrrfp.o dlatb4.o dlarhs.o dget04.o dpot01.o dpot03.o dpot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing DOUBLE PRECISION LAPACK RFP prototype linear equation routines -./LIN/xlintstrfd < dtest_rfp.in > dtest_rfp.out 2>&1 -make -C LIN xlintstrfc -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstrfc cchkrfp.o cdrvrfp.o cdrvrf1.o cdrvrf2.o cdrvrf3.o cdrvrf4.o cerrrfp.o claipd.o clatb4.o clarhs.o csbmv.o cget04.o cpot01.o cpot03.o cpot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing COMPLEX LAPACK RFP prototype linear equation routines -./LIN/xlintstrfc < ctest_rfp.in > ctest_rfp.out 2>&1 -make -C LIN xlintstzc -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstzc zchkab.o zdrvab.o zdrvac.o zerrab.o zerrac.o zget08.o alaerh.o alahd.o aladhd.o alareq.o chkxer.o zget02.o zlarhs.o zlatb4.o zsbmv.o xerbla.o zpot06.o zlaipd.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing COMPLEX-COMPLEX16 LAPACK prototype linear equation routines -./LIN/xlintstzc < zctest.in > zctest.out 2>&1 -make -C LIN xlintstrfz -make[2]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -gfortran -O2 -frecursive -o xlintstrfz zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp.o zlatb4.o zlaipd.o zlarhs.o zsbmv.o zget04.o zpot01.o zpot03.o zpot02.o chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a -make[2]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/LIN' -Testing COMPLEX16 LAPACK RFP prototype linear equation routines -./LIN/xlintstrfz < ztest_rfp.in > ztest_rfp.out 2>&1 -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING' -./lapack_testing.py - ----------------- Testing LAPACK Routines ---------------- - --- Detailed results are stored in testing_results.txt - -------------------------- REAL ------------------------ - -Testing REAL Nonsymmetric-Eigenvalue-Problem-snep.out passed: 10080 - -Testing REAL Symmetric-Eigenvalue-Problem-ssep.out passed: 89520 - -Testing REAL Symmetric-Eigenvalue-Problem-2-stage-sse2.out passed: 89520 - -Testing REAL Singular-Value-Decomposition-ssvd.out passed: 125400 - -Testing REAL Eigen-Condition-sec.out passed: 501251 - -Testing REAL Nonsymmetric-Eigenvalue-sed.out passed: 14704 - -Testing REAL Nonsymmetric-Generalized-Eigenvalue-Problem-sgg.out passed: 8736 - -Testing REAL Nonsymmetric-Generalized-Eigenvalue-Problem-driver-sgd.out passed: 10482 - -Testing REAL Symmetric-Eigenvalue-Problem-ssb.out passed: 810 - -Testing REAL Symmetric-Eigenvalue-Generalized-Problem-ssg.out passed: 33516 - -Testing REAL Banded-Singular-Value-Decomposition-routines-sbb.out passed: 6000 - -Testing REAL Generalized-Linear-Regression-Model-routines-sglm.out passed: 48 - -Testing REAL Generalized-QR-and-RQ-factorization-routines-sgqr.out passed: 1728 - -Testing REAL Generalized-Singular-Value-Decomposition-routines-sgsv.out passed: 384 - -Testing REAL CS-Decomposition-routines-scsd.out passed: 600 - -Testing REAL Constrained-Linear-Least-Squares-routines-slse.out passed: 96 - -Testing REAL Linear-Equation-routines-stest.out passed: 663645 - -Testing REAL RFP-linear-equation-routines-stest_rfp.out passed: 13128 - - -------------------------- DOUBLE PRECISION ------------------------ - -Testing DOUBLE PRECISION Nonsymmetric-Eigenvalue-Problem-dnep.out passed: 10080 - -Testing DOUBLE PRECISION Symmetric-Eigenvalue-Problem-dsep.out passed: 89520 - -Testing DOUBLE PRECISION Symmetric-Eigenvalue-Problem-2-stage-dse2.out passed: 89520 - -Testing DOUBLE PRECISION Singular-Value-Decomposition-dsvd.out passed: 125400 - -Testing DOUBLE PRECISION Eigen-Condition-dec.out passed: 501261 - -Testing DOUBLE PRECISION Nonsymmetric-Eigenvalue-ded.out passed: 14704 - -Testing DOUBLE PRECISION Nonsymmetric-Generalized-Eigenvalue-Problem-dgg.out passed: 8736 - -Testing DOUBLE PRECISION Nonsymmetric-Generalized-Eigenvalue-Problem-driver-dgd.out passed: 10482 - -Testing DOUBLE PRECISION Symmetric-Eigenvalue-Problem-dsb.out passed: 810 - -Testing DOUBLE PRECISION Symmetric-Eigenvalue-Generalized-Problem-dsg.out passed: 33516 - -Testing DOUBLE PRECISION Banded-Singular-Value-Decomposition-routines-dbb.out passed: 6000 - -Testing DOUBLE PRECISION Generalized-Linear-Regression-Model-routines-dglm.out passed: 48 - -Testing DOUBLE PRECISION Generalized-QR-and-RQ-factorization-routines-dgqr.out passed: 1728 - -Testing DOUBLE PRECISION Generalized-Singular-Value-Decomposition-routines-dgsv.out passed: 384 - -Testing DOUBLE PRECISION CS-Decomposition-routines-dcsd.out passed: 600 - -Testing DOUBLE PRECISION Constrained-Linear-Least-Squares-routines-dlse.out passed: 96 - -Testing DOUBLE PRECISION Linear-Equation-routines-dtest.out DQK: 36885 out of 241365 tests failed to pass the threshold - passed: 422280 -failing to pass the threshold: 36885 - -Testing DOUBLE PRECISION Mixed-Precision-linear-equation-routines-dstest.out passed: 812 - -Testing DOUBLE PRECISION RFP-linear-equation-routines-dtest_rfp.out passed: 13128 - - -------------------------- COMPLEX ------------------------ - -Testing COMPLEX Nonsymmetric-Eigenvalue-Problem-cnep.out passed: 10080 - -Testing COMPLEX Symmetric-Eigenvalue-Problem-csep.out passed: 77280 - -Testing COMPLEX Symmetric-Eigenvalue-Problem-2-stage-cse2.out passed: 77280 - -Testing COMPLEX Singular-Value-Decomposition-csvd.out passed: 92125 - -Testing COMPLEX Eigen-Condition-cec.out passed: 5966 - -Testing COMPLEX Nonsymmetric-Eigenvalue-ced.out passed: 14080 - -Testing COMPLEX Nonsymmetric-Generalized-Eigenvalue-Problem-cgg.out passed: 8736 - -Testing COMPLEX Nonsymmetric-Generalized-Eigenvalue-Problem-driver-cgd.out passed: 10482 - -Testing COMPLEX Symmetric-Eigenvalue-Problem-csb.out passed: 810 - -Testing COMPLEX Symmetric-Eigenvalue-Generalized-Problem-csg.out passed: 33516 - -Testing COMPLEX Banded-Singular-Value-Decomposition-routines-cbb.out passed: 6000 - -Testing COMPLEX Generalized-Linear-Regression-Model-routines-cglm.out passed: 48 - -Testing COMPLEX Generalized-QR-and-RQ-factorization-routines-cgqr.out passed: 1728 - -Testing COMPLEX Generalized-Singular-Value-Decomposition-routines-cgsv.out passed: 385 - -Testing COMPLEX CS-Decomposition-routines-ccsd.out passed: 600 - -Testing COMPLEX Constrained-Linear-Least-Squares-routines-clse.out passed: 96 - -Testing COMPLEX Linear-Equation-routines-ctest.out passed: 677390 - -Testing COMPLEX RFP-linear-equation-routines-ctest_rfp.out passed: 13128 - - -------------------------- COMPLEX16 ------------------------ - -Testing COMPLEX16 Nonsymmetric-Eigenvalue-Problem-znep.out passed: 10080 - -Testing COMPLEX16 Symmetric-Eigenvalue-Problem-zsep.out passed: 77280 - -Testing COMPLEX16 Symmetric-Eigenvalue-Problem-2-stage-zse2.out passed: 77280 - -Testing COMPLEX16 Singular-Value-Decomposition-zsvd.out passed: 92125 - -Testing COMPLEX16 Eigen-Condition-zec.out passed: 6222 - -Testing COMPLEX16 Nonsymmetric-Eigenvalue-zed.out passed: 14080 - -Testing COMPLEX16 Nonsymmetric-Generalized-Eigenvalue-Problem-zgg.out passed: 8736 - -Testing COMPLEX16 Nonsymmetric-Generalized-Eigenvalue-Problem-driver-zgd.out passed: 10482 - -Testing COMPLEX16 Symmetric-Eigenvalue-Problem-zsb.out passed: 810 - -Testing COMPLEX16 Symmetric-Eigenvalue-Generalized-Problem-zsg.out passed: 33516 - -Testing COMPLEX16 Banded-Singular-Value-Decomposition-routines-zbb.out passed: 6000 - -Testing COMPLEX16 Generalized-Linear-Regression-Model-routines-zglm.out passed: 48 - -Testing COMPLEX16 Generalized-QR-and-RQ-factorization-routines-zgqr.out passed: 1728 - -Testing COMPLEX16 Generalized-Singular-Value-Decomposition-routines-zgsv.out passed: 384 - -Testing COMPLEX16 CS-Decomposition-routines-zcsd.out passed: 600 - -Testing COMPLEX16 Constrained-Linear-Least-Squares-routines-zlse.out passed: 96 - -Testing COMPLEX16 Linear-Equation-routines-ztest.out passed: 677390 - -Testing COMPLEX16 Mixed-Precision-linear-equation-routines-zctest.out passed: 812 - -Testing COMPLEX16 RFP-linear-equation-routines-ztest_rfp.out passed: 13128 - - - --> LAPACK TESTING SUMMARY <-- - Processing LAPACK Testing output found in the TESTING directory -SUMMARY nb test run numerical error other error -================ =========== ================= ================ -REAL 1569648 0 (0.000%) 0 (0.000%) -DOUBLE PRECISION 1329105 36885 (2.775%) 0 (0.000%) -COMPLEX 1029730 0 (0.000%) 0 (0.000%) -COMPLEX16 1030797 0 (0.000%) 0 (0.000%) - ---> ALL PRECISIONS 4959280 36885 (0.744%) 0 (0.000%) - From fb5dc39422e55d940b84216e7f3100a8b3934ade Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Thu, 16 May 2024 10:53:04 +0200 Subject: [PATCH 03/28] current state of testing implementation --- SRC/Makefile | 2 +- SRC/dlarf1.f | 22 +- SRC/dorm2r.f | 4 +- SRC/dormqr.f | 80 +- libCompile | 2016 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 2076 insertions(+), 48 deletions(-) create mode 100644 libCompile diff --git a/SRC/Makefile b/SRC/Makefile index 5662d2ab00..106943b9ec 100644 --- a/SRC/Makefile +++ b/SRC/Makefile @@ -339,7 +339,7 @@ DLASRC = \ dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqp2rk.o dlaqp3rk.o dlaqsb.o dlaqsp.o dlaqsy.o \ dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \ - dlarf.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o \ + dlarf.o dlarf1.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o \ dlargv.o dlarmm.o dlarrv.o dlartv.o \ dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o \ dlasyf.o dlasyf_rook.o dlasyf_rk.o \ diff --git a/SRC/dlarf1.f b/SRC/dlarf1.f index 071e72c817..20e7f91ca7 100644 --- a/SRC/dlarf1.f +++ b/SRC/dlarf1.f @@ -120,7 +120,7 @@ *> \ingroup larf * * ===================================================================== - SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) + SUBROUTINE DLARF1( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * -- LAPACK auxiliary routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- @@ -145,7 +145,7 @@ SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT - INTEGER I, LASTV, LASTC + INTEGER I, LASTV, LASTC, J * .. * .. External Subroutines .. EXTERNAL DGEMV, DGER @@ -192,16 +192,28 @@ SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * Form H * C * - IF( LASTV.GT.0 ) THEN + IF( LASTV.GT.0 .AND. LASTC.GT.0) THEN * * w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) * - CALL DGEMV( 'Transpose', LASTV, LASTC, ONE, C(2,1), LDC, - $ V(INCV), INCV, ZERO, WORK, 1 ) +! CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), LDC, +! $ V(1+INCV), INCV, ZERO, WORK, 1 ) +! DO I = 1, LASTC +! WORK(I) = ZERO +! DO J = 2, LASTV +! WORK(I) = WORK(I) + V(1 + (J-1)*INCV) * C(J,I) +! END DO +! END DO + CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(2,1), LDC, + $ v(1+INCV), INCV, ZERO, WORK, 1) * * w(1:lastc,1) := w(1:lastc,1) + C(1,1:lastc)**T * v(1,1) * = w(1:lastc,1) + C(1,1:lastc)**T * + ! Now, do w(1:lastc,1) += C(1,1:lastc)**T +! DO I = 1, LASTC +! WORK(I) = WORK(I) + C(1,I) +! END DO CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) * * C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)**T diff --git a/SRC/dorm2r.f b/SRC/dorm2r.f index d894a806c3..ebf9c39e00 100644 --- a/SRC/dorm2r.f +++ b/SRC/dorm2r.f @@ -185,7 +185,7 @@ SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL DLARF, XERBLA + EXTERNAL DLARF, XERBLA, DLARF1 * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -268,7 +268,7 @@ SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * AII = A( I, I ) A( I, I ) = ONE - CALL DLARF( SIDE, MI, NI, A( I, I ), 1, TAU( I ), C( IC, + CALL DLARF1( SIDE, MI, NI, A( I, I ), 1, TAU( I ), C( IC, $ JC ), $ LDC, WORK ) A( I, I ) = AII diff --git a/SRC/dormqr.f b/SRC/dormqr.f index a9f8ba2279..d8fd7d034f 100644 --- a/SRC/dormqr.f +++ b/SRC/dormqr.f @@ -272,68 +272,68 @@ SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, END IF END IF * - IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN +* IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, $ IINFO ) - ELSE +* ELSE * * Use blocked code * - IWT = 1 + NW*NB - IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. - $ ( .NOT.LEFT .AND. NOTRAN ) ) THEN - I1 = 1 - I2 = K - I3 = NB - ELSE - I1 = ( ( K-1 ) / NB )*NB + 1 - I2 = 1 - I3 = -NB - END IF -* - IF( LEFT ) THEN - NI = N - JC = 1 - ELSE - MI = M - IC = 1 - END IF -* - DO 10 I = I1, I2, I3 - IB = MIN( NB, K-I+1 ) +! IWT = 1 + NW*NB +! IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. +! $ ( .NOT.LEFT .AND. NOTRAN ) ) THEN +! I1 = 1 +! I2 = K +! I3 = NB +! ELSE +! I1 = ( ( K-1 ) / NB )*NB + 1 +! I2 = 1 +! I3 = -NB +! END IF +* +! IF( LEFT ) THEN +! NI = N +! JC = 1 +! ELSE +! MI = M +! IC = 1 +! END IF +* +! DO 10 I = I1, I2, I3 +! IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * - CALL DLARFT( 'Forward', 'Columnwise', NQ-I+1, IB, A( I, - $ I ), - $ LDA, TAU( I ), WORK( IWT ), LDT ) - IF( LEFT ) THEN +! CALL DLARFT( 'Forward', 'Columnwise', NQ-I+1, IB, A( I, +! $ I ), +! $ LDA, TAU( I ), WORK( IWT ), LDT ) +! IF( LEFT ) THEN * * H or H**T is applied to C(i:m,1:n) * - MI = M - I + 1 - IC = I - ELSE +! MI = M - I + 1 +! IC = I +! ELSE * * H or H**T is applied to C(1:m,i:n) * - NI = N - I + 1 - JC = I - END IF +! NI = N - I + 1 +! JC = I +! END IF * * Apply H or H**T * - CALL DLARFB( SIDE, TRANS, 'Forward', 'Columnwise', MI, - $ NI, - $ IB, A( I, I ), LDA, WORK( IWT ), LDT, - $ C( IC, JC ), LDC, WORK, LDWORK ) - 10 CONTINUE - END IF +! CALL DLARFB( SIDE, TRANS, 'Forward', 'Columnwise', MI, +! $ NI, +! $ IB, A( I, I ), LDA, WORK( IWT ), LDT, +! $ C( IC, JC ), LDC, WORK, LDWORK ) +! 10 CONTINUE +! END IF WORK( 1 ) = LWKOPT RETURN * diff --git a/libCompile b/libCompile new file mode 100644 index 0000000000..44c45e89de --- /dev/null +++ b/libCompile @@ -0,0 +1,2016 @@ +make -C SRC +make -C TESTING/MATGEN +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' +gfortran -O2 -frecursive -c -o slatms.o slatms.f +gfortran -O2 -frecursive -c -o slatme.o slatme.f +gfortran -O2 -frecursive -c -o slatmr.o slatmr.f +gfortran -O2 -frecursive -c -o slatmt.o slatmt.f +gfortran -O2 -frecursive -c -o slagge.o slagge.f +gfortran -O2 -frecursive -c -o slagsy.o slagsy.f +gfortran -O2 -frecursive -c -o slakf2.o slakf2.f +gfortran -O2 -frecursive -c -o slarge.o slarge.f +gfortran -O2 -frecursive -c -o slaror.o slaror.f +gfortran -O2 -frecursive -c -o slarot.o slarot.f +gfortran -O2 -frecursive -c -o slatm2.o slatm2.f +make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' +gfortran -O2 -frecursive -c -o sbdsvdx.o sbdsvdx.f +gfortran -O2 -frecursive -c -o spotrf2.o spotrf2.f +gfortran -O2 -frecursive -c -o sgetrf2.o sgetrf2.f +gfortran -O2 -frecursive -c -o sgbbrd.o sgbbrd.f +gfortran -O2 -frecursive -c -o sgbcon.o sgbcon.f +gfortran -O2 -frecursive -c -o slatm3.o slatm3.f +gfortran -O2 -frecursive -c -o sgbequ.o sgbequ.f +gfortran -O2 -frecursive -c -o slatm5.o slatm5.f +gfortran -O2 -frecursive -c -o sgbrfs.o sgbrfs.f +gfortran -O2 -frecursive -c -o slatm6.o slatm6.f +gfortran -O2 -frecursive -c -o slahilb.o slahilb.f +gfortran -O2 -frecursive -c -o sgbsv.o sgbsv.f +gfortran -O2 -frecursive -c -o sgbsvx.o sgbsvx.f +gfortran -O2 -frecursive -c -o clatms.o clatms.f +gfortran -O2 -frecursive -c -o clatme.o clatme.f +gfortran -O2 -frecursive -c -o sgbtf2.o sgbtf2.f +gfortran -O2 -frecursive -c -o clatmr.o clatmr.f +gfortran -O2 -frecursive -c -o clatmt.o clatmt.f +gfortran -O2 -frecursive -c -o sgbtrf.o sgbtrf.f +gfortran -O2 -frecursive -c -o clagge.o clagge.f +gfortran -O2 -frecursive -c -o claghe.o claghe.f +gfortran -O2 -frecursive -c -o sgbtrs.o sgbtrs.f +gfortran -O2 -frecursive -c -o sgebak.o sgebak.f +gfortran -O2 -frecursive -c -o clagsy.o clagsy.f +gfortran -O2 -frecursive -c -o clakf2.o clakf2.f +gfortran -O2 -frecursive -c -o clarge.o clarge.f +gfortran -O2 -frecursive -c -o sgebal.o sgebal.f +gfortran -O2 -frecursive -c -o claror.o claror.f +gfortran -O2 -frecursive -c -o sgebd2.o sgebd2.f +gfortran -O2 -frecursive -c -o clarot.o clarot.f +gfortran -O2 -frecursive -c -o clatm1.o clatm1.f +gfortran -O2 -frecursive -c -o sgebrd.o sgebrd.f +gfortran -O2 -frecursive -c -o clarnd.o clarnd.f +gfortran -O2 -frecursive -c -o clatm2.o clatm2.f +gfortran -O2 -frecursive -c -o clatm3.o clatm3.f +gfortran -O2 -frecursive -c -o sgecon.o sgecon.f +gfortran -O2 -frecursive -c -o clatm5.o clatm5.f +gfortran -O2 -frecursive -c -o sgeequ.o sgeequ.f +gfortran -O2 -frecursive -c -o clatm6.o clatm6.f +gfortran -O2 -frecursive -c -o sgees.o sgees.f +gfortran -O2 -frecursive -c -o sgeesx.o sgeesx.f +gfortran -O2 -frecursive -c -o clahilb.o clahilb.f +gfortran -O2 -frecursive -c -o slatm1.o slatm1.f +gfortran -O2 -frecursive -c -o slatm7.o slatm7.f +gfortran -O2 -frecursive -c -o sgeev.o sgeev.f +gfortran -O0 -frecursive -c -o slaran.o slaran.f +gfortran -O2 -frecursive -c -o sgeevx.o sgeevx.f +gfortran -O2 -frecursive -c -o slarnd.o slarnd.f +gfortran -O2 -frecursive -c -o dlatms.o dlatms.f +gfortran -O2 -frecursive -c -o sgehd2.o sgehd2.f +gfortran -O2 -frecursive -c -o sgehrd.o sgehrd.f +gfortran -O2 -frecursive -c -o sgelq2.o sgelq2.f +gfortran -O2 -frecursive -c -o dlatme.o dlatme.f +gfortran -O2 -frecursive -c -o sgelqf.o sgelqf.f +gfortran -O2 -frecursive -c -o dlatmr.o dlatmr.f +gfortran -O2 -frecursive -c -o sgels.o sgels.f +gfortran -O2 -frecursive -c -o dlatmt.o dlatmt.f +gfortran -O2 -frecursive -c -o dlagge.o dlagge.f +gfortran -O2 -frecursive -c -o dlagsy.o dlagsy.f +gfortran -O2 -frecursive -c -o dlakf2.o dlakf2.f +gfortran -O2 -frecursive -c -o dlarge.o dlarge.f +gfortran -O2 -frecursive -c -o sgelst.o sgelst.f +gfortran -O2 -frecursive -c -o dlaror.o dlaror.f +gfortran -O2 -frecursive -c -o dlarot.o dlarot.f +gfortran -O2 -frecursive -c -o dlatm2.o dlatm2.f +gfortran -O2 -frecursive -c -o sgelsd.o sgelsd.f +gfortran -O2 -frecursive -c -o dlatm3.o dlatm3.f +gfortran -O2 -frecursive -c -o sgelss.o sgelss.f +gfortran -O2 -frecursive -c -o dlatm5.o dlatm5.f +gfortran -O2 -frecursive -c -o dlatm6.o dlatm6.f +gfortran -O2 -frecursive -c -o sgelsy.o sgelsy.f +gfortran -O2 -frecursive -c -o dlahilb.o dlahilb.f +gfortran -O2 -frecursive -c -o zlatms.o zlatms.f +gfortran -O2 -frecursive -c -o sgeql2.o sgeql2.f +gfortran -O2 -frecursive -c -o zlatme.o zlatme.f +gfortran -O2 -frecursive -c -o sgeqlf.o sgeqlf.f +gfortran -O2 -frecursive -c -o zlatmr.o zlatmr.f +gfortran -O2 -frecursive -c -o sgeqp3.o sgeqp3.f +gfortran -O2 -frecursive -c -o zlatmt.o zlatmt.f +gfortran -O2 -frecursive -c -o sgeqp3rk.o sgeqp3rk.f +gfortran -O2 -frecursive -c -o zlagge.o zlagge.f +gfortran -O2 -frecursive -c -o zlaghe.o zlaghe.f +gfortran -O2 -frecursive -c -o sgeqr2.o sgeqr2.f +gfortran -O2 -frecursive -c -o zlagsy.o zlagsy.f +gfortran -O2 -frecursive -c -o sgeqr2p.o sgeqr2p.f +gfortran -O2 -frecursive -c -o sgeqrf.o sgeqrf.f +gfortran -O2 -frecursive -c -o zlakf2.o zlakf2.f +gfortran -O2 -frecursive -c -o zlarge.o zlarge.f +gfortran -O2 -frecursive -c -o zlaror.o zlaror.f +gfortran -O2 -frecursive -c -o sgeqrfp.o sgeqrfp.f +gfortran -O2 -frecursive -c -o zlarot.o zlarot.f +gfortran -O2 -frecursive -c -o zlatm1.o zlatm1.f +gfortran -O2 -frecursive -c -o zlarnd.o zlarnd.f +gfortran -O2 -frecursive -c -o sgerfs.o sgerfs.f +gfortran -O2 -frecursive -c -o sgerq2.o sgerq2.f +gfortran -O2 -frecursive -c -o sgerqf.o sgerqf.f +gfortran -O2 -frecursive -c -o zlatm2.o zlatm2.f +gfortran -O2 -frecursive -c -o sgesc2.o sgesc2.f +gfortran -O2 -frecursive -c -o sgesdd.o sgesdd.f +gfortran -O2 -frecursive -c -o zlatm3.o zlatm3.f +gfortran -O2 -frecursive -c -o zlatm5.o zlatm5.f +gfortran -O2 -frecursive -c -o zlatm6.o zlatm6.f +gfortran -O2 -frecursive -c -o sgesv.o sgesv.f +gfortran -O2 -frecursive -c -o zlahilb.o zlahilb.f +gfortran -O2 -frecursive -c -o dlatm1.o dlatm1.f +gfortran -O2 -frecursive -c -o sgesvd.o sgesvd.f +gfortran -O2 -frecursive -c -o dlatm7.o dlatm7.f +gfortran -O0 -frecursive -c -o dlaran.o dlaran.f +gfortran -O2 -frecursive -c -o dlarnd.o dlarnd.f +gfortran -O2 -frecursive -c -o sgesvdx.o sgesvdx.f +gfortran -O2 -frecursive -c -o sgesvx.o sgesvx.f +gfortran -O2 -frecursive -c -o sgetc2.o sgetc2.f +gfortran -O2 -frecursive -c -o sgetf2.o sgetf2.f +gfortran -O2 -frecursive -c -o sgetri.o sgetri.f +gfortran -O2 -frecursive -c -o sggbak.o sggbak.f +gfortran -O2 -frecursive -c -o sggbal.o sggbal.f +gfortran -O2 -frecursive -c -o sgges.o sgges.f +gfortran -O2 -frecursive -c -o sgges3.o sgges3.f +gfortran -O2 -frecursive -c -o sggesx.o sggesx.f +gfortran -O2 -frecursive -c -o sggev.o sggev.f +gfortran -O2 -frecursive -c -o sggev3.o sggev3.f +gfortran -O2 -frecursive -c -o sggevx.o sggevx.f +gfortran -O2 -frecursive -c -o sggglm.o sggglm.f +gfortran -O2 -frecursive -c -o sgghrd.o sgghrd.f +gfortran -O2 -frecursive -c -o sgghd3.o sgghd3.f +gfortran -O2 -frecursive -c -o sgglse.o sgglse.f +gfortran -O2 -frecursive -c -o sggqrf.o sggqrf.f +gfortran -O2 -frecursive -c -o sggrqf.o sggrqf.f +gfortran -O2 -frecursive -c -o sggsvd3.o sggsvd3.f +gfortran -O2 -frecursive -c -o sggsvp3.o sggsvp3.f +gfortran -O2 -frecursive -c -o sgtcon.o sgtcon.f +gfortran -O2 -frecursive -c -o sgtrfs.o sgtrfs.f +gfortran -O2 -frecursive -c -o sgtsv.o sgtsv.f +gfortran -O2 -frecursive -c -o sgtsvx.o sgtsvx.f +gfortran -O2 -frecursive -c -o sgttrf.o sgttrf.f +gfortran -O2 -frecursive -c -o sgttrs.o sgttrs.f +gfortran -O2 -frecursive -c -o sgtts2.o sgtts2.f +gfortran -O2 -frecursive -c -o shgeqz.o shgeqz.f +gfortran -O2 -frecursive -c -o slaqz0.o slaqz0.f +gfortran -O2 -frecursive -c -o slaqz1.o slaqz1.f +gfortran -O2 -frecursive -c -o slaqz2.o slaqz2.f +gfortran -O2 -frecursive -c -o slaqz3.o slaqz3.f +gfortran -O2 -frecursive -c -o slaqz4.o slaqz4.f +gfortran -O2 -frecursive -c -o shsein.o shsein.f +gfortran -O2 -frecursive -c -o shseqr.o shseqr.f +gfortran -O2 -frecursive -c -o slabrd.o slabrd.f +gfortran -O2 -frecursive -c -o slacon.o slacon.f +ar cr ../../libtmglib.a slatms.o slatme.o slatmr.o slatmt.o slagge.o slagsy.o slakf2.o slarge.o slaror.o slarot.o slatm2.o slatm3.o slatm5.o slatm6.o slahilb.o clatms.o clatme.o clatmr.o clatmt.o clagge.o claghe.o clagsy.o clakf2.o clarge.o claror.o clarot.o clatm1.o clarnd.o clatm2.o clatm3.o clatm5.o clatm6.o clahilb.o slatm1.o slatm7.o slaran.o slarnd.o dlatms.o dlatme.o dlatmr.o dlatmt.o dlagge.o dlagsy.o dlakf2.o dlarge.o dlaror.o dlarot.o dlatm2.o dlatm3.o dlatm5.o dlatm6.o dlahilb.o 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 dlatm1.o dlatm7.o dlaran.o dlarnd.o +gfortran -O2 -frecursive -c -o slacn2.o slacn2.f +gfortran -O2 -frecursive -c -o slaein.o slaein.f +gfortran -O2 -frecursive -c -o slaexc.o slaexc.f +ranlib ../../libtmglib.a +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' +gfortran -O2 -frecursive -c -o slag2.o slag2.f +gfortran -O2 -frecursive -c -o slags2.o slags2.f +gfortran -O2 -frecursive -c -o slagtm.o slagtm.f +gfortran -O2 -frecursive -c -o slagv2.o slagv2.f +gfortran -O2 -frecursive -c -o slahqr.o slahqr.f +gfortran -O2 -frecursive -c -o slahr2.o slahr2.f +gfortran -O2 -frecursive -c -o slaic1.o slaic1.f +gfortran -O2 -frecursive -c -o slaln2.o slaln2.f +gfortran -O2 -frecursive -c -o slals0.o slals0.f +gfortran -O2 -frecursive -c -o slalsa.o slalsa.f +gfortran -O2 -frecursive -c -o slalsd.o slalsd.f +gfortran -O2 -frecursive -c -o slangb.o slangb.f +gfortran -O2 -frecursive -c -o slange.o slange.f +gfortran -O2 -frecursive -c -o slangt.o slangt.f +gfortran -O2 -frecursive -c -o slanhs.o slanhs.f +gfortran -O2 -frecursive -c -o slansb.o slansb.f +gfortran -O2 -frecursive -c -o slansp.o slansp.f +gfortran -O2 -frecursive -c -o slansy.o slansy.f +gfortran -O2 -frecursive -c -o slantb.o slantb.f +gfortran -O2 -frecursive -c -o slantp.o slantp.f +gfortran -O2 -frecursive -c -o slantr.o slantr.f +gfortran -O2 -frecursive -c -o slanv2.o slanv2.f +gfortran -O2 -frecursive -c -o slapll.o slapll.f +gfortran -O2 -frecursive -c -o slapmt.o slapmt.f +gfortran -O2 -frecursive -c -o slaqgb.o slaqgb.f +gfortran -O2 -frecursive -c -o slaqge.o slaqge.f +gfortran -O2 -frecursive -c -o slaqp2.o slaqp2.f +gfortran -O2 -frecursive -c -o slaqps.o slaqps.f +gfortran -O2 -frecursive -c -o slaqp2rk.o slaqp2rk.f +gfortran -O2 -frecursive -c -o slaqp3rk.o slaqp3rk.f +gfortran -O2 -frecursive -c -o slaqsb.o slaqsb.f +gfortran -O2 -frecursive -c -o slaqsp.o slaqsp.f +gfortran -O2 -frecursive -c -o slaqsy.o slaqsy.f +gfortran -O2 -frecursive -c -o slaqr0.o slaqr0.f +gfortran -O2 -frecursive -c -o slaqr1.o slaqr1.f +gfortran -O2 -frecursive -c -o slaqr2.o slaqr2.f +gfortran -O2 -frecursive -c -o slaqr3.o slaqr3.f +gfortran -O2 -frecursive -c -o slaqr4.o slaqr4.f +gfortran -O2 -frecursive -c -o slaqr5.o slaqr5.f +gfortran -O2 -frecursive -c -o slaqtr.o slaqtr.f +gfortran -O2 -frecursive -c -o slar1v.o slar1v.f +gfortran -O2 -frecursive -c -o slar2v.o slar2v.f +gfortran -O2 -frecursive -c -o ilaslr.o ilaslr.f +gfortran -O2 -frecursive -c -o ilaslc.o ilaslc.f +gfortran -O2 -frecursive -c -o slarf.o slarf.f +gfortran -O2 -frecursive -c -o slarfb.o slarfb.f +gfortran -O2 -frecursive -c -o slarfb_gett.o slarfb_gett.f +gfortran -O2 -frecursive -c -o slarfg.o slarfg.f +gfortran -O2 -frecursive -c -o slarfgp.o slarfgp.f +gfortran -O2 -frecursive -c -o slarft.o slarft.f +gfortran -O2 -frecursive -c -o slarfx.o slarfx.f +gfortran -O2 -frecursive -c -o slarfy.o slarfy.f +gfortran -O2 -frecursive -c -o slargv.o slargv.f +gfortran -O2 -frecursive -c -o slarmm.o slarmm.f +gfortran -O2 -frecursive -c -o slarrv.o slarrv.f +gfortran -O2 -frecursive -c -o slartv.o slartv.f +gfortran -O2 -frecursive -c -o slarz.o slarz.f +gfortran -O2 -frecursive -c -o slarzb.o slarzb.f +gfortran -O2 -frecursive -c -o slarzt.o slarzt.f +gfortran -O2 -frecursive -c -o slaswp.o slaswp.f +gfortran -O2 -frecursive -c -o slasy2.o slasy2.f +gfortran -O2 -frecursive -c -o slasyf.o slasyf.f +gfortran -O2 -frecursive -c -o slasyf_rook.o slasyf_rook.f +gfortran -O2 -frecursive -c -o slasyf_rk.o slasyf_rk.f +gfortran -O2 -frecursive -c -o slatbs.o slatbs.f +gfortran -O2 -frecursive -c -o slatdf.o slatdf.f +gfortran -O2 -frecursive -c -o slatps.o slatps.f +gfortran -O2 -frecursive -c -o slatrd.o slatrd.f +gfortran -O2 -frecursive -c -o slatrs.o slatrs.f +gfortran -O2 -frecursive -c -o slatrs3.o slatrs3.f +gfortran -O2 -frecursive -c -o slatrz.o slatrz.f +gfortran -O2 -frecursive -c -o slauu2.o slauu2.f +gfortran -O2 -frecursive -c -o slauum.o slauum.f +gfortran -O2 -frecursive -c -o sopgtr.o sopgtr.f +gfortran -O2 -frecursive -c -o sopmtr.o sopmtr.f +gfortran -O2 -frecursive -c -o sorg2l.o sorg2l.f +gfortran -O2 -frecursive -c -o sorg2r.o sorg2r.f +gfortran -O2 -frecursive -c -o sorgbr.o sorgbr.f +gfortran -O2 -frecursive -c -o sorghr.o sorghr.f +gfortran -O2 -frecursive -c -o sorgl2.o sorgl2.f +gfortran -O2 -frecursive -c -o sorglq.o sorglq.f +gfortran -O2 -frecursive -c -o sorgql.o sorgql.f +gfortran -O2 -frecursive -c -o sorgqr.o sorgqr.f +gfortran -O2 -frecursive -c -o sorgr2.o sorgr2.f +gfortran -O2 -frecursive -c -o sorgrq.o sorgrq.f +gfortran -O2 -frecursive -c -o sorgtr.o sorgtr.f +gfortran -O2 -frecursive -c -o sorgtsqr.o sorgtsqr.f +gfortran -O2 -frecursive -c -o sorgtsqr_row.o sorgtsqr_row.f +gfortran -O2 -frecursive -c -o sorm2l.o sorm2l.f +gfortran -O2 -frecursive -c -o sorm2r.o sorm2r.f +gfortran -O2 -frecursive -c -o sorm22.o sorm22.f +gfortran -O2 -frecursive -c -o sormbr.o sormbr.f +gfortran -O2 -frecursive -c -o sormhr.o sormhr.f +gfortran -O2 -frecursive -c -o sorml2.o sorml2.f +gfortran -O2 -frecursive -c -o sormlq.o sormlq.f +gfortran -O2 -frecursive -c -o sormql.o sormql.f +gfortran -O2 -frecursive -c -o sormqr.o sormqr.f +gfortran -O2 -frecursive -c -o sormr2.o sormr2.f +gfortran -O2 -frecursive -c -o sormr3.o sormr3.f +gfortran -O2 -frecursive -c -o sormrq.o sormrq.f +gfortran -O2 -frecursive -c -o sormrz.o sormrz.f +gfortran -O2 -frecursive -c -o sormtr.o sormtr.f +gfortran -O2 -frecursive -c -o spbcon.o spbcon.f +gfortran -O2 -frecursive -c -o spbequ.o spbequ.f +gfortran -O2 -frecursive -c -o spbrfs.o spbrfs.f +gfortran -O2 -frecursive -c -o spbstf.o spbstf.f +gfortran -O2 -frecursive -c -o spbsv.o spbsv.f +gfortran -O2 -frecursive -c -o spbsvx.o spbsvx.f +gfortran -O2 -frecursive -c -o spbtf2.o spbtf2.f +gfortran -O2 -frecursive -c -o spbtrf.o spbtrf.f +gfortran -O2 -frecursive -c -o spbtrs.o spbtrs.f +gfortran -O2 -frecursive -c -o spocon.o spocon.f +gfortran -O2 -frecursive -c -o spoequ.o spoequ.f +gfortran -O2 -frecursive -c -o sporfs.o sporfs.f +gfortran -O2 -frecursive -c -o sposv.o sposv.f +gfortran -O2 -frecursive -c -o sposvx.o sposvx.f +gfortran -O2 -frecursive -c -o spotf2.o spotf2.f +gfortran -O2 -frecursive -c -o spotri.o spotri.f +gfortran -O2 -frecursive -c -o spstrf.o spstrf.f +gfortran -O2 -frecursive -c -o spstf2.o spstf2.f +gfortran -O2 -frecursive -c -o sppcon.o sppcon.f +gfortran -O2 -frecursive -c -o sppequ.o sppequ.f +gfortran -O2 -frecursive -c -o spprfs.o spprfs.f +gfortran -O2 -frecursive -c -o sppsv.o sppsv.f +gfortran -O2 -frecursive -c -o sppsvx.o sppsvx.f +gfortran -O2 -frecursive -c -o spptrf.o spptrf.f +gfortran -O2 -frecursive -c -o spptri.o spptri.f +gfortran -O2 -frecursive -c -o spptrs.o spptrs.f +gfortran -O2 -frecursive -c -o sptcon.o sptcon.f +gfortran -O2 -frecursive -c -o spteqr.o spteqr.f +gfortran -O2 -frecursive -c -o sptrfs.o sptrfs.f +gfortran -O2 -frecursive -c -o sptsv.o sptsv.f +gfortran -O2 -frecursive -c -o sptsvx.o sptsvx.f +gfortran -O2 -frecursive -c -o spttrs.o spttrs.f +gfortran -O2 -frecursive -c -o sptts2.o sptts2.f +gfortran -O2 -frecursive -c -o srscl.o srscl.f +gfortran -O2 -frecursive -c -o ssbev.o ssbev.f +gfortran -O2 -frecursive -c -o ssbevd.o ssbevd.f +gfortran -O2 -frecursive -c -o ssbevx.o ssbevx.f +gfortran -O2 -frecursive -c -o ssbgst.o ssbgst.f +gfortran -O2 -frecursive -c -o ssbgv.o ssbgv.f +gfortran -O2 -frecursive -c -o ssbgvd.o ssbgvd.f +gfortran -O2 -frecursive -c -o ssbgvx.o ssbgvx.f +gfortran -O2 -frecursive -c -o ssbtrd.o ssbtrd.f +gfortran -O2 -frecursive -c -o sspcon.o sspcon.f +gfortran -O2 -frecursive -c -o sspev.o sspev.f +gfortran -O2 -frecursive -c -o sspevd.o sspevd.f +gfortran -O2 -frecursive -c -o sspevx.o sspevx.f +gfortran -O2 -frecursive -c -o sspgst.o sspgst.f +gfortran -O2 -frecursive -c -o sspgv.o sspgv.f +gfortran -O2 -frecursive -c -o sspgvd.o sspgvd.f +gfortran -O2 -frecursive -c -o sspgvx.o sspgvx.f +gfortran -O2 -frecursive -c -o ssprfs.o ssprfs.f +gfortran -O2 -frecursive -c -o sspsv.o sspsv.f +gfortran -O2 -frecursive -c -o sspsvx.o sspsvx.f +gfortran -O2 -frecursive -c -o ssptrd.o ssptrd.f +gfortran -O2 -frecursive -c -o ssptrf.o ssptrf.f +gfortran -O2 -frecursive -c -o ssptri.o ssptri.f +gfortran -O2 -frecursive -c -o ssptrs.o ssptrs.f +gfortran -O2 -frecursive -c -o sstegr.o sstegr.f +gfortran -O2 -frecursive -c -o sstein.o sstein.f +gfortran -O2 -frecursive -c -o sstev.o sstev.f +gfortran -O2 -frecursive -c -o sstevd.o sstevd.f +gfortran -O2 -frecursive -c -o sstevr.o sstevr.f +gfortran -O2 -frecursive -c -o sstevx.o sstevx.f +gfortran -O2 -frecursive -c -o ssycon.o ssycon.f +gfortran -O2 -frecursive -c -o ssyev.o ssyev.f +gfortran -O2 -frecursive -c -o ssyevd.o ssyevd.f +gfortran -O2 -frecursive -c -o ssyevr.o ssyevr.f +gfortran -O2 -frecursive -c -o ssyevx.o ssyevx.f +gfortran -O2 -frecursive -c -o ssygs2.o ssygs2.f +gfortran -O2 -frecursive -c -o ssygst.o ssygst.f +gfortran -O2 -frecursive -c -o ssygv.o ssygv.f +gfortran -O2 -frecursive -c -o ssygvd.o ssygvd.f +gfortran -O2 -frecursive -c -o ssygvx.o ssygvx.f +gfortran -O2 -frecursive -c -o ssyrfs.o ssyrfs.f +gfortran -O2 -frecursive -c -o ssysv.o ssysv.f +gfortran -O2 -frecursive -c -o ssysvx.o ssysvx.f +gfortran -O2 -frecursive -c -o ssytd2.o ssytd2.f +gfortran -O2 -frecursive -c -o ssytf2.o ssytf2.f +gfortran -O2 -frecursive -c -o ssytrd.o ssytrd.f +gfortran -O2 -frecursive -c -o ssytrf.o ssytrf.f +gfortran -O2 -frecursive -c -o ssytri.o ssytri.f +gfortran -O2 -frecursive -c -o ssytri2.o ssytri2.f +gfortran -O2 -frecursive -c -o ssytri2x.o ssytri2x.f +gfortran -O2 -frecursive -c -o ssyswapr.o ssyswapr.f +gfortran -O2 -frecursive -c -o ssytrs.o ssytrs.f +gfortran -O2 -frecursive -c -o ssytrs2.o ssytrs2.f +gfortran -O2 -frecursive -c -o ssyconv.o ssyconv.f +gfortran -O2 -frecursive -c -o ssyconvf.o ssyconvf.f +gfortran -O2 -frecursive -c -o ssyconvf_rook.o ssyconvf_rook.f +gfortran -O2 -frecursive -c -o ssytf2_rook.o ssytf2_rook.f +gfortran -O2 -frecursive -c -o ssytrf_rook.o ssytrf_rook.f +gfortran -O2 -frecursive -c -o ssytrs_rook.o ssytrs_rook.f +gfortran -O2 -frecursive -c -o ssytri_rook.o ssytri_rook.f +gfortran -O2 -frecursive -c -o ssycon_rook.o ssycon_rook.f +gfortran -O2 -frecursive -c -o ssysv_rook.o ssysv_rook.f +gfortran -O2 -frecursive -c -o ssytf2_rk.o ssytf2_rk.f +gfortran -O2 -frecursive -c -o ssytrf_rk.o ssytrf_rk.f +gfortran -O2 -frecursive -c -o ssytrs_3.o ssytrs_3.f +gfortran -O2 -frecursive -c -o ssytri_3.o ssytri_3.f +gfortran -O2 -frecursive -c -o ssytri_3x.o ssytri_3x.f +gfortran -O2 -frecursive -c -o ssycon_3.o ssycon_3.f +gfortran -O2 -frecursive -c -o ssysv_rk.o ssysv_rk.f +gfortran -O2 -frecursive -c -o slasyf_aa.o slasyf_aa.f +gfortran -O2 -frecursive -c -o ssysv_aa.o ssysv_aa.f +gfortran -O2 -frecursive -c -o ssytrf_aa.o ssytrf_aa.f +gfortran -O2 -frecursive -c -o ssytrs_aa.o ssytrs_aa.f +gfortran -O2 -frecursive -c -o ssysv_aa_2stage.o ssysv_aa_2stage.f +gfortran -O2 -frecursive -c -o ssytrf_aa_2stage.o ssytrf_aa_2stage.f +gfortran -O2 -frecursive -c -o ssytrs_aa_2stage.o ssytrs_aa_2stage.f +gfortran -O2 -frecursive -c -o stbcon.o stbcon.f +gfortran -O2 -frecursive -c -o stbrfs.o stbrfs.f +gfortran -O2 -frecursive -c -o stbtrs.o stbtrs.f +gfortran -O2 -frecursive -c -o stgevc.o stgevc.f +gfortran -O2 -frecursive -c -o stgex2.o stgex2.f +gfortran -O2 -frecursive -c -o stgexc.o stgexc.f +gfortran -O2 -frecursive -c -o stgsen.o stgsen.f +gfortran -O2 -frecursive -c -o stgsja.o stgsja.f +gfortran -O2 -frecursive -c -o stgsna.o stgsna.f +gfortran -O2 -frecursive -c -o stgsy2.o stgsy2.f +gfortran -O2 -frecursive -c -o stgsyl.o stgsyl.f +gfortran -O2 -frecursive -c -o stpcon.o stpcon.f +gfortran -O2 -frecursive -c -o stprfs.o stprfs.f +gfortran -O2 -frecursive -c -o stptri.o stptri.f +gfortran -O2 -frecursive -c -o stptrs.o stptrs.f +gfortran -O2 -frecursive -c -o strcon.o strcon.f +gfortran -O2 -frecursive -c -o strevc.o strevc.f +gfortran -O2 -frecursive -c -o strevc3.o strevc3.f +gfortran -O2 -frecursive -c -o strexc.o strexc.f +gfortran -O2 -frecursive -c -o strrfs.o strrfs.f +gfortran -O2 -frecursive -c -o strsen.o strsen.f +gfortran -O2 -frecursive -c -o strsna.o strsna.f +gfortran -O2 -frecursive -c -o strsyl.o strsyl.f +gfortran -O2 -frecursive -c -o strsyl3.o strsyl3.f +gfortran -O2 -frecursive -c -o strti2.o strti2.f +gfortran -O2 -frecursive -c -o strtri.o strtri.f +gfortran -O2 -frecursive -c -o strtrs.o strtrs.f +gfortran -O2 -frecursive -c -o stzrzf.o stzrzf.f +gfortran -O2 -frecursive -c -o sstemr.o sstemr.f +gfortran -O2 -frecursive -c -o slansf.o slansf.f +gfortran -O2 -frecursive -c -o spftrf.o spftrf.f +gfortran -O2 -frecursive -c -o spftri.o spftri.f +gfortran -O2 -frecursive -c -o spftrs.o spftrs.f +gfortran -O2 -frecursive -c -o ssfrk.o ssfrk.f +gfortran -O2 -frecursive -c -o stfsm.o stfsm.f +gfortran -O2 -frecursive -c -o stftri.o stftri.f +gfortran -O2 -frecursive -c -o stfttp.o stfttp.f +gfortran -O2 -frecursive -c -o stfttr.o stfttr.f +gfortran -O2 -frecursive -c -o stpttf.o stpttf.f +gfortran -O2 -frecursive -c -o stpttr.o stpttr.f +gfortran -O2 -frecursive -c -o strttf.o strttf.f +gfortran -O2 -frecursive -c -o strttp.o strttp.f +gfortran -O2 -frecursive -c -o sgejsv.o sgejsv.f +gfortran -O2 -frecursive -c -o sgesvj.o sgesvj.f +gfortran -O2 -frecursive -c -o sgsvj0.o sgsvj0.f +gfortran -O2 -frecursive -c -o sgsvj1.o sgsvj1.f +gfortran -O2 -frecursive -c -o sgeequb.o sgeequb.f +gfortran -O2 -frecursive -c -o ssyequb.o ssyequb.f +gfortran -O2 -frecursive -c -o spoequb.o spoequb.f +gfortran -O2 -frecursive -c -o sgbequb.o sgbequb.f +gfortran -O2 -frecursive -c -o sbbcsd.o sbbcsd.f +gfortran -O2 -frecursive -c -o slapmr.o slapmr.f +gfortran -O2 -frecursive -c -o sorbdb.o sorbdb.f +gfortran -O2 -frecursive -c -o sorbdb1.o sorbdb1.f +gfortran -O2 -frecursive -c -o sorbdb2.o sorbdb2.f +gfortran -O2 -frecursive -c -o sorbdb3.o sorbdb3.f +gfortran -O2 -frecursive -c -o sorbdb4.o sorbdb4.f +gfortran -O2 -frecursive -c -o sorbdb5.o sorbdb5.f +gfortran -O2 -frecursive -c -o sorbdb6.o sorbdb6.f +gfortran -O2 -frecursive -c -o sorcsd.o sorcsd.f +gfortran -O2 -frecursive -c -o sorcsd2by1.o sorcsd2by1.f +gfortran -O2 -frecursive -c -o sgeqrt.o sgeqrt.f +gfortran -O2 -frecursive -c -o sgeqrt2.o sgeqrt2.f +gfortran -O2 -frecursive -c -o sgeqrt3.o sgeqrt3.f +gfortran -O2 -frecursive -c -o sgemqrt.o sgemqrt.f +gfortran -O2 -frecursive -c -o stpqrt.o stpqrt.f +gfortran -O2 -frecursive -c -o stpqrt2.o stpqrt2.f +gfortran -O2 -frecursive -c -o stpmqrt.o stpmqrt.f +gfortran -O2 -frecursive -c -o stprfb.o stprfb.f +gfortran -O2 -frecursive -c -o sgelqt.o sgelqt.f +gfortran -O2 -frecursive -c -o sgelqt3.o sgelqt3.f +gfortran -O2 -frecursive -c -o sgemlqt.o sgemlqt.f +gfortran -O2 -frecursive -c -o sgetsls.o sgetsls.f +gfortran -O2 -frecursive -c -o sgetsqrhrt.o sgetsqrhrt.f +gfortran -O2 -frecursive -c -o sgeqr.o sgeqr.f +gfortran -O2 -frecursive -c -o slatsqr.o slatsqr.f +gfortran -O2 -frecursive -c -o slamtsqr.o slamtsqr.f +gfortran -O2 -frecursive -c -o sgemqr.o sgemqr.f +gfortran -O2 -frecursive -c -o sgelq.o sgelq.f +gfortran -O2 -frecursive -c -o slaswlq.o slaswlq.f +gfortran -O2 -frecursive -c -o slamswlq.o slamswlq.f +gfortran -O2 -frecursive -c -o sgemlq.o sgemlq.f +gfortran -O2 -frecursive -c -o stplqt.o stplqt.f +gfortran -O2 -frecursive -c -o stplqt2.o stplqt2.f +gfortran -O2 -frecursive -c -o stpmlqt.o stpmlqt.f +gfortran -O2 -frecursive -c -o sorhr_col.o sorhr_col.f +gfortran -O2 -frecursive -c -o slaorhr_col_getrfnp.o slaorhr_col_getrfnp.f +gfortran -O2 -frecursive -c -o slaorhr_col_getrfnp2.o slaorhr_col_getrfnp2.f +gfortran -O2 -frecursive -c -o ssytrd_2stage.o ssytrd_2stage.f +gfortran -O2 -frecursive -c -o ssytrd_sy2sb.o ssytrd_sy2sb.f +gfortran -O2 -frecursive -c -o ssytrd_sb2st.o ssytrd_sb2st.F +gfortran -O2 -frecursive -c -o ssb2st_kernels.o ssb2st_kernels.f +gfortran -O2 -frecursive -c -o ssyevd_2stage.o ssyevd_2stage.f +gfortran -O2 -frecursive -c -o ssyev_2stage.o ssyev_2stage.f +gfortran -O2 -frecursive -c -o ssyevx_2stage.o ssyevx_2stage.f +gfortran -O2 -frecursive -c -o ssyevr_2stage.o ssyevr_2stage.f +gfortran -O2 -frecursive -c -o ssbev_2stage.o ssbev_2stage.f +gfortran -O2 -frecursive -c -o ssbevx_2stage.o ssbevx_2stage.f +gfortran -O2 -frecursive -c -o ssbevd_2stage.o ssbevd_2stage.f +gfortran -O2 -frecursive -c -o ssygv_2stage.o ssygv_2stage.f +gfortran -O2 -frecursive -c -o sgesvdq.o sgesvdq.f +gfortran -O2 -frecursive -c -o la_constants.o la_constants.f90 +gfortran -O2 -frecursive -c -o dpotrf2.o dpotrf2.f +gfortran -O2 -frecursive -c -o dgetrf2.o dgetrf2.f +gfortran -O2 -frecursive -c -o dbdsvdx.o dbdsvdx.f +gfortran -O2 -frecursive -c -o dgbbrd.o dgbbrd.f +gfortran -O2 -frecursive -c -o dgbcon.o dgbcon.f +gfortran -O2 -frecursive -c -o dgbequ.o dgbequ.f +gfortran -O2 -frecursive -c -o dgbrfs.o dgbrfs.f +gfortran -O2 -frecursive -c -o dgbsv.o dgbsv.f +gfortran -O2 -frecursive -c -o dgbsvx.o dgbsvx.f +gfortran -O2 -frecursive -c -o dgbtf2.o dgbtf2.f +gfortran -O2 -frecursive -c -o dgbtrf.o dgbtrf.f +gfortran -O2 -frecursive -c -o dgbtrs.o dgbtrs.f +gfortran -O2 -frecursive -c -o dgebak.o dgebak.f +gfortran -O2 -frecursive -c -o dgebal.o dgebal.f +gfortran -O2 -frecursive -c -o dgebd2.o dgebd2.f +gfortran -O2 -frecursive -c -o dgebrd.o dgebrd.f +gfortran -O2 -frecursive -c -o dgecon.o dgecon.f +gfortran -O2 -frecursive -c -o dgeequ.o dgeequ.f +gfortran -O2 -frecursive -c -o dgees.o dgees.f +gfortran -O2 -frecursive -c -o dgeesx.o dgeesx.f +gfortran -O2 -frecursive -c -o dgeev.o dgeev.f +gfortran -O2 -frecursive -c -o dgeevx.o dgeevx.f +gfortran -O2 -frecursive -c -o dgehd2.o dgehd2.f +gfortran -O2 -frecursive -c -o dgehrd.o dgehrd.f +gfortran -O2 -frecursive -c -o dgelq2.o dgelq2.f +gfortran -O2 -frecursive -c -o dgelqf.o dgelqf.f +gfortran -O2 -frecursive -c -o dgels.o dgels.f +gfortran -O2 -frecursive -c -o dgelst.o dgelst.f +gfortran -O2 -frecursive -c -o dgelsd.o dgelsd.f +gfortran -O2 -frecursive -c -o dgelss.o dgelss.f +gfortran -O2 -frecursive -c -o dgelsy.o dgelsy.f +gfortran -O2 -frecursive -c -o dgeql2.o dgeql2.f +gfortran -O2 -frecursive -c -o dgeqlf.o dgeqlf.f +gfortran -O2 -frecursive -c -o dgeqp3.o dgeqp3.f +gfortran -O2 -frecursive -c -o dgeqp3rk.o dgeqp3rk.f +gfortran -O2 -frecursive -c -o dgeqr2.o dgeqr2.f +gfortran -O2 -frecursive -c -o dgeqr2p.o dgeqr2p.f +gfortran -O2 -frecursive -c -o dgeqrf.o dgeqrf.f +gfortran -O2 -frecursive -c -o dgeqrfp.o dgeqrfp.f +gfortran -O2 -frecursive -c -o dgerfs.o dgerfs.f +gfortran -O2 -frecursive -c -o dgerq2.o dgerq2.f +gfortran -O2 -frecursive -c -o dgerqf.o dgerqf.f +gfortran -O2 -frecursive -c -o dgesc2.o dgesc2.f +gfortran -O2 -frecursive -c -o dgesdd.o dgesdd.f +gfortran -O2 -frecursive -c -o dgesv.o dgesv.f +gfortran -O2 -frecursive -c -o dgesvd.o dgesvd.f +gfortran -O2 -frecursive -c -o dgesvdx.o dgesvdx.f +gfortran -O2 -frecursive -c -o dgesvx.o dgesvx.f +gfortran -O2 -frecursive -c -o dgetc2.o dgetc2.f +gfortran -O2 -frecursive -c -o dgetf2.o dgetf2.f +gfortran -O2 -frecursive -c -o dgetrf.o dgetrf.f +gfortran -O2 -frecursive -c -o dgetri.o dgetri.f +gfortran -O2 -frecursive -c -o dgetrs.o dgetrs.f +gfortran -O2 -frecursive -c -o dggbak.o dggbak.f +gfortran -O2 -frecursive -c -o dggbal.o dggbal.f +gfortran -O2 -frecursive -c -o dgges.o dgges.f +gfortran -O2 -frecursive -c -o dgges3.o dgges3.f +gfortran -O2 -frecursive -c -o dggesx.o dggesx.f +gfortran -O2 -frecursive -c -o dggev.o dggev.f +gfortran -O2 -frecursive -c -o dggev3.o dggev3.f +gfortran -O2 -frecursive -c -o dggevx.o dggevx.f +gfortran -O2 -frecursive -c -o dggglm.o dggglm.f +gfortran -O2 -frecursive -c -o dgghrd.o dgghrd.f +gfortran -O2 -frecursive -c -o dgghd3.o dgghd3.f +gfortran -O2 -frecursive -c -o dgglse.o dgglse.f +gfortran -O2 -frecursive -c -o dggqrf.o dggqrf.f +gfortran -O2 -frecursive -c -o dggrqf.o dggrqf.f +gfortran -O2 -frecursive -c -o dggsvd3.o dggsvd3.f +gfortran -O2 -frecursive -c -o dggsvp3.o dggsvp3.f +gfortran -O2 -frecursive -c -o dgtcon.o dgtcon.f +gfortran -O2 -frecursive -c -o dgtrfs.o dgtrfs.f +gfortran -O2 -frecursive -c -o dgtsv.o dgtsv.f +gfortran -O2 -frecursive -c -o dgtsvx.o dgtsvx.f +gfortran -O2 -frecursive -c -o dgttrf.o dgttrf.f +gfortran -O2 -frecursive -c -o dgttrs.o dgttrs.f +gfortran -O2 -frecursive -c -o dgtts2.o dgtts2.f +gfortran -O2 -frecursive -c -o dhgeqz.o dhgeqz.f +gfortran -O2 -frecursive -c -o dlaqz0.o dlaqz0.f +gfortran -O2 -frecursive -c -o dlaqz1.o dlaqz1.f +gfortran -O2 -frecursive -c -o dlaqz2.o dlaqz2.f +gfortran -O2 -frecursive -c -o dlaqz3.o dlaqz3.f +gfortran -O2 -frecursive -c -o dlaqz4.o dlaqz4.f +gfortran -O2 -frecursive -c -o dhsein.o dhsein.f +gfortran -O2 -frecursive -c -o dhseqr.o dhseqr.f +gfortran -O2 -frecursive -c -o dlabrd.o dlabrd.f +gfortran -O2 -frecursive -c -o dlacon.o dlacon.f +gfortran -O2 -frecursive -c -o dlacn2.o dlacn2.f +gfortran -O2 -frecursive -c -o dlaein.o dlaein.f +gfortran -O2 -frecursive -c -o dlaexc.o dlaexc.f +gfortran -O2 -frecursive -c -o dlag2.o dlag2.f +gfortran -O2 -frecursive -c -o dlags2.o dlags2.f +gfortran -O2 -frecursive -c -o dlagtm.o dlagtm.f +gfortran -O2 -frecursive -c -o dlagv2.o dlagv2.f +gfortran -O2 -frecursive -c -o dlahqr.o dlahqr.f +gfortran -O2 -frecursive -c -o dlahr2.o dlahr2.f +gfortran -O2 -frecursive -c -o dlaic1.o dlaic1.f +gfortran -O2 -frecursive -c -o dlaln2.o dlaln2.f +gfortran -O2 -frecursive -c -o dlals0.o dlals0.f +gfortran -O2 -frecursive -c -o dlalsa.o dlalsa.f +gfortran -O2 -frecursive -c -o dlalsd.o dlalsd.f +gfortran -O2 -frecursive -c -o dlangb.o dlangb.f +gfortran -O2 -frecursive -c -o dlange.o dlange.f +gfortran -O2 -frecursive -c -o dlangt.o dlangt.f +gfortran -O2 -frecursive -c -o dlanhs.o dlanhs.f +gfortran -O2 -frecursive -c -o dlansb.o dlansb.f +gfortran -O2 -frecursive -c -o dlansp.o dlansp.f +gfortran -O2 -frecursive -c -o dlansy.o dlansy.f +gfortran -O2 -frecursive -c -o dlantb.o dlantb.f +gfortran -O2 -frecursive -c -o dlantp.o dlantp.f +gfortran -O2 -frecursive -c -o dlantr.o dlantr.f +gfortran -O2 -frecursive -c -o dlanv2.o dlanv2.f +gfortran -O2 -frecursive -c -o dlapll.o dlapll.f +gfortran -O2 -frecursive -c -o dlapmt.o dlapmt.f +gfortran -O2 -frecursive -c -o dlaqgb.o dlaqgb.f +gfortran -O2 -frecursive -c -o dlaqge.o dlaqge.f +gfortran -O2 -frecursive -c -o dlaqp2.o dlaqp2.f +gfortran -O2 -frecursive -c -o dlaqps.o dlaqps.f +gfortran -O2 -frecursive -c -o dlaqp2rk.o dlaqp2rk.f +gfortran -O2 -frecursive -c -o dlaqp3rk.o dlaqp3rk.f +gfortran -O2 -frecursive -c -o dlaqsb.o dlaqsb.f +gfortran -O2 -frecursive -c -o dlaqsp.o dlaqsp.f +gfortran -O2 -frecursive -c -o dlaqsy.o dlaqsy.f +gfortran -O2 -frecursive -c -o dlaqr0.o dlaqr0.f +gfortran -O2 -frecursive -c -o dlaqr1.o dlaqr1.f +gfortran -O2 -frecursive -c -o dlaqr2.o dlaqr2.f +gfortran -O2 -frecursive -c -o dlaqr3.o dlaqr3.f +gfortran -O2 -frecursive -c -o dlaqr4.o dlaqr4.f +gfortran -O2 -frecursive -c -o dlaqr5.o dlaqr5.f +gfortran -O2 -frecursive -c -o dlaqtr.o dlaqtr.f +gfortran -O2 -frecursive -c -o dlar1v.o dlar1v.f +gfortran -O2 -frecursive -c -o dlar2v.o dlar2v.f +gfortran -O2 -frecursive -c -o iladlr.o iladlr.f +gfortran -O2 -frecursive -c -o iladlc.o iladlc.f +gfortran -O2 -frecursive -c -o dlarf.o dlarf.f +gfortran -O2 -frecursive -c -o dlarf1.o dlarf1.f +gfortran -O2 -frecursive -c -o dlarfb.o dlarfb.f +gfortran -O2 -frecursive -c -o dlarfb_gett.o dlarfb_gett.f +gfortran -O2 -frecursive -c -o dlarfg.o dlarfg.f +gfortran -O2 -frecursive -c -o dlarfgp.o dlarfgp.f +gfortran -O2 -frecursive -c -o dlarft.o dlarft.f +gfortran -O2 -frecursive -c -o dlarfx.o dlarfx.f +gfortran -O2 -frecursive -c -o dlarfy.o dlarfy.f +gfortran -O2 -frecursive -c -o dlargv.o dlargv.f +gfortran -O2 -frecursive -c -o dlarmm.o dlarmm.f +gfortran -O2 -frecursive -c -o dlarrv.o dlarrv.f +gfortran -O2 -frecursive -c -o dlartv.o dlartv.f +gfortran -O2 -frecursive -c -o dlarz.o dlarz.f +gfortran -O2 -frecursive -c -o dlarzb.o dlarzb.f +gfortran -O2 -frecursive -c -o dlarzt.o dlarzt.f +gfortran -O2 -frecursive -c -o dlaswp.o dlaswp.f +gfortran -O2 -frecursive -c -o dlasy2.o dlasy2.f +gfortran -O2 -frecursive -c -o dlasyf.o dlasyf.f +gfortran -O2 -frecursive -c -o dlasyf_rook.o dlasyf_rook.f +gfortran -O2 -frecursive -c -o dlasyf_rk.o dlasyf_rk.f +gfortran -O2 -frecursive -c -o dlatbs.o dlatbs.f +gfortran -O2 -frecursive -c -o dlatdf.o dlatdf.f +gfortran -O2 -frecursive -c -o dlatps.o dlatps.f +gfortran -O2 -frecursive -c -o dlatrd.o dlatrd.f +gfortran -O2 -frecursive -c -o dlatrs.o dlatrs.f +gfortran -O2 -frecursive -c -o dlatrs3.o dlatrs3.f +gfortran -O2 -frecursive -c -o dlatrz.o dlatrz.f +gfortran -O2 -frecursive -c -o dlauu2.o dlauu2.f +gfortran -O2 -frecursive -c -o dlauum.o dlauum.f +gfortran -O2 -frecursive -c -o dopgtr.o dopgtr.f +gfortran -O2 -frecursive -c -o dopmtr.o dopmtr.f +gfortran -O2 -frecursive -c -o dorg2l.o dorg2l.f +gfortran -O2 -frecursive -c -o dorg2r.o dorg2r.f +gfortran -O2 -frecursive -c -o dorgbr.o dorgbr.f +gfortran -O2 -frecursive -c -o dorghr.o dorghr.f +gfortran -O2 -frecursive -c -o dorgl2.o dorgl2.f +gfortran -O2 -frecursive -c -o dorglq.o dorglq.f +gfortran -O2 -frecursive -c -o dorgql.o dorgql.f +gfortran -O2 -frecursive -c -o dorgqr.o dorgqr.f +gfortran -O2 -frecursive -c -o dorgr2.o dorgr2.f +gfortran -O2 -frecursive -c -o dorgrq.o dorgrq.f +gfortran -O2 -frecursive -c -o dorgtr.o dorgtr.f +gfortran -O2 -frecursive -c -o dorgtsqr.o dorgtsqr.f +gfortran -O2 -frecursive -c -o dorgtsqr_row.o dorgtsqr_row.f +gfortran -O2 -frecursive -c -o dorm2l.o dorm2l.f +gfortran -O2 -frecursive -c -o dorm2r.o dorm2r.f +gfortran -O2 -frecursive -c -o dorm22.o dorm22.f +gfortran -O2 -frecursive -c -o dormbr.o dormbr.f +gfortran -O2 -frecursive -c -o dormhr.o dormhr.f +gfortran -O2 -frecursive -c -o dorml2.o dorml2.f +gfortran -O2 -frecursive -c -o dormlq.o dormlq.f +gfortran -O2 -frecursive -c -o dormql.o dormql.f +gfortran -O2 -frecursive -c -o dormqr.o dormqr.f +gfortran -O2 -frecursive -c -o dormr2.o dormr2.f +gfortran -O2 -frecursive -c -o dormr3.o dormr3.f +gfortran -O2 -frecursive -c -o dormrq.o dormrq.f +gfortran -O2 -frecursive -c -o dormrz.o dormrz.f +gfortran -O2 -frecursive -c -o dormtr.o dormtr.f +gfortran -O2 -frecursive -c -o dpbcon.o dpbcon.f +gfortran -O2 -frecursive -c -o dpbequ.o dpbequ.f +gfortran -O2 -frecursive -c -o dpbrfs.o dpbrfs.f +gfortran -O2 -frecursive -c -o dpbstf.o dpbstf.f +gfortran -O2 -frecursive -c -o dpbsv.o dpbsv.f +gfortran -O2 -frecursive -c -o dpbsvx.o dpbsvx.f +gfortran -O2 -frecursive -c -o dpbtf2.o dpbtf2.f +gfortran -O2 -frecursive -c -o dpbtrf.o dpbtrf.f +gfortran -O2 -frecursive -c -o dpbtrs.o dpbtrs.f +gfortran -O2 -frecursive -c -o dpocon.o dpocon.f +gfortran -O2 -frecursive -c -o dpoequ.o dpoequ.f +gfortran -O2 -frecursive -c -o dporfs.o dporfs.f +gfortran -O2 -frecursive -c -o dposv.o dposv.f +gfortran -O2 -frecursive -c -o dposvx.o dposvx.f +gfortran -O2 -frecursive -c -o dpotf2.o dpotf2.f +gfortran -O2 -frecursive -c -o dpotrf.o dpotrf.f +gfortran -O2 -frecursive -c -o dpotri.o dpotri.f +gfortran -O2 -frecursive -c -o dpotrs.o dpotrs.f +gfortran -O2 -frecursive -c -o dpstrf.o dpstrf.f +gfortran -O2 -frecursive -c -o dpstf2.o dpstf2.f +gfortran -O2 -frecursive -c -o dppcon.o dppcon.f +gfortran -O2 -frecursive -c -o dppequ.o dppequ.f +gfortran -O2 -frecursive -c -o dpprfs.o dpprfs.f +gfortran -O2 -frecursive -c -o dppsv.o dppsv.f +gfortran -O2 -frecursive -c -o dppsvx.o dppsvx.f +gfortran -O2 -frecursive -c -o dpptrf.o dpptrf.f +gfortran -O2 -frecursive -c -o dpptri.o dpptri.f +gfortran -O2 -frecursive -c -o dpptrs.o dpptrs.f +gfortran -O2 -frecursive -c -o dptcon.o dptcon.f +gfortran -O2 -frecursive -c -o dpteqr.o dpteqr.f +gfortran -O2 -frecursive -c -o dptrfs.o dptrfs.f +gfortran -O2 -frecursive -c -o dptsv.o dptsv.f +gfortran -O2 -frecursive -c -o dptsvx.o dptsvx.f +gfortran -O2 -frecursive -c -o dpttrs.o dpttrs.f +gfortran -O2 -frecursive -c -o dptts2.o dptts2.f +gfortran -O2 -frecursive -c -o drscl.o drscl.f +gfortran -O2 -frecursive -c -o dsbev.o dsbev.f +gfortran -O2 -frecursive -c -o dsbevd.o dsbevd.f +gfortran -O2 -frecursive -c -o dsbevx.o dsbevx.f +gfortran -O2 -frecursive -c -o dsbgst.o dsbgst.f +gfortran -O2 -frecursive -c -o dsbgv.o dsbgv.f +gfortran -O2 -frecursive -c -o dsbgvd.o dsbgvd.f +gfortran -O2 -frecursive -c -o dsbgvx.o dsbgvx.f +gfortran -O2 -frecursive -c -o dsbtrd.o dsbtrd.f +gfortran -O2 -frecursive -c -o dspcon.o dspcon.f +gfortran -O2 -frecursive -c -o dspev.o dspev.f +gfortran -O2 -frecursive -c -o dspevd.o dspevd.f +gfortran -O2 -frecursive -c -o dspevx.o dspevx.f +gfortran -O2 -frecursive -c -o dspgst.o dspgst.f +gfortran -O2 -frecursive -c -o dspgv.o dspgv.f +gfortran -O2 -frecursive -c -o dspgvd.o dspgvd.f +gfortran -O2 -frecursive -c -o dspgvx.o dspgvx.f +gfortran -O2 -frecursive -c -o dsprfs.o dsprfs.f +gfortran -O2 -frecursive -c -o dspsv.o dspsv.f +gfortran -O2 -frecursive -c -o dspsvx.o dspsvx.f +gfortran -O2 -frecursive -c -o dsptrd.o dsptrd.f +gfortran -O2 -frecursive -c -o dsptrf.o dsptrf.f +gfortran -O2 -frecursive -c -o dsptri.o dsptri.f +gfortran -O2 -frecursive -c -o dsptrs.o dsptrs.f +gfortran -O2 -frecursive -c -o dstegr.o dstegr.f +gfortran -O2 -frecursive -c -o dstein.o dstein.f +gfortran -O2 -frecursive -c -o dstev.o dstev.f +gfortran -O2 -frecursive -c -o dstevd.o dstevd.f +gfortran -O2 -frecursive -c -o dstevr.o dstevr.f +gfortran -O2 -frecursive -c -o dstevx.o dstevx.f +gfortran -O2 -frecursive -c -o dsycon.o dsycon.f +gfortran -O2 -frecursive -c -o dsyev.o dsyev.f +gfortran -O2 -frecursive -c -o dsyevd.o dsyevd.f +gfortran -O2 -frecursive -c -o dsyevr.o dsyevr.f +gfortran -O2 -frecursive -c -o dsyevx.o dsyevx.f +gfortran -O2 -frecursive -c -o dsygs2.o dsygs2.f +gfortran -O2 -frecursive -c -o dsygst.o dsygst.f +gfortran -O2 -frecursive -c -o dsygv.o dsygv.f +gfortran -O2 -frecursive -c -o dsygvd.o dsygvd.f +gfortran -O2 -frecursive -c -o dsygvx.o dsygvx.f +gfortran -O2 -frecursive -c -o dsyrfs.o dsyrfs.f +gfortran -O2 -frecursive -c -o dsysv.o dsysv.f +gfortran -O2 -frecursive -c -o dsysvx.o dsysvx.f +gfortran -O2 -frecursive -c -o dsytd2.o dsytd2.f +gfortran -O2 -frecursive -c -o dsytf2.o dsytf2.f +gfortran -O2 -frecursive -c -o dsytrd.o dsytrd.f +gfortran -O2 -frecursive -c -o dsytrf.o dsytrf.f +gfortran -O2 -frecursive -c -o dsytri.o dsytri.f +gfortran -O2 -frecursive -c -o dsytri2.o dsytri2.f +gfortran -O2 -frecursive -c -o dsytri2x.o dsytri2x.f +gfortran -O2 -frecursive -c -o dsyswapr.o dsyswapr.f +gfortran -O2 -frecursive -c -o dsytrs.o dsytrs.f +gfortran -O2 -frecursive -c -o dsytrs2.o dsytrs2.f +gfortran -O2 -frecursive -c -o dsyconv.o dsyconv.f +gfortran -O2 -frecursive -c -o dsyconvf.o dsyconvf.f +gfortran -O2 -frecursive -c -o dsyconvf_rook.o dsyconvf_rook.f +gfortran -O2 -frecursive -c -o dsytf2_rook.o dsytf2_rook.f +gfortran -O2 -frecursive -c -o dsytrf_rook.o dsytrf_rook.f +gfortran -O2 -frecursive -c -o dsytrs_rook.o dsytrs_rook.f +gfortran -O2 -frecursive -c -o dsytri_rook.o dsytri_rook.f +gfortran -O2 -frecursive -c -o dsycon_rook.o dsycon_rook.f +gfortran -O2 -frecursive -c -o dsysv_rook.o dsysv_rook.f +gfortran -O2 -frecursive -c -o dsytf2_rk.o dsytf2_rk.f +gfortran -O2 -frecursive -c -o dsytrf_rk.o dsytrf_rk.f +gfortran -O2 -frecursive -c -o dsytrs_3.o dsytrs_3.f +gfortran -O2 -frecursive -c -o dsytri_3.o dsytri_3.f +gfortran -O2 -frecursive -c -o dsytri_3x.o dsytri_3x.f +gfortran -O2 -frecursive -c -o dsycon_3.o dsycon_3.f +gfortran -O2 -frecursive -c -o dsysv_rk.o dsysv_rk.f +gfortran -O2 -frecursive -c -o dlasyf_aa.o dlasyf_aa.f +gfortran -O2 -frecursive -c -o dsysv_aa.o dsysv_aa.f +gfortran -O2 -frecursive -c -o dsytrf_aa.o dsytrf_aa.f +gfortran -O2 -frecursive -c -o dsytrs_aa.o dsytrs_aa.f +gfortran -O2 -frecursive -c -o dsysv_aa_2stage.o dsysv_aa_2stage.f +gfortran -O2 -frecursive -c -o dsytrf_aa_2stage.o dsytrf_aa_2stage.f +gfortran -O2 -frecursive -c -o dsytrs_aa_2stage.o dsytrs_aa_2stage.f +gfortran -O2 -frecursive -c -o dtbcon.o dtbcon.f +gfortran -O2 -frecursive -c -o dtbrfs.o dtbrfs.f +gfortran -O2 -frecursive -c -o dtbtrs.o dtbtrs.f +gfortran -O2 -frecursive -c -o dtgevc.o dtgevc.f +gfortran -O2 -frecursive -c -o dtgex2.o dtgex2.f +gfortran -O2 -frecursive -c -o dtgexc.o dtgexc.f +gfortran -O2 -frecursive -c -o dtgsen.o dtgsen.f +gfortran -O2 -frecursive -c -o dtgsja.o dtgsja.f +gfortran -O2 -frecursive -c -o dtgsna.o dtgsna.f +gfortran -O2 -frecursive -c -o dtgsy2.o dtgsy2.f +gfortran -O2 -frecursive -c -o dtgsyl.o dtgsyl.f +gfortran -O2 -frecursive -c -o dtpcon.o dtpcon.f +gfortran -O2 -frecursive -c -o dtprfs.o dtprfs.f +gfortran -O2 -frecursive -c -o dtptri.o dtptri.f +gfortran -O2 -frecursive -c -o dtptrs.o dtptrs.f +gfortran -O2 -frecursive -c -o dtrcon.o dtrcon.f +gfortran -O2 -frecursive -c -o dtrevc.o dtrevc.f +gfortran -O2 -frecursive -c -o dtrevc3.o dtrevc3.f +gfortran -O2 -frecursive -c -o dtrexc.o dtrexc.f +gfortran -O2 -frecursive -c -o dtrrfs.o dtrrfs.f +gfortran -O2 -frecursive -c -o dtrsen.o dtrsen.f +gfortran -O2 -frecursive -c -o dtrsna.o dtrsna.f +gfortran -O2 -frecursive -c -o dtrsyl.o dtrsyl.f +gfortran -O2 -frecursive -c -o dtrsyl3.o dtrsyl3.f +gfortran -O2 -frecursive -c -o dtrti2.o dtrti2.f +gfortran -O2 -frecursive -c -o dtrtri.o dtrtri.f +gfortran -O2 -frecursive -c -o dtrtrs.o dtrtrs.f +gfortran -O2 -frecursive -c -o dtzrzf.o dtzrzf.f +gfortran -O2 -frecursive -c -o dstemr.o dstemr.f +gfortran -O2 -frecursive -c -o dsgesv.o dsgesv.f +gfortran -O2 -frecursive -c -o dsposv.o dsposv.f +gfortran -O2 -frecursive -c -o dlag2s.o dlag2s.f +gfortran -O2 -frecursive -c -o slag2d.o slag2d.f +gfortran -O2 -frecursive -c -o dlat2s.o dlat2s.f +gfortran -O2 -frecursive -c -o dlansf.o dlansf.f +gfortran -O2 -frecursive -c -o dpftrf.o dpftrf.f +gfortran -O2 -frecursive -c -o dpftri.o dpftri.f +gfortran -O2 -frecursive -c -o dpftrs.o dpftrs.f +gfortran -O2 -frecursive -c -o dsfrk.o dsfrk.f +gfortran -O2 -frecursive -c -o dtfsm.o dtfsm.f +gfortran -O2 -frecursive -c -o dtftri.o dtftri.f +gfortran -O2 -frecursive -c -o dtfttp.o dtfttp.f +gfortran -O2 -frecursive -c -o dtfttr.o dtfttr.f +gfortran -O2 -frecursive -c -o dtpttf.o dtpttf.f +gfortran -O2 -frecursive -c -o dtpttr.o dtpttr.f +gfortran -O2 -frecursive -c -o dtrttf.o dtrttf.f +gfortran -O2 -frecursive -c -o dtrttp.o dtrttp.f +gfortran -O2 -frecursive -c -o dgejsv.o dgejsv.f +gfortran -O2 -frecursive -c -o dgesvj.o dgesvj.f +gfortran -O2 -frecursive -c -o dgsvj0.o dgsvj0.f +gfortran -O2 -frecursive -c -o dgsvj1.o dgsvj1.f +gfortran -O2 -frecursive -c -o dgeequb.o dgeequb.f +gfortran -O2 -frecursive -c -o dsyequb.o dsyequb.f +gfortran -O2 -frecursive -c -o dpoequb.o dpoequb.f +gfortran -O2 -frecursive -c -o dgbequb.o dgbequb.f +gfortran -O2 -frecursive -c -o dbbcsd.o dbbcsd.f +gfortran -O2 -frecursive -c -o dlapmr.o dlapmr.f +gfortran -O2 -frecursive -c -o dorbdb.o dorbdb.f +gfortran -O2 -frecursive -c -o dorbdb1.o dorbdb1.f +gfortran -O2 -frecursive -c -o dorbdb2.o dorbdb2.f +gfortran -O2 -frecursive -c -o dorbdb3.o dorbdb3.f +gfortran -O2 -frecursive -c -o dorbdb4.o dorbdb4.f +gfortran -O2 -frecursive -c -o dorbdb5.o dorbdb5.f +gfortran -O2 -frecursive -c -o dorbdb6.o dorbdb6.f +gfortran -O2 -frecursive -c -o dorcsd.o dorcsd.f +gfortran -O2 -frecursive -c -o dorcsd2by1.o dorcsd2by1.f +gfortran -O2 -frecursive -c -o dgeqrt.o dgeqrt.f +gfortran -O2 -frecursive -c -o dgeqrt2.o dgeqrt2.f +gfortran -O2 -frecursive -c -o dgeqrt3.o dgeqrt3.f +gfortran -O2 -frecursive -c -o dgemqrt.o dgemqrt.f +gfortran -O2 -frecursive -c -o dtpqrt.o dtpqrt.f +gfortran -O2 -frecursive -c -o dtpqrt2.o dtpqrt2.f +gfortran -O2 -frecursive -c -o dtpmqrt.o dtpmqrt.f +gfortran -O2 -frecursive -c -o dtprfb.o dtprfb.f +gfortran -O2 -frecursive -c -o dgelqt.o dgelqt.f +gfortran -O2 -frecursive -c -o dgelqt3.o dgelqt3.f +gfortran -O2 -frecursive -c -o dgemlqt.o dgemlqt.f +gfortran -O2 -frecursive -c -o dgetsls.o dgetsls.f +gfortran -O2 -frecursive -c -o dgetsqrhrt.o dgetsqrhrt.f +gfortran -O2 -frecursive -c -o dgeqr.o dgeqr.f +gfortran -O2 -frecursive -c -o dlatsqr.o dlatsqr.f +gfortran -O2 -frecursive -c -o dlamtsqr.o dlamtsqr.f +gfortran -O2 -frecursive -c -o dgemqr.o dgemqr.f +gfortran -O2 -frecursive -c -o dgelq.o dgelq.f +gfortran -O2 -frecursive -c -o dlaswlq.o dlaswlq.f +gfortran -O2 -frecursive -c -o dlamswlq.o dlamswlq.f +gfortran -O2 -frecursive -c -o dgemlq.o dgemlq.f +gfortran -O2 -frecursive -c -o dtplqt.o dtplqt.f +gfortran -O2 -frecursive -c -o dtplqt2.o dtplqt2.f +gfortran -O2 -frecursive -c -o dtpmlqt.o dtpmlqt.f +gfortran -O2 -frecursive -c -o dorhr_col.o dorhr_col.f +gfortran -O2 -frecursive -c -o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp.f +gfortran -O2 -frecursive -c -o dlaorhr_col_getrfnp2.o dlaorhr_col_getrfnp2.f +gfortran -O2 -frecursive -c -o dsytrd_2stage.o dsytrd_2stage.f +gfortran -O2 -frecursive -c -o dsytrd_sy2sb.o dsytrd_sy2sb.f +gfortran -O2 -frecursive -c -o dsb2st_kernels.o dsb2st_kernels.f +gfortran -O2 -frecursive -c -o dsyevd_2stage.o dsyevd_2stage.f +gfortran -O2 -frecursive -c -o dsyev_2stage.o dsyev_2stage.f +gfortran -O2 -frecursive -c -o dsyevx_2stage.o dsyevx_2stage.f +gfortran -O2 -frecursive -c -o dsyevr_2stage.o dsyevr_2stage.f +gfortran -O2 -frecursive -c -o dsbev_2stage.o dsbev_2stage.f +gfortran -O2 -frecursive -c -o dsbevx_2stage.o dsbevx_2stage.f +gfortran -O2 -frecursive -c -o dsbevd_2stage.o dsbevd_2stage.f +gfortran -O2 -frecursive -c -o dsygv_2stage.o dsygv_2stage.f +gfortran -O2 -frecursive -c -o dgesvdq.o dgesvdq.f +gfortran -O2 -frecursive -c -o spotrs.o spotrs.f +gfortran -O2 -frecursive -c -o sgetrs.o sgetrs.f +gfortran -O2 -frecursive -c -o spotrf.o spotrf.f +gfortran -O2 -frecursive -c -o sgetrf.o sgetrf.f +gfortran -O2 -frecursive -c -o cpotrf2.o cpotrf2.f +gfortran -O2 -frecursive -c -o cgetrf2.o cgetrf2.f +gfortran -O2 -frecursive -c -o cbdsqr.o cbdsqr.f +gfortran -O2 -frecursive -c -o cgbbrd.o cgbbrd.f +gfortran -O2 -frecursive -c -o cgbcon.o cgbcon.f +gfortran -O2 -frecursive -c -o cgbequ.o cgbequ.f +gfortran -O2 -frecursive -c -o cgbrfs.o cgbrfs.f +gfortran -O2 -frecursive -c -o cgbsv.o cgbsv.f +gfortran -O2 -frecursive -c -o cgbsvx.o cgbsvx.f +gfortran -O2 -frecursive -c -o cgbtf2.o cgbtf2.f +gfortran -O2 -frecursive -c -o cgbtrf.o cgbtrf.f +gfortran -O2 -frecursive -c -o cgbtrs.o cgbtrs.f +gfortran -O2 -frecursive -c -o cgebak.o cgebak.f +gfortran -O2 -frecursive -c -o cgebal.o cgebal.f +gfortran -O2 -frecursive -c -o cgebd2.o cgebd2.f +gfortran -O2 -frecursive -c -o cgebrd.o cgebrd.f +gfortran -O2 -frecursive -c -o cgecon.o cgecon.f +gfortran -O2 -frecursive -c -o cgeequ.o cgeequ.f +gfortran -O2 -frecursive -c -o cgees.o cgees.f +gfortran -O2 -frecursive -c -o cgeesx.o cgeesx.f +gfortran -O2 -frecursive -c -o cgeev.o cgeev.f +gfortran -O2 -frecursive -c -o cgeevx.o cgeevx.f +gfortran -O2 -frecursive -c -o cgehd2.o cgehd2.f +gfortran -O2 -frecursive -c -o cgehrd.o cgehrd.f +gfortran -O2 -frecursive -c -o cgelq2.o cgelq2.f +gfortran -O2 -frecursive -c -o cgelqf.o cgelqf.f +gfortran -O2 -frecursive -c -o cgels.o cgels.f +gfortran -O2 -frecursive -c -o cgelst.o cgelst.f +gfortran -O2 -frecursive -c -o cgelsd.o cgelsd.f +gfortran -O2 -frecursive -c -o cgelss.o cgelss.f +gfortran -O2 -frecursive -c -o cgelsy.o cgelsy.f +gfortran -O2 -frecursive -c -o cgeql2.o cgeql2.f +gfortran -O2 -frecursive -c -o cgeqlf.o cgeqlf.f +gfortran -O2 -frecursive -c -o cgeqp3.o cgeqp3.f +gfortran -O2 -frecursive -c -o cgeqp3rk.o cgeqp3rk.f +gfortran -O2 -frecursive -c -o cgeqr2.o cgeqr2.f +gfortran -O2 -frecursive -c -o cgeqr2p.o cgeqr2p.f +gfortran -O2 -frecursive -c -o cgeqrf.o cgeqrf.f +gfortran -O2 -frecursive -c -o cgeqrfp.o cgeqrfp.f +gfortran -O2 -frecursive -c -o cgerfs.o cgerfs.f +gfortran -O2 -frecursive -c -o cgerq2.o cgerq2.f +gfortran -O2 -frecursive -c -o cgerqf.o cgerqf.f +gfortran -O2 -frecursive -c -o cgesc2.o cgesc2.f +gfortran -O2 -frecursive -c -o cgesdd.o cgesdd.f +gfortran -O2 -frecursive -c -o cgesv.o cgesv.f +gfortran -O2 -frecursive -c -o cgesvd.o cgesvd.f +gfortran -O2 -frecursive -c -o cgesvdx.o cgesvdx.f +gfortran -O2 -frecursive -c -o cgesvj.o cgesvj.f +gfortran -O2 -frecursive -c -o cgejsv.o cgejsv.f +gfortran -O2 -frecursive -c -o cgsvj0.o cgsvj0.f +gfortran -O2 -frecursive -c -o cgsvj1.o cgsvj1.f +gfortran -O2 -frecursive -c -o cgesvx.o cgesvx.f +gfortran -O2 -frecursive -c -o cgetc2.o cgetc2.f +gfortran -O2 -frecursive -c -o cgetf2.o cgetf2.f +gfortran -O2 -frecursive -c -o cgetri.o cgetri.f +gfortran -O2 -frecursive -c -o cggbak.o cggbak.f +gfortran -O2 -frecursive -c -o cggbal.o cggbal.f +gfortran -O2 -frecursive -c -o cgges.o cgges.f +gfortran -O2 -frecursive -c -o cgges3.o cgges3.f +gfortran -O2 -frecursive -c -o cggesx.o cggesx.f +gfortran -O2 -frecursive -c -o cggev.o cggev.f +gfortran -O2 -frecursive -c -o cggev3.o cggev3.f +gfortran -O2 -frecursive -c -o cggevx.o cggevx.f +gfortran -O2 -frecursive -c -o cggglm.o cggglm.f +gfortran -O2 -frecursive -c -o cgghrd.o cgghrd.f +gfortran -O2 -frecursive -c -o cgghd3.o cgghd3.f +gfortran -O2 -frecursive -c -o cgglse.o cgglse.f +gfortran -O2 -frecursive -c -o cggqrf.o cggqrf.f +gfortran -O2 -frecursive -c -o cggrqf.o cggrqf.f +gfortran -O2 -frecursive -c -o cggsvd3.o cggsvd3.f +gfortran -O2 -frecursive -c -o cggsvp3.o cggsvp3.f +gfortran -O2 -frecursive -c -o cgtcon.o cgtcon.f +gfortran -O2 -frecursive -c -o cgtrfs.o cgtrfs.f +gfortran -O2 -frecursive -c -o cgtsv.o cgtsv.f +gfortran -O2 -frecursive -c -o cgtsvx.o cgtsvx.f +gfortran -O2 -frecursive -c -o cgttrf.o cgttrf.f +gfortran -O2 -frecursive -c -o cgttrs.o cgttrs.f +gfortran -O2 -frecursive -c -o cgtts2.o cgtts2.f +gfortran -O2 -frecursive -c -o chbev.o chbev.f +gfortran -O2 -frecursive -c -o chbevd.o chbevd.f +gfortran -O2 -frecursive -c -o chbevx.o chbevx.f +gfortran -O2 -frecursive -c -o chbgst.o chbgst.f +gfortran -O2 -frecursive -c -o chbgv.o chbgv.f +gfortran -O2 -frecursive -c -o chbgvd.o chbgvd.f +gfortran -O2 -frecursive -c -o chbgvx.o chbgvx.f +gfortran -O2 -frecursive -c -o chbtrd.o chbtrd.f +gfortran -O2 -frecursive -c -o checon.o checon.f +gfortran -O2 -frecursive -c -o cheev.o cheev.f +gfortran -O2 -frecursive -c -o cheevd.o cheevd.f +gfortran -O2 -frecursive -c -o cheevr.o cheevr.f +gfortran -O2 -frecursive -c -o cheevx.o cheevx.f +gfortran -O2 -frecursive -c -o chegs2.o chegs2.f +gfortran -O2 -frecursive -c -o chegst.o chegst.f +gfortran -O2 -frecursive -c -o chegv.o chegv.f +gfortran -O2 -frecursive -c -o chegvd.o chegvd.f +gfortran -O2 -frecursive -c -o chegvx.o chegvx.f +gfortran -O2 -frecursive -c -o cherfs.o cherfs.f +gfortran -O2 -frecursive -c -o chesv.o chesv.f +gfortran -O2 -frecursive -c -o chesvx.o chesvx.f +gfortran -O2 -frecursive -c -o chetd2.o chetd2.f +gfortran -O2 -frecursive -c -o chetf2.o chetf2.f +gfortran -O2 -frecursive -c -o chetrd.o chetrd.f +gfortran -O2 -frecursive -c -o chetrf.o chetrf.f +gfortran -O2 -frecursive -c -o chetri.o chetri.f +gfortran -O2 -frecursive -c -o chetri2.o chetri2.f +gfortran -O2 -frecursive -c -o chetri2x.o chetri2x.f +gfortran -O2 -frecursive -c -o cheswapr.o cheswapr.f +gfortran -O2 -frecursive -c -o chetrs.o chetrs.f +gfortran -O2 -frecursive -c -o chetrs2.o chetrs2.f +gfortran -O2 -frecursive -c -o chetf2_rook.o chetf2_rook.f +gfortran -O2 -frecursive -c -o chetrf_rook.o chetrf_rook.f +gfortran -O2 -frecursive -c -o chetri_rook.o chetri_rook.f +gfortran -O2 -frecursive -c -o chetrs_rook.o chetrs_rook.f +gfortran -O2 -frecursive -c -o checon_rook.o checon_rook.f +gfortran -O2 -frecursive -c -o chesv_rook.o chesv_rook.f +gfortran -O2 -frecursive -c -o chetf2_rk.o chetf2_rk.f +gfortran -O2 -frecursive -c -o chetrf_rk.o chetrf_rk.f +gfortran -O2 -frecursive -c -o chetri_3.o chetri_3.f +gfortran -O2 -frecursive -c -o chetri_3x.o chetri_3x.f +gfortran -O2 -frecursive -c -o chetrs_3.o chetrs_3.f +gfortran -O2 -frecursive -c -o checon_3.o checon_3.f +gfortran -O2 -frecursive -c -o chesv_rk.o chesv_rk.f +gfortran -O2 -frecursive -c -o chesv_aa.o chesv_aa.f +gfortran -O2 -frecursive -c -o chetrf_aa.o chetrf_aa.f +gfortran -O2 -frecursive -c -o chetrs_aa.o chetrs_aa.f +gfortran -O2 -frecursive -c -o clahef_aa.o clahef_aa.f +gfortran -O2 -frecursive -c -o chesv_aa_2stage.o chesv_aa_2stage.f +gfortran -O2 -frecursive -c -o chetrf_aa_2stage.o chetrf_aa_2stage.f +gfortran -O2 -frecursive -c -o chetrs_aa_2stage.o chetrs_aa_2stage.f +gfortran -O2 -frecursive -c -o chgeqz.o chgeqz.f +gfortran -O2 -frecursive -c -o chpcon.o chpcon.f +gfortran -O2 -frecursive -c -o chpev.o chpev.f +gfortran -O2 -frecursive -c -o chpevd.o chpevd.f +gfortran -O2 -frecursive -c -o claqz0.o claqz0.f +gfortran -O2 -frecursive -c -o claqz1.o claqz1.f +gfortran -O2 -frecursive -c -o claqz2.o claqz2.f +gfortran -O2 -frecursive -c -o claqz3.o claqz3.f +gfortran -O2 -frecursive -c -o chpevx.o chpevx.f +gfortran -O2 -frecursive -c -o chpgst.o chpgst.f +gfortran -O2 -frecursive -c -o chpgv.o chpgv.f +gfortran -O2 -frecursive -c -o chpgvd.o chpgvd.f +gfortran -O2 -frecursive -c -o chpgvx.o chpgvx.f +gfortran -O2 -frecursive -c -o chprfs.o chprfs.f +gfortran -O2 -frecursive -c -o chpsv.o chpsv.f +gfortran -O2 -frecursive -c -o chpsvx.o chpsvx.f +gfortran -O2 -frecursive -c -o chptrd.o chptrd.f +gfortran -O2 -frecursive -c -o chptrf.o chptrf.f +gfortran -O2 -frecursive -c -o chptri.o chptri.f +gfortran -O2 -frecursive -c -o chptrs.o chptrs.f +gfortran -O2 -frecursive -c -o chsein.o chsein.f +gfortran -O2 -frecursive -c -o chseqr.o chseqr.f +gfortran -O2 -frecursive -c -o clabrd.o clabrd.f +gfortran -O2 -frecursive -c -o clacgv.o clacgv.f +gfortran -O2 -frecursive -c -o clacon.o clacon.f +gfortran -O2 -frecursive -c -o clacn2.o clacn2.f +gfortran -O2 -frecursive -c -o clacp2.o clacp2.f +gfortran -O2 -frecursive -c -o clacpy.o clacpy.f +gfortran -O2 -frecursive -c -o clacrm.o clacrm.f +gfortran -O2 -frecursive -c -o clacrt.o clacrt.f +gfortran -O2 -frecursive -c -o cladiv.o cladiv.f +gfortran -O2 -frecursive -c -o claed0.o claed0.f +gfortran -O2 -frecursive -c -o claed7.o claed7.f +gfortran -O2 -frecursive -c -o claed8.o claed8.f +gfortran -O2 -frecursive -c -o claein.o claein.f +gfortran -O2 -frecursive -c -o claesy.o claesy.f +gfortran -O2 -frecursive -c -o claev2.o claev2.f +gfortran -O2 -frecursive -c -o clags2.o clags2.f +gfortran -O2 -frecursive -c -o clagtm.o clagtm.f +gfortran -O2 -frecursive -c -o clahef.o clahef.f +gfortran -O2 -frecursive -c -o clahef_rook.o clahef_rook.f +gfortran -O2 -frecursive -c -o clahef_rk.o clahef_rk.f +gfortran -O2 -frecursive -c -o clahqr.o clahqr.f +gfortran -O2 -frecursive -c -o clahr2.o clahr2.f +gfortran -O2 -frecursive -c -o claic1.o claic1.f +gfortran -O2 -frecursive -c -o clals0.o clals0.f +gfortran -O2 -frecursive -c -o clalsa.o clalsa.f +gfortran -O2 -frecursive -c -o clalsd.o clalsd.f +gfortran -O2 -frecursive -c -o clangb.o clangb.f +gfortran -O2 -frecursive -c -o clange.o clange.f +gfortran -O2 -frecursive -c -o clangt.o clangt.f +gfortran -O2 -frecursive -c -o clanhb.o clanhb.f +gfortran -O2 -frecursive -c -o clanhe.o clanhe.f +gfortran -O2 -frecursive -c -o clanhp.o clanhp.f +gfortran -O2 -frecursive -c -o clanhs.o clanhs.f +gfortran -O2 -frecursive -c -o clanht.o clanht.f +gfortran -O2 -frecursive -c -o clansb.o clansb.f +gfortran -O2 -frecursive -c -o clansp.o clansp.f +gfortran -O2 -frecursive -c -o clansy.o clansy.f +gfortran -O2 -frecursive -c -o clantb.o clantb.f +gfortran -O2 -frecursive -c -o clantp.o clantp.f +gfortran -O2 -frecursive -c -o clantr.o clantr.f +gfortran -O2 -frecursive -c -o clapll.o clapll.f +gfortran -O2 -frecursive -c -o clapmt.o clapmt.f +gfortran -O2 -frecursive -c -o clarcm.o clarcm.f +gfortran -O2 -frecursive -c -o claqgb.o claqgb.f +gfortran -O2 -frecursive -c -o claqge.o claqge.f +gfortran -O2 -frecursive -c -o claqhb.o claqhb.f +gfortran -O2 -frecursive -c -o claqhe.o claqhe.f +gfortran -O2 -frecursive -c -o claqhp.o claqhp.f +gfortran -O2 -frecursive -c -o claqp2.o claqp2.f +gfortran -O2 -frecursive -c -o claqps.o claqps.f +gfortran -O2 -frecursive -c -o claqp2rk.o claqp2rk.f +gfortran -O2 -frecursive -c -o claqp3rk.o claqp3rk.f +gfortran -O2 -frecursive -c -o claqsb.o claqsb.f +gfortran -O2 -frecursive -c -o claqr0.o claqr0.f +gfortran -O2 -frecursive -c -o claqr1.o claqr1.f +gfortran -O2 -frecursive -c -o claqr2.o claqr2.f +gfortran -O2 -frecursive -c -o claqr3.o claqr3.f +gfortran -O2 -frecursive -c -o claqr4.o claqr4.f +gfortran -O2 -frecursive -c -o claqr5.o claqr5.f +gfortran -O2 -frecursive -c -o claqsp.o claqsp.f +gfortran -O2 -frecursive -c -o claqsy.o claqsy.f +gfortran -O2 -frecursive -c -o clar1v.o clar1v.f +gfortran -O2 -frecursive -c -o clar2v.o clar2v.f +gfortran -O2 -frecursive -c -o ilaclr.o ilaclr.f +gfortran -O2 -frecursive -c -o ilaclc.o ilaclc.f +gfortran -O2 -frecursive -c -o clarf.o clarf.f +gfortran -O2 -frecursive -c -o clarfb.o clarfb.f +gfortran -O2 -frecursive -c -o clarfb_gett.o clarfb_gett.f +gfortran -O2 -frecursive -c -o clarfg.o clarfg.f +gfortran -O2 -frecursive -c -o clarft.o clarft.f +gfortran -O2 -frecursive -c -o clarfgp.o clarfgp.f +gfortran -O2 -frecursive -c -o clarfx.o clarfx.f +gfortran -O2 -frecursive -c -o clarfy.o clarfy.f +gfortran -O2 -frecursive -c -o clargv.o clargv.f +gfortran -O2 -frecursive -c -o clarnv.o clarnv.f +gfortran -O2 -frecursive -c -o clarrv.o clarrv.f +gfortran -O2 -frecursive -c -o clartv.o clartv.f +gfortran -O2 -frecursive -c -o clarz.o clarz.f +gfortran -O2 -frecursive -c -o clarzb.o clarzb.f +gfortran -O2 -frecursive -c -o clarzt.o clarzt.f +gfortran -O2 -frecursive -c -o clascl.o clascl.f +gfortran -O2 -frecursive -c -o claset.o claset.f +gfortran -O2 -frecursive -c -o clasr.o clasr.f +gfortran -O2 -frecursive -c -o claswp.o claswp.f +gfortran -O2 -frecursive -c -o clasyf.o clasyf.f +gfortran -O2 -frecursive -c -o clasyf_rook.o clasyf_rook.f +gfortran -O2 -frecursive -c -o clasyf_rk.o clasyf_rk.f +gfortran -O2 -frecursive -c -o clasyf_aa.o clasyf_aa.f +gfortran -O2 -frecursive -c -o clatbs.o clatbs.f +gfortran -O2 -frecursive -c -o clatdf.o clatdf.f +gfortran -O2 -frecursive -c -o clatps.o clatps.f +gfortran -O2 -frecursive -c -o clatrd.o clatrd.f +gfortran -O2 -frecursive -c -o clatrs.o clatrs.f +gfortran -O2 -frecursive -c -o clatrs3.o clatrs3.f +gfortran -O2 -frecursive -c -o clatrz.o clatrz.f +gfortran -O2 -frecursive -c -o clauu2.o clauu2.f +gfortran -O2 -frecursive -c -o clauum.o clauum.f +gfortran -O2 -frecursive -c -o cpbcon.o cpbcon.f +gfortran -O2 -frecursive -c -o cpbequ.o cpbequ.f +gfortran -O2 -frecursive -c -o cpbrfs.o cpbrfs.f +gfortran -O2 -frecursive -c -o cpbstf.o cpbstf.f +gfortran -O2 -frecursive -c -o cpbsv.o cpbsv.f +gfortran -O2 -frecursive -c -o cpbsvx.o cpbsvx.f +gfortran -O2 -frecursive -c -o cpbtf2.o cpbtf2.f +gfortran -O2 -frecursive -c -o cpbtrf.o cpbtrf.f +gfortran -O2 -frecursive -c -o cpbtrs.o cpbtrs.f +gfortran -O2 -frecursive -c -o cpocon.o cpocon.f +gfortran -O2 -frecursive -c -o cpoequ.o cpoequ.f +gfortran -O2 -frecursive -c -o cporfs.o cporfs.f +gfortran -O2 -frecursive -c -o cposv.o cposv.f +gfortran -O2 -frecursive -c -o cposvx.o cposvx.f +gfortran -O2 -frecursive -c -o cpotf2.o cpotf2.f +gfortran -O2 -frecursive -c -o cpotri.o cpotri.f +gfortran -O2 -frecursive -c -o cpstrf.o cpstrf.f +gfortran -O2 -frecursive -c -o cpstf2.o cpstf2.f +gfortran -O2 -frecursive -c -o cppcon.o cppcon.f +gfortran -O2 -frecursive -c -o cppequ.o cppequ.f +gfortran -O2 -frecursive -c -o cpprfs.o cpprfs.f +gfortran -O2 -frecursive -c -o cppsv.o cppsv.f +gfortran -O2 -frecursive -c -o cppsvx.o cppsvx.f +gfortran -O2 -frecursive -c -o cpptrf.o cpptrf.f +gfortran -O2 -frecursive -c -o cpptri.o cpptri.f +gfortran -O2 -frecursive -c -o cpptrs.o cpptrs.f +gfortran -O2 -frecursive -c -o cptcon.o cptcon.f +gfortran -O2 -frecursive -c -o cpteqr.o cpteqr.f +gfortran -O2 -frecursive -c -o cptrfs.o cptrfs.f +gfortran -O2 -frecursive -c -o cptsv.o cptsv.f +gfortran -O2 -frecursive -c -o cptsvx.o cptsvx.f +gfortran -O2 -frecursive -c -o cpttrf.o cpttrf.f +gfortran -O2 -frecursive -c -o cpttrs.o cpttrs.f +gfortran -O2 -frecursive -c -o cptts2.o cptts2.f +gfortran -O2 -frecursive -c -o crot.o crot.f +gfortran -O2 -frecursive -c -o cspcon.o cspcon.f +gfortran -O2 -frecursive -c -o cspmv.o cspmv.f +gfortran -O2 -frecursive -c -o cspr.o cspr.f +gfortran -O2 -frecursive -c -o csprfs.o csprfs.f +gfortran -O2 -frecursive -c -o cspsv.o cspsv.f +gfortran -O2 -frecursive -c -o cspsvx.o cspsvx.f +gfortran -O2 -frecursive -c -o csptrf.o csptrf.f +gfortran -O2 -frecursive -c -o csptri.o csptri.f +gfortran -O2 -frecursive -c -o csptrs.o csptrs.f +gfortran -O2 -frecursive -c -o csrscl.o csrscl.f +gfortran -O2 -frecursive -c -o crscl.o crscl.f +gfortran -O2 -frecursive -c -o cstedc.o cstedc.f +gfortran -O2 -frecursive -c -o cstegr.o cstegr.f +gfortran -O2 -frecursive -c -o cstein.o cstein.f +gfortran -O2 -frecursive -c -o csteqr.o csteqr.f +gfortran -O2 -frecursive -c -o csycon.o csycon.f +gfortran -O2 -frecursive -c -o csymv.o csymv.f +gfortran -O2 -frecursive -c -o csyr.o csyr.f +gfortran -O2 -frecursive -c -o csyrfs.o csyrfs.f +gfortran -O2 -frecursive -c -o csysv.o csysv.f +gfortran -O2 -frecursive -c -o csysvx.o csysvx.f +gfortran -O2 -frecursive -c -o csytf2.o csytf2.f +gfortran -O2 -frecursive -c -o csytrf.o csytrf.f +gfortran -O2 -frecursive -c -o csytri.o csytri.f +gfortran -O2 -frecursive -c -o csytri2.o csytri2.f +gfortran -O2 -frecursive -c -o csytri2x.o csytri2x.f +gfortran -O2 -frecursive -c -o csyswapr.o csyswapr.f +gfortran -O2 -frecursive -c -o csytrs.o csytrs.f +gfortran -O2 -frecursive -c -o csytrs2.o csytrs2.f +gfortran -O2 -frecursive -c -o csyconv.o csyconv.f +gfortran -O2 -frecursive -c -o csyconvf.o csyconvf.f +gfortran -O2 -frecursive -c -o csyconvf_rook.o csyconvf_rook.f +gfortran -O2 -frecursive -c -o csytf2_rook.o csytf2_rook.f +gfortran -O2 -frecursive -c -o csytrf_rook.o csytrf_rook.f +gfortran -O2 -frecursive -c -o csytrs_rook.o csytrs_rook.f +gfortran -O2 -frecursive -c -o csytri_rook.o csytri_rook.f +gfortran -O2 -frecursive -c -o csycon_rook.o csycon_rook.f +gfortran -O2 -frecursive -c -o csysv_rook.o csysv_rook.f +gfortran -O2 -frecursive -c -o csytf2_rk.o csytf2_rk.f +gfortran -O2 -frecursive -c -o csytrf_rk.o csytrf_rk.f +gfortran -O2 -frecursive -c -o csytrf_aa.o csytrf_aa.f +gfortran -O2 -frecursive -c -o csytrs_3.o csytrs_3.f +gfortran -O2 -frecursive -c -o csytrs_aa.o csytrs_aa.f +gfortran -O2 -frecursive -c -o csytri_3.o csytri_3.f +gfortran -O2 -frecursive -c -o csytri_3x.o csytri_3x.f +gfortran -O2 -frecursive -c -o csycon_3.o csycon_3.f +gfortran -O2 -frecursive -c -o csysv_rk.o csysv_rk.f +gfortran -O2 -frecursive -c -o csysv_aa.o csysv_aa.f +gfortran -O2 -frecursive -c -o csysv_aa_2stage.o csysv_aa_2stage.f +gfortran -O2 -frecursive -c -o csytrf_aa_2stage.o csytrf_aa_2stage.f +gfortran -O2 -frecursive -c -o csytrs_aa_2stage.o csytrs_aa_2stage.f +gfortran -O2 -frecursive -c -o ctbcon.o ctbcon.f +gfortran -O2 -frecursive -c -o ctbrfs.o ctbrfs.f +gfortran -O2 -frecursive -c -o ctbtrs.o ctbtrs.f +gfortran -O2 -frecursive -c -o ctgevc.o ctgevc.f +gfortran -O2 -frecursive -c -o ctgex2.o ctgex2.f +gfortran -O2 -frecursive -c -o ctgexc.o ctgexc.f +gfortran -O2 -frecursive -c -o ctgsen.o ctgsen.f +gfortran -O2 -frecursive -c -o ctgsja.o ctgsja.f +gfortran -O2 -frecursive -c -o ctgsna.o ctgsna.f +gfortran -O2 -frecursive -c -o ctgsy2.o ctgsy2.f +gfortran -O2 -frecursive -c -o ctgsyl.o ctgsyl.f +gfortran -O2 -frecursive -c -o ctpcon.o ctpcon.f +gfortran -O2 -frecursive -c -o ctprfs.o ctprfs.f +gfortran -O2 -frecursive -c -o ctptri.o ctptri.f +gfortran -O2 -frecursive -c -o ctptrs.o ctptrs.f +gfortran -O2 -frecursive -c -o ctrcon.o ctrcon.f +gfortran -O2 -frecursive -c -o ctrevc.o ctrevc.f +gfortran -O2 -frecursive -c -o ctrevc3.o ctrevc3.f +gfortran -O2 -frecursive -c -o ctrexc.o ctrexc.f +gfortran -O2 -frecursive -c -o ctrrfs.o ctrrfs.f +gfortran -O2 -frecursive -c -o ctrsen.o ctrsen.f +gfortran -O2 -frecursive -c -o ctrsna.o ctrsna.f +gfortran -O2 -frecursive -c -o ctrsyl.o ctrsyl.f +gfortran -O2 -frecursive -c -o ctrsyl3.o ctrsyl3.f +gfortran -O2 -frecursive -c -o ctrti2.o ctrti2.f +gfortran -O2 -frecursive -c -o ctrtri.o ctrtri.f +gfortran -O2 -frecursive -c -o ctrtrs.o ctrtrs.f +gfortran -O2 -frecursive -c -o ctzrzf.o ctzrzf.f +gfortran -O2 -frecursive -c -o cung2l.o cung2l.f +gfortran -O2 -frecursive -c -o cung2r.o cung2r.f +gfortran -O2 -frecursive -c -o cungbr.o cungbr.f +gfortran -O2 -frecursive -c -o cunghr.o cunghr.f +gfortran -O2 -frecursive -c -o cungl2.o cungl2.f +gfortran -O2 -frecursive -c -o cunglq.o cunglq.f +gfortran -O2 -frecursive -c -o cungql.o cungql.f +gfortran -O2 -frecursive -c -o cungqr.o cungqr.f +gfortran -O2 -frecursive -c -o cungr2.o cungr2.f +gfortran -O2 -frecursive -c -o cungrq.o cungrq.f +gfortran -O2 -frecursive -c -o cungtr.o cungtr.f +gfortran -O2 -frecursive -c -o cungtsqr.o cungtsqr.f +gfortran -O2 -frecursive -c -o cungtsqr_row.o cungtsqr_row.f +gfortran -O2 -frecursive -c -o cunm2l.o cunm2l.f +gfortran -O2 -frecursive -c -o cunm2r.o cunm2r.f +gfortran -O2 -frecursive -c -o cunmbr.o cunmbr.f +gfortran -O2 -frecursive -c -o cunmhr.o cunmhr.f +gfortran -O2 -frecursive -c -o cunml2.o cunml2.f +gfortran -O2 -frecursive -c -o cunm22.o cunm22.f +gfortran -O2 -frecursive -c -o cunmlq.o cunmlq.f +gfortran -O2 -frecursive -c -o cunmql.o cunmql.f +gfortran -O2 -frecursive -c -o cunmqr.o cunmqr.f +gfortran -O2 -frecursive -c -o cunmr2.o cunmr2.f +gfortran -O2 -frecursive -c -o cunmr3.o cunmr3.f +gfortran -O2 -frecursive -c -o cunmrq.o cunmrq.f +gfortran -O2 -frecursive -c -o cunmrz.o cunmrz.f +gfortran -O2 -frecursive -c -o cunmtr.o cunmtr.f +gfortran -O2 -frecursive -c -o cupgtr.o cupgtr.f +gfortran -O2 -frecursive -c -o cupmtr.o cupmtr.f +gfortran -O2 -frecursive -c -o icmax1.o icmax1.f +gfortran -O2 -frecursive -c -o scsum1.o scsum1.f +gfortran -O2 -frecursive -c -o cstemr.o cstemr.f +gfortran -O2 -frecursive -c -o chfrk.o chfrk.f +gfortran -O2 -frecursive -c -o ctfttp.o ctfttp.f +gfortran -O2 -frecursive -c -o clanhf.o clanhf.f +gfortran -O2 -frecursive -c -o cpftrf.o cpftrf.f +gfortran -O2 -frecursive -c -o cpftri.o cpftri.f +gfortran -O2 -frecursive -c -o cpftrs.o cpftrs.f +gfortran -O2 -frecursive -c -o ctfsm.o ctfsm.f +gfortran -O2 -frecursive -c -o ctftri.o ctftri.f +gfortran -O2 -frecursive -c -o ctfttr.o ctfttr.f +gfortran -O2 -frecursive -c -o ctpttf.o ctpttf.f +gfortran -O2 -frecursive -c -o ctpttr.o ctpttr.f +gfortran -O2 -frecursive -c -o ctrttf.o ctrttf.f +gfortran -O2 -frecursive -c -o ctrttp.o ctrttp.f +gfortran -O2 -frecursive -c -o cgeequb.o cgeequb.f +gfortran -O2 -frecursive -c -o cgbequb.o cgbequb.f +gfortran -O2 -frecursive -c -o csyequb.o csyequb.f +gfortran -O2 -frecursive -c -o cpoequb.o cpoequb.f +gfortran -O2 -frecursive -c -o cheequb.o cheequb.f +gfortran -O2 -frecursive -c -o cbbcsd.o cbbcsd.f +gfortran -O2 -frecursive -c -o clapmr.o clapmr.f +gfortran -O2 -frecursive -c -o cunbdb.o cunbdb.f +gfortran -O2 -frecursive -c -o cunbdb1.o cunbdb1.f +gfortran -O2 -frecursive -c -o cunbdb2.o cunbdb2.f +gfortran -O2 -frecursive -c -o cunbdb3.o cunbdb3.f +gfortran -O2 -frecursive -c -o cunbdb4.o cunbdb4.f +gfortran -O2 -frecursive -c -o cunbdb5.o cunbdb5.f +gfortran -O2 -frecursive -c -o cunbdb6.o cunbdb6.f +gfortran -O2 -frecursive -c -o cuncsd.o cuncsd.f +gfortran -O2 -frecursive -c -o cuncsd2by1.o cuncsd2by1.f +gfortran -O2 -frecursive -c -o cgeqrt.o cgeqrt.f +gfortran -O2 -frecursive -c -o cgeqrt2.o cgeqrt2.f +gfortran -O2 -frecursive -c -o cgeqrt3.o cgeqrt3.f +gfortran -O2 -frecursive -c -o cgemqrt.o cgemqrt.f +gfortran -O2 -frecursive -c -o ctpqrt.o ctpqrt.f +gfortran -O2 -frecursive -c -o ctpqrt2.o ctpqrt2.f +gfortran -O2 -frecursive -c -o ctpmqrt.o ctpmqrt.f +gfortran -O2 -frecursive -c -o ctprfb.o ctprfb.f +gfortran -O2 -frecursive -c -o cgelqt.o cgelqt.f +gfortran -O2 -frecursive -c -o cgelqt3.o cgelqt3.f +gfortran -O2 -frecursive -c -o cgemlqt.o cgemlqt.f +gfortran -O2 -frecursive -c -o cgetsls.o cgetsls.f +gfortran -O2 -frecursive -c -o cgetsqrhrt.o cgetsqrhrt.f +gfortran -O2 -frecursive -c -o cgeqr.o cgeqr.f +gfortran -O2 -frecursive -c -o clatsqr.o clatsqr.f +gfortran -O2 -frecursive -c -o clamtsqr.o clamtsqr.f +gfortran -O2 -frecursive -c -o cgemqr.o cgemqr.f +gfortran -O2 -frecursive -c -o cgelq.o cgelq.f +gfortran -O2 -frecursive -c -o claswlq.o claswlq.f +gfortran -O2 -frecursive -c -o clamswlq.o clamswlq.f +gfortran -O2 -frecursive -c -o cgemlq.o cgemlq.f +gfortran -O2 -frecursive -c -o ctplqt.o ctplqt.f +gfortran -O2 -frecursive -c -o ctplqt2.o ctplqt2.f +gfortran -O2 -frecursive -c -o ctpmlqt.o ctpmlqt.f +gfortran -O2 -frecursive -c -o cunhr_col.o cunhr_col.f +gfortran -O2 -frecursive -c -o claunhr_col_getrfnp.o claunhr_col_getrfnp.f +gfortran -O2 -frecursive -c -o claunhr_col_getrfnp2.o claunhr_col_getrfnp2.f +gfortran -O2 -frecursive -c -o chetrd_2stage.o chetrd_2stage.f +gfortran -O2 -frecursive -c -o chetrd_he2hb.o chetrd_he2hb.f +gfortran -O2 -frecursive -c -o chb2st_kernels.o chb2st_kernels.f +gfortran -O2 -frecursive -c -o cheevd_2stage.o cheevd_2stage.f +gfortran -O2 -frecursive -c -o cheev_2stage.o cheev_2stage.f +gfortran -O2 -frecursive -c -o cheevx_2stage.o cheevx_2stage.f +gfortran -O2 -frecursive -c -o cheevr_2stage.o cheevr_2stage.f +gfortran -O2 -frecursive -c -o chbev_2stage.o chbev_2stage.f +gfortran -O2 -frecursive -c -o chbevx_2stage.o chbevx_2stage.f +gfortran -O2 -frecursive -c -o chbevd_2stage.o chbevd_2stage.f +gfortran -O2 -frecursive -c -o chegv_2stage.o chegv_2stage.f +gfortran -O2 -frecursive -c -o cgesvdq.o cgesvdq.f +gfortran -O2 -frecursive -c -o zpotrf2.o zpotrf2.f +gfortran -O2 -frecursive -c -o zgetrf2.o zgetrf2.f +gfortran -O2 -frecursive -c -o zbdsqr.o zbdsqr.f +gfortran -O2 -frecursive -c -o zgbbrd.o zgbbrd.f +gfortran -O2 -frecursive -c -o zgbcon.o zgbcon.f +gfortran -O2 -frecursive -c -o zgbequ.o zgbequ.f +gfortran -O2 -frecursive -c -o zgbrfs.o zgbrfs.f +gfortran -O2 -frecursive -c -o zgbsv.o zgbsv.f +gfortran -O2 -frecursive -c -o zgbsvx.o zgbsvx.f +gfortran -O2 -frecursive -c -o zgbtf2.o zgbtf2.f +gfortran -O2 -frecursive -c -o zgbtrf.o zgbtrf.f +gfortran -O2 -frecursive -c -o zgbtrs.o zgbtrs.f +gfortran -O2 -frecursive -c -o zgebak.o zgebak.f +gfortran -O2 -frecursive -c -o zgebal.o zgebal.f +gfortran -O2 -frecursive -c -o zgebd2.o zgebd2.f +gfortran -O2 -frecursive -c -o zgebrd.o zgebrd.f +gfortran -O2 -frecursive -c -o zgecon.o zgecon.f +gfortran -O2 -frecursive -c -o zgeequ.o zgeequ.f +gfortran -O2 -frecursive -c -o zgees.o zgees.f +gfortran -O2 -frecursive -c -o zgeesx.o zgeesx.f +gfortran -O2 -frecursive -c -o zgeev.o zgeev.f +gfortran -O2 -frecursive -c -o zgeevx.o zgeevx.f +gfortran -O2 -frecursive -c -o zgehd2.o zgehd2.f +gfortran -O2 -frecursive -c -o zgehrd.o zgehrd.f +gfortran -O2 -frecursive -c -o zgelq2.o zgelq2.f +gfortran -O2 -frecursive -c -o zgelqf.o zgelqf.f +gfortran -O2 -frecursive -c -o zgels.o zgels.f +gfortran -O2 -frecursive -c -o zgelst.o zgelst.f +gfortran -O2 -frecursive -c -o zgelsd.o zgelsd.f +gfortran -O2 -frecursive -c -o zgelss.o zgelss.f +gfortran -O2 -frecursive -c -o zgelsy.o zgelsy.f +gfortran -O2 -frecursive -c -o zgeql2.o zgeql2.f +gfortran -O2 -frecursive -c -o zgeqlf.o zgeqlf.f +gfortran -O2 -frecursive -c -o zgeqp3.o zgeqp3.f +gfortran -O2 -frecursive -c -o zgeqp3rk.o zgeqp3rk.f +gfortran -O2 -frecursive -c -o zgeqr2.o zgeqr2.f +gfortran -O2 -frecursive -c -o zgeqr2p.o zgeqr2p.f +gfortran -O2 -frecursive -c -o zgeqrf.o zgeqrf.f +gfortran -O2 -frecursive -c -o zgeqrfp.o zgeqrfp.f +gfortran -O2 -frecursive -c -o zgerfs.o zgerfs.f +gfortran -O2 -frecursive -c -o zgerq2.o zgerq2.f +gfortran -O2 -frecursive -c -o zgerqf.o zgerqf.f +gfortran -O2 -frecursive -c -o zgesc2.o zgesc2.f +gfortran -O2 -frecursive -c -o zgesdd.o zgesdd.f +gfortran -O2 -frecursive -c -o zgesv.o zgesv.f +gfortran -O2 -frecursive -c -o zgesvd.o zgesvd.f +gfortran -O2 -frecursive -c -o zgesvdx.o zgesvdx.f +gfortran -O2 -frecursive -c -o zgesvj.o zgesvj.f +gfortran -O2 -frecursive -c -o zgejsv.o zgejsv.f +gfortran -O2 -frecursive -c -o zgsvj0.o zgsvj0.f +gfortran -O2 -frecursive -c -o zgsvj1.o zgsvj1.f +gfortran -O2 -frecursive -c -o zgesvx.o zgesvx.f +gfortran -O2 -frecursive -c -o zgetc2.o zgetc2.f +gfortran -O2 -frecursive -c -o zgetf2.o zgetf2.f +gfortran -O2 -frecursive -c -o zgetrf.o zgetrf.f +gfortran -O2 -frecursive -c -o zgetri.o zgetri.f +gfortran -O2 -frecursive -c -o zgetrs.o zgetrs.f +gfortran -O2 -frecursive -c -o zggbak.o zggbak.f +gfortran -O2 -frecursive -c -o zggbal.o zggbal.f +gfortran -O2 -frecursive -c -o zgges.o zgges.f +gfortran -O2 -frecursive -c -o zgges3.o zgges3.f +gfortran -O2 -frecursive -c -o zggesx.o zggesx.f +gfortran -O2 -frecursive -c -o zggev.o zggev.f +gfortran -O2 -frecursive -c -o zggev3.o zggev3.f +gfortran -O2 -frecursive -c -o zggevx.o zggevx.f +gfortran -O2 -frecursive -c -o zggglm.o zggglm.f +gfortran -O2 -frecursive -c -o zgghrd.o zgghrd.f +gfortran -O2 -frecursive -c -o zgghd3.o zgghd3.f +gfortran -O2 -frecursive -c -o zgglse.o zgglse.f +gfortran -O2 -frecursive -c -o zggqrf.o zggqrf.f +gfortran -O2 -frecursive -c -o zggrqf.o zggrqf.f +gfortran -O2 -frecursive -c -o zggsvd3.o zggsvd3.f +gfortran -O2 -frecursive -c -o zggsvp3.o zggsvp3.f +gfortran -O2 -frecursive -c -o zgtcon.o zgtcon.f +gfortran -O2 -frecursive -c -o zgtrfs.o zgtrfs.f +gfortran -O2 -frecursive -c -o zgtsv.o zgtsv.f +gfortran -O2 -frecursive -c -o zgtsvx.o zgtsvx.f +gfortran -O2 -frecursive -c -o zgttrf.o zgttrf.f +gfortran -O2 -frecursive -c -o zgttrs.o zgttrs.f +gfortran -O2 -frecursive -c -o zgtts2.o zgtts2.f +gfortran -O2 -frecursive -c -o zhbev.o zhbev.f +gfortran -O2 -frecursive -c -o zhbevd.o zhbevd.f +gfortran -O2 -frecursive -c -o zhbevx.o zhbevx.f +gfortran -O2 -frecursive -c -o zhbgst.o zhbgst.f +gfortran -O2 -frecursive -c -o zhbgv.o zhbgv.f +gfortran -O2 -frecursive -c -o zhbgvd.o zhbgvd.f +gfortran -O2 -frecursive -c -o zhbgvx.o zhbgvx.f +gfortran -O2 -frecursive -c -o zhbtrd.o zhbtrd.f +gfortran -O2 -frecursive -c -o zhecon.o zhecon.f +gfortran -O2 -frecursive -c -o zheev.o zheev.f +gfortran -O2 -frecursive -c -o zheevd.o zheevd.f +gfortran -O2 -frecursive -c -o zheevr.o zheevr.f +gfortran -O2 -frecursive -c -o zheevx.o zheevx.f +gfortran -O2 -frecursive -c -o zhegs2.o zhegs2.f +gfortran -O2 -frecursive -c -o zhegst.o zhegst.f +gfortran -O2 -frecursive -c -o zhegv.o zhegv.f +gfortran -O2 -frecursive -c -o zhegvd.o zhegvd.f +gfortran -O2 -frecursive -c -o zhegvx.o zhegvx.f +gfortran -O2 -frecursive -c -o zherfs.o zherfs.f +gfortran -O2 -frecursive -c -o zhesv.o zhesv.f +gfortran -O2 -frecursive -c -o zhesvx.o zhesvx.f +gfortran -O2 -frecursive -c -o zhetd2.o zhetd2.f +gfortran -O2 -frecursive -c -o zhetf2.o zhetf2.f +gfortran -O2 -frecursive -c -o zhetrd.o zhetrd.f +gfortran -O2 -frecursive -c -o zhetrf.o zhetrf.f +gfortran -O2 -frecursive -c -o zhetri.o zhetri.f +gfortran -O2 -frecursive -c -o zhetri2.o zhetri2.f +gfortran -O2 -frecursive -c -o zhetri2x.o zhetri2x.f +gfortran -O2 -frecursive -c -o zheswapr.o zheswapr.f +gfortran -O2 -frecursive -c -o zhetrs.o zhetrs.f +gfortran -O2 -frecursive -c -o zhetrs2.o zhetrs2.f +gfortran -O2 -frecursive -c -o zhetf2_rook.o zhetf2_rook.f +gfortran -O2 -frecursive -c -o zhetrf_rook.o zhetrf_rook.f +gfortran -O2 -frecursive -c -o zhetri_rook.o zhetri_rook.f +gfortran -O2 -frecursive -c -o zhetrs_rook.o zhetrs_rook.f +gfortran -O2 -frecursive -c -o zhecon_rook.o zhecon_rook.f +gfortran -O2 -frecursive -c -o zhesv_rook.o zhesv_rook.f +gfortran -O2 -frecursive -c -o zhetf2_rk.o zhetf2_rk.f +gfortran -O2 -frecursive -c -o zhetrf_rk.o zhetrf_rk.f +gfortran -O2 -frecursive -c -o zhetri_3.o zhetri_3.f +gfortran -O2 -frecursive -c -o zhetri_3x.o zhetri_3x.f +gfortran -O2 -frecursive -c -o zhetrs_3.o zhetrs_3.f +gfortran -O2 -frecursive -c -o zhecon_3.o zhecon_3.f +gfortran -O2 -frecursive -c -o zhesv_rk.o zhesv_rk.f +gfortran -O2 -frecursive -c -o zhesv_aa.o zhesv_aa.f +gfortran -O2 -frecursive -c -o zhetrf_aa.o zhetrf_aa.f +gfortran -O2 -frecursive -c -o zhetrs_aa.o zhetrs_aa.f +gfortran -O2 -frecursive -c -o zlahef_aa.o zlahef_aa.f +gfortran -O2 -frecursive -c -o zhesv_aa_2stage.o zhesv_aa_2stage.f +gfortran -O2 -frecursive -c -o zhetrf_aa_2stage.o zhetrf_aa_2stage.f +gfortran -O2 -frecursive -c -o zhetrs_aa_2stage.o zhetrs_aa_2stage.f +gfortran -O2 -frecursive -c -o zhgeqz.o zhgeqz.f +gfortran -O2 -frecursive -c -o zhpcon.o zhpcon.f +gfortran -O2 -frecursive -c -o zhpev.o zhpev.f +gfortran -O2 -frecursive -c -o zhpevd.o zhpevd.f +gfortran -O2 -frecursive -c -o zlaqz0.o zlaqz0.f +gfortran -O2 -frecursive -c -o zlaqz1.o zlaqz1.f +gfortran -O2 -frecursive -c -o zlaqz2.o zlaqz2.f +gfortran -O2 -frecursive -c -o zlaqz3.o zlaqz3.f +gfortran -O2 -frecursive -c -o zhpevx.o zhpevx.f +gfortran -O2 -frecursive -c -o zhpgst.o zhpgst.f +gfortran -O2 -frecursive -c -o zhpgv.o zhpgv.f +gfortran -O2 -frecursive -c -o zhpgvd.o zhpgvd.f +gfortran -O2 -frecursive -c -o zhpgvx.o zhpgvx.f +gfortran -O2 -frecursive -c -o zhprfs.o zhprfs.f +gfortran -O2 -frecursive -c -o zhpsv.o zhpsv.f +gfortran -O2 -frecursive -c -o zhpsvx.o zhpsvx.f +gfortran -O2 -frecursive -c -o zhptrd.o zhptrd.f +gfortran -O2 -frecursive -c -o zhptrf.o zhptrf.f +gfortran -O2 -frecursive -c -o zhptri.o zhptri.f +gfortran -O2 -frecursive -c -o zhptrs.o zhptrs.f +gfortran -O2 -frecursive -c -o zhsein.o zhsein.f +gfortran -O2 -frecursive -c -o zhseqr.o zhseqr.f +gfortran -O2 -frecursive -c -o zlabrd.o zlabrd.f +gfortran -O2 -frecursive -c -o zlacgv.o zlacgv.f +gfortran -O2 -frecursive -c -o zlacon.o zlacon.f +gfortran -O2 -frecursive -c -o zlacn2.o zlacn2.f +gfortran -O2 -frecursive -c -o zlacp2.o zlacp2.f +gfortran -O2 -frecursive -c -o zlacpy.o zlacpy.f +gfortran -O2 -frecursive -c -o zlacrm.o zlacrm.f +gfortran -O2 -frecursive -c -o zlacrt.o zlacrt.f +gfortran -O2 -frecursive -c -o zladiv.o zladiv.f +gfortran -O2 -frecursive -c -o zlaed0.o zlaed0.f +gfortran -O2 -frecursive -c -o zlaed7.o zlaed7.f +gfortran -O2 -frecursive -c -o zlaed8.o zlaed8.f +gfortran -O2 -frecursive -c -o zlaein.o zlaein.f +gfortran -O2 -frecursive -c -o zlaesy.o zlaesy.f +gfortran -O2 -frecursive -c -o zlaev2.o zlaev2.f +gfortran -O2 -frecursive -c -o zlags2.o zlags2.f +gfortran -O2 -frecursive -c -o zlagtm.o zlagtm.f +gfortran -O2 -frecursive -c -o zlahef.o zlahef.f +gfortran -O2 -frecursive -c -o zlahef_rook.o zlahef_rook.f +gfortran -O2 -frecursive -c -o zlahef_rk.o zlahef_rk.f +gfortran -O2 -frecursive -c -o zlahqr.o zlahqr.f +gfortran -O2 -frecursive -c -o zlahr2.o zlahr2.f +gfortran -O2 -frecursive -c -o zlaic1.o zlaic1.f +gfortran -O2 -frecursive -c -o zlals0.o zlals0.f +gfortran -O2 -frecursive -c -o zlalsa.o zlalsa.f +gfortran -O2 -frecursive -c -o zlalsd.o zlalsd.f +gfortran -O2 -frecursive -c -o zlangb.o zlangb.f +gfortran -O2 -frecursive -c -o zlange.o zlange.f +gfortran -O2 -frecursive -c -o zlangt.o zlangt.f +gfortran -O2 -frecursive -c -o zlanhb.o zlanhb.f +gfortran -O2 -frecursive -c -o zlanhe.o zlanhe.f +gfortran -O2 -frecursive -c -o zlanhp.o zlanhp.f +gfortran -O2 -frecursive -c -o zlanhs.o zlanhs.f +gfortran -O2 -frecursive -c -o zlanht.o zlanht.f +gfortran -O2 -frecursive -c -o zlansb.o zlansb.f +gfortran -O2 -frecursive -c -o zlansp.o zlansp.f +gfortran -O2 -frecursive -c -o zlansy.o zlansy.f +gfortran -O2 -frecursive -c -o zlantb.o zlantb.f +gfortran -O2 -frecursive -c -o zlantp.o zlantp.f +gfortran -O2 -frecursive -c -o zlantr.o zlantr.f +gfortran -O2 -frecursive -c -o zlapll.o zlapll.f +gfortran -O2 -frecursive -c -o zlapmt.o zlapmt.f +gfortran -O2 -frecursive -c -o zlaqgb.o zlaqgb.f +gfortran -O2 -frecursive -c -o zlaqge.o zlaqge.f +gfortran -O2 -frecursive -c -o zlaqhb.o zlaqhb.f +gfortran -O2 -frecursive -c -o zlaqhe.o zlaqhe.f +gfortran -O2 -frecursive -c -o zlaqhp.o zlaqhp.f +gfortran -O2 -frecursive -c -o zlaqp2.o zlaqp2.f +gfortran -O2 -frecursive -c -o zlaqps.o zlaqps.f +gfortran -O2 -frecursive -c -o zlaqp2rk.o zlaqp2rk.f +gfortran -O2 -frecursive -c -o zlaqp3rk.o zlaqp3rk.f +gfortran -O2 -frecursive -c -o zlaqsb.o zlaqsb.f +gfortran -O2 -frecursive -c -o zlaqr0.o zlaqr0.f +gfortran -O2 -frecursive -c -o zlaqr1.o zlaqr1.f +gfortran -O2 -frecursive -c -o zlaqr2.o zlaqr2.f +gfortran -O2 -frecursive -c -o zlaqr3.o zlaqr3.f +gfortran -O2 -frecursive -c -o zlaqr4.o zlaqr4.f +gfortran -O2 -frecursive -c -o zlaqr5.o zlaqr5.f +gfortran -O2 -frecursive -c -o zlaqsp.o zlaqsp.f +gfortran -O2 -frecursive -c -o zlaqsy.o zlaqsy.f +gfortran -O2 -frecursive -c -o zlar1v.o zlar1v.f +gfortran -O2 -frecursive -c -o zlar2v.o zlar2v.f +gfortran -O2 -frecursive -c -o ilazlr.o ilazlr.f +gfortran -O2 -frecursive -c -o ilazlc.o ilazlc.f +gfortran -O2 -frecursive -c -o zlarcm.o zlarcm.f +gfortran -O2 -frecursive -c -o zlarf.o zlarf.f +gfortran -O2 -frecursive -c -o zlarfb.o zlarfb.f +gfortran -O2 -frecursive -c -o zlarfb_gett.o zlarfb_gett.f +gfortran -O2 -frecursive -c -o zlarfg.o zlarfg.f +gfortran -O2 -frecursive -c -o zlarft.o zlarft.f +gfortran -O2 -frecursive -c -o zlarfgp.o zlarfgp.f +gfortran -O2 -frecursive -c -o zlarfx.o zlarfx.f +gfortran -O2 -frecursive -c -o zlarfy.o zlarfy.f +gfortran -O2 -frecursive -c -o zlargv.o zlargv.f +gfortran -O2 -frecursive -c -o zlarnv.o zlarnv.f +gfortran -O2 -frecursive -c -o zlarrv.o zlarrv.f +gfortran -O2 -frecursive -c -o zlartv.o zlartv.f +gfortran -O2 -frecursive -c -o zlarz.o zlarz.f +gfortran -O2 -frecursive -c -o zlarzb.o zlarzb.f +gfortran -O2 -frecursive -c -o zlarzt.o zlarzt.f +gfortran -O2 -frecursive -c -o zlascl.o zlascl.f +gfortran -O2 -frecursive -c -o zlaset.o zlaset.f +gfortran -O2 -frecursive -c -o zlasr.o zlasr.f +gfortran -O2 -frecursive -c -o zlaswp.o zlaswp.f +gfortran -O2 -frecursive -c -o zlasyf.o zlasyf.f +gfortran -O2 -frecursive -c -o zlasyf_rook.o zlasyf_rook.f +gfortran -O2 -frecursive -c -o zlasyf_rk.o zlasyf_rk.f +gfortran -O2 -frecursive -c -o zlasyf_aa.o zlasyf_aa.f +gfortran -O2 -frecursive -c -o zlatbs.o zlatbs.f +gfortran -O2 -frecursive -c -o zlatdf.o zlatdf.f +gfortran -O2 -frecursive -c -o zlatps.o zlatps.f +gfortran -O2 -frecursive -c -o zlatrd.o zlatrd.f +gfortran -O2 -frecursive -c -o zlatrs.o zlatrs.f +gfortran -O2 -frecursive -c -o zlatrs3.o zlatrs3.f +gfortran -O2 -frecursive -c -o zlatrz.o zlatrz.f +gfortran -O2 -frecursive -c -o zlauu2.o zlauu2.f +gfortran -O2 -frecursive -c -o zlauum.o zlauum.f +gfortran -O2 -frecursive -c -o zpbcon.o zpbcon.f +gfortran -O2 -frecursive -c -o zpbequ.o zpbequ.f +gfortran -O2 -frecursive -c -o zpbrfs.o zpbrfs.f +gfortran -O2 -frecursive -c -o zpbstf.o zpbstf.f +gfortran -O2 -frecursive -c -o zpbsv.o zpbsv.f +gfortran -O2 -frecursive -c -o zpbsvx.o zpbsvx.f +gfortran -O2 -frecursive -c -o zpbtf2.o zpbtf2.f +gfortran -O2 -frecursive -c -o zpbtrf.o zpbtrf.f +gfortran -O2 -frecursive -c -o zpbtrs.o zpbtrs.f +gfortran -O2 -frecursive -c -o zpocon.o zpocon.f +gfortran -O2 -frecursive -c -o zpoequ.o zpoequ.f +gfortran -O2 -frecursive -c -o zporfs.o zporfs.f +gfortran -O2 -frecursive -c -o zposv.o zposv.f +gfortran -O2 -frecursive -c -o zposvx.o zposvx.f +gfortran -O2 -frecursive -c -o zpotf2.o zpotf2.f +gfortran -O2 -frecursive -c -o zpotrf.o zpotrf.f +gfortran -O2 -frecursive -c -o zpotri.o zpotri.f +gfortran -O2 -frecursive -c -o zpotrs.o zpotrs.f +gfortran -O2 -frecursive -c -o zpstrf.o zpstrf.f +gfortran -O2 -frecursive -c -o zpstf2.o zpstf2.f +gfortran -O2 -frecursive -c -o zppcon.o zppcon.f +gfortran -O2 -frecursive -c -o zppequ.o zppequ.f +gfortran -O2 -frecursive -c -o zpprfs.o zpprfs.f +gfortran -O2 -frecursive -c -o zppsv.o zppsv.f +gfortran -O2 -frecursive -c -o zppsvx.o zppsvx.f +gfortran -O2 -frecursive -c -o zpptrf.o zpptrf.f +gfortran -O2 -frecursive -c -o zpptri.o zpptri.f +gfortran -O2 -frecursive -c -o zpptrs.o zpptrs.f +gfortran -O2 -frecursive -c -o zptcon.o zptcon.f +gfortran -O2 -frecursive -c -o zpteqr.o zpteqr.f +gfortran -O2 -frecursive -c -o zptrfs.o zptrfs.f +gfortran -O2 -frecursive -c -o zptsv.o zptsv.f +gfortran -O2 -frecursive -c -o zptsvx.o zptsvx.f +gfortran -O2 -frecursive -c -o zpttrf.o zpttrf.f +gfortran -O2 -frecursive -c -o zpttrs.o zpttrs.f +gfortran -O2 -frecursive -c -o zptts2.o zptts2.f +gfortran -O2 -frecursive -c -o zrot.o zrot.f +gfortran -O2 -frecursive -c -o zspcon.o zspcon.f +gfortran -O2 -frecursive -c -o zspmv.o zspmv.f +gfortran -O2 -frecursive -c -o zspr.o zspr.f +gfortran -O2 -frecursive -c -o zsprfs.o zsprfs.f +gfortran -O2 -frecursive -c -o zspsv.o zspsv.f +gfortran -O2 -frecursive -c -o zspsvx.o zspsvx.f +gfortran -O2 -frecursive -c -o zsptrf.o zsptrf.f +gfortran -O2 -frecursive -c -o zsptri.o zsptri.f +gfortran -O2 -frecursive -c -o zsptrs.o zsptrs.f +gfortran -O2 -frecursive -c -o zdrscl.o zdrscl.f +gfortran -O2 -frecursive -c -o zrscl.o zrscl.f +gfortran -O2 -frecursive -c -o zstedc.o zstedc.f +gfortran -O2 -frecursive -c -o zstegr.o zstegr.f +gfortran -O2 -frecursive -c -o zstein.o zstein.f +gfortran -O2 -frecursive -c -o zsteqr.o zsteqr.f +gfortran -O2 -frecursive -c -o zsycon.o zsycon.f +gfortran -O2 -frecursive -c -o zsymv.o zsymv.f +gfortran -O2 -frecursive -c -o zsyr.o zsyr.f +gfortran -O2 -frecursive -c -o zsyrfs.o zsyrfs.f +gfortran -O2 -frecursive -c -o zsysv.o zsysv.f +gfortran -O2 -frecursive -c -o zsysvx.o zsysvx.f +gfortran -O2 -frecursive -c -o zsytf2.o zsytf2.f +gfortran -O2 -frecursive -c -o zsytrf.o zsytrf.f +gfortran -O2 -frecursive -c -o zsytri.o zsytri.f +gfortran -O2 -frecursive -c -o zsytri2.o zsytri2.f +gfortran -O2 -frecursive -c -o zsytri2x.o zsytri2x.f +gfortran -O2 -frecursive -c -o zsyswapr.o zsyswapr.f +gfortran -O2 -frecursive -c -o zsytrs.o zsytrs.f +gfortran -O2 -frecursive -c -o zsytrs2.o zsytrs2.f +gfortran -O2 -frecursive -c -o zsyconv.o zsyconv.f +gfortran -O2 -frecursive -c -o zsyconvf.o zsyconvf.f +gfortran -O2 -frecursive -c -o zsyconvf_rook.o zsyconvf_rook.f +gfortran -O2 -frecursive -c -o zsytf2_rook.o zsytf2_rook.f +gfortran -O2 -frecursive -c -o zsytrf_rook.o zsytrf_rook.f +gfortran -O2 -frecursive -c -o zsytrs_rook.o zsytrs_rook.f +gfortran -O2 -frecursive -c -o zsytrs_aa.o zsytrs_aa.f +gfortran -O2 -frecursive -c -o zsytri_rook.o zsytri_rook.f +gfortran -O2 -frecursive -c -o zsycon_rook.o zsycon_rook.f +gfortran -O2 -frecursive -c -o zsysv_rook.o zsysv_rook.f +gfortran -O2 -frecursive -c -o zsysv_aa_2stage.o zsysv_aa_2stage.f +gfortran -O2 -frecursive -c -o zsytrf_aa_2stage.o zsytrf_aa_2stage.f +gfortran -O2 -frecursive -c -o zsytrs_aa_2stage.o zsytrs_aa_2stage.f +gfortran -O2 -frecursive -c -o zsytf2_rk.o zsytf2_rk.f +gfortran -O2 -frecursive -c -o zsytrf_rk.o zsytrf_rk.f +gfortran -O2 -frecursive -c -o zsytrf_aa.o zsytrf_aa.f +gfortran -O2 -frecursive -c -o zsytrs_3.o zsytrs_3.f +gfortran -O2 -frecursive -c -o zsytri_3.o zsytri_3.f +gfortran -O2 -frecursive -c -o zsytri_3x.o zsytri_3x.f +gfortran -O2 -frecursive -c -o zsycon_3.o zsycon_3.f +gfortran -O2 -frecursive -c -o zsysv_rk.o zsysv_rk.f +gfortran -O2 -frecursive -c -o zsysv_aa.o zsysv_aa.f +gfortran -O2 -frecursive -c -o ztbcon.o ztbcon.f +gfortran -O2 -frecursive -c -o ztbrfs.o ztbrfs.f +gfortran -O2 -frecursive -c -o ztbtrs.o ztbtrs.f +gfortran -O2 -frecursive -c -o ztgevc.o ztgevc.f +gfortran -O2 -frecursive -c -o ztgex2.o ztgex2.f +gfortran -O2 -frecursive -c -o ztgexc.o ztgexc.f +gfortran -O2 -frecursive -c -o ztgsen.o ztgsen.f +gfortran -O2 -frecursive -c -o ztgsja.o ztgsja.f +gfortran -O2 -frecursive -c -o ztgsna.o ztgsna.f +gfortran -O2 -frecursive -c -o ztgsy2.o ztgsy2.f +gfortran -O2 -frecursive -c -o ztgsyl.o ztgsyl.f +gfortran -O2 -frecursive -c -o ztpcon.o ztpcon.f +gfortran -O2 -frecursive -c -o ztprfs.o ztprfs.f +gfortran -O2 -frecursive -c -o ztptri.o ztptri.f +gfortran -O2 -frecursive -c -o ztptrs.o ztptrs.f +gfortran -O2 -frecursive -c -o ztrcon.o ztrcon.f +gfortran -O2 -frecursive -c -o ztrevc.o ztrevc.f +gfortran -O2 -frecursive -c -o ztrevc3.o ztrevc3.f +gfortran -O2 -frecursive -c -o ztrexc.o ztrexc.f +gfortran -O2 -frecursive -c -o ztrrfs.o ztrrfs.f +gfortran -O2 -frecursive -c -o ztrsen.o ztrsen.f +gfortran -O2 -frecursive -c -o ztrsna.o ztrsna.f +gfortran -O2 -frecursive -c -o ztrsyl.o ztrsyl.f +gfortran -O2 -frecursive -c -o ztrsyl3.o ztrsyl3.f +gfortran -O2 -frecursive -c -o ztrti2.o ztrti2.f +gfortran -O2 -frecursive -c -o ztrtri.o ztrtri.f +gfortran -O2 -frecursive -c -o ztrtrs.o ztrtrs.f +gfortran -O2 -frecursive -c -o ztzrzf.o ztzrzf.f +gfortran -O2 -frecursive -c -o zung2l.o zung2l.f +gfortran -O2 -frecursive -c -o zung2r.o zung2r.f +gfortran -O2 -frecursive -c -o zungbr.o zungbr.f +gfortran -O2 -frecursive -c -o zunghr.o zunghr.f +gfortran -O2 -frecursive -c -o zungl2.o zungl2.f +gfortran -O2 -frecursive -c -o zunglq.o zunglq.f +gfortran -O2 -frecursive -c -o zungql.o zungql.f +gfortran -O2 -frecursive -c -o zungqr.o zungqr.f +gfortran -O2 -frecursive -c -o zungr2.o zungr2.f +gfortran -O2 -frecursive -c -o zungrq.o zungrq.f +gfortran -O2 -frecursive -c -o zungtr.o zungtr.f +gfortran -O2 -frecursive -c -o zungtsqr.o zungtsqr.f +gfortran -O2 -frecursive -c -o zungtsqr_row.o zungtsqr_row.f +gfortran -O2 -frecursive -c -o zunm2l.o zunm2l.f +gfortran -O2 -frecursive -c -o zunm2r.o zunm2r.f +gfortran -O2 -frecursive -c -o zunmbr.o zunmbr.f +gfortran -O2 -frecursive -c -o zunmhr.o zunmhr.f +gfortran -O2 -frecursive -c -o zunml2.o zunml2.f +gfortran -O2 -frecursive -c -o zunm22.o zunm22.f +gfortran -O2 -frecursive -c -o zunmlq.o zunmlq.f +gfortran -O2 -frecursive -c -o zunmql.o zunmql.f +gfortran -O2 -frecursive -c -o zunmqr.o zunmqr.f +gfortran -O2 -frecursive -c -o zunmr2.o zunmr2.f +gfortran -O2 -frecursive -c -o zunmr3.o zunmr3.f +gfortran -O2 -frecursive -c -o zunmrq.o zunmrq.f +gfortran -O2 -frecursive -c -o zunmrz.o zunmrz.f +gfortran -O2 -frecursive -c -o zunmtr.o zunmtr.f +gfortran -O2 -frecursive -c -o zupgtr.o zupgtr.f +gfortran -O2 -frecursive -c -o zupmtr.o zupmtr.f +gfortran -O2 -frecursive -c -o izmax1.o izmax1.f +gfortran -O2 -frecursive -c -o dzsum1.o dzsum1.f +gfortran -O2 -frecursive -c -o zstemr.o zstemr.f +gfortran -O2 -frecursive -c -o zcgesv.o zcgesv.f +gfortran -O2 -frecursive -c -o zcposv.o zcposv.f +gfortran -O2 -frecursive -c -o zlag2c.o zlag2c.f +gfortran -O2 -frecursive -c -o clag2z.o clag2z.f +gfortran -O2 -frecursive -c -o zlat2c.o zlat2c.f +gfortran -O2 -frecursive -c -o zhfrk.o zhfrk.f +gfortran -O2 -frecursive -c -o ztfttp.o ztfttp.f +gfortran -O2 -frecursive -c -o zlanhf.o zlanhf.f +gfortran -O2 -frecursive -c -o zpftrf.o zpftrf.f +gfortran -O2 -frecursive -c -o zpftri.o zpftri.f +gfortran -O2 -frecursive -c -o zpftrs.o zpftrs.f +gfortran -O2 -frecursive -c -o ztfsm.o ztfsm.f +gfortran -O2 -frecursive -c -o ztftri.o ztftri.f +gfortran -O2 -frecursive -c -o ztfttr.o ztfttr.f +gfortran -O2 -frecursive -c -o ztpttf.o ztpttf.f +gfortran -O2 -frecursive -c -o ztpttr.o ztpttr.f +gfortran -O2 -frecursive -c -o ztrttf.o ztrttf.f +gfortran -O2 -frecursive -c -o ztrttp.o ztrttp.f +gfortran -O2 -frecursive -c -o zgeequb.o zgeequb.f +gfortran -O2 -frecursive -c -o zgbequb.o zgbequb.f +gfortran -O2 -frecursive -c -o zsyequb.o zsyequb.f +gfortran -O2 -frecursive -c -o zpoequb.o zpoequb.f +gfortran -O2 -frecursive -c -o zheequb.o zheequb.f +gfortran -O2 -frecursive -c -o zbbcsd.o zbbcsd.f +gfortran -O2 -frecursive -c -o zlapmr.o zlapmr.f +gfortran -O2 -frecursive -c -o zunbdb.o zunbdb.f +gfortran -O2 -frecursive -c -o zunbdb1.o zunbdb1.f +gfortran -O2 -frecursive -c -o zunbdb2.o zunbdb2.f +gfortran -O2 -frecursive -c -o zunbdb3.o zunbdb3.f +gfortran -O2 -frecursive -c -o zunbdb4.o zunbdb4.f +gfortran -O2 -frecursive -c -o zunbdb5.o zunbdb5.f +gfortran -O2 -frecursive -c -o zunbdb6.o zunbdb6.f +gfortran -O2 -frecursive -c -o zuncsd.o zuncsd.f +gfortran -O2 -frecursive -c -o zuncsd2by1.o zuncsd2by1.f +gfortran -O2 -frecursive -c -o zgeqrt.o zgeqrt.f +gfortran -O2 -frecursive -c -o zgeqrt2.o zgeqrt2.f +gfortran -O2 -frecursive -c -o zgeqrt3.o zgeqrt3.f +gfortran -O2 -frecursive -c -o zgemqrt.o zgemqrt.f +gfortran -O2 -frecursive -c -o ztpqrt.o ztpqrt.f +gfortran -O2 -frecursive -c -o ztpqrt2.o ztpqrt2.f +gfortran -O2 -frecursive -c -o ztpmqrt.o ztpmqrt.f +gfortran -O2 -frecursive -c -o ztprfb.o ztprfb.f +gfortran -O2 -frecursive -c -o ztplqt.o ztplqt.f +gfortran -O2 -frecursive -c -o ztplqt2.o ztplqt2.f +gfortran -O2 -frecursive -c -o ztpmlqt.o ztpmlqt.f +gfortran -O2 -frecursive -c -o zgelqt.o zgelqt.f +gfortran -O2 -frecursive -c -o zgelqt3.o zgelqt3.f +gfortran -O2 -frecursive -c -o zgemlqt.o zgemlqt.f +gfortran -O2 -frecursive -c -o zgetsls.o zgetsls.f +gfortran -O2 -frecursive -c -o zgetsqrhrt.o zgetsqrhrt.f +gfortran -O2 -frecursive -c -o zgeqr.o zgeqr.f +gfortran -O2 -frecursive -c -o zlatsqr.o zlatsqr.f +gfortran -O2 -frecursive -c -o zlamtsqr.o zlamtsqr.f +gfortran -O2 -frecursive -c -o zgemqr.o zgemqr.f +gfortran -O2 -frecursive -c -o zgelq.o zgelq.f +gfortran -O2 -frecursive -c -o zlaswlq.o zlaswlq.f +gfortran -O2 -frecursive -c -o zlamswlq.o zlamswlq.f +gfortran -O2 -frecursive -c -o zgemlq.o zgemlq.f +gfortran -O2 -frecursive -c -o zunhr_col.o zunhr_col.f +gfortran -O2 -frecursive -c -o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp.f +gfortran -O2 -frecursive -c -o zlaunhr_col_getrfnp2.o zlaunhr_col_getrfnp2.f +gfortran -O2 -frecursive -c -o zhetrd_2stage.o zhetrd_2stage.f +gfortran -O2 -frecursive -c -o zhetrd_he2hb.o zhetrd_he2hb.f +gfortran -O2 -frecursive -c -o zhb2st_kernels.o zhb2st_kernels.f +gfortran -O2 -frecursive -c -o zheevd_2stage.o zheevd_2stage.f +gfortran -O2 -frecursive -c -o zheev_2stage.o zheev_2stage.f +gfortran -O2 -frecursive -c -o zheevx_2stage.o zheevx_2stage.f +gfortran -O2 -frecursive -c -o zheevr_2stage.o zheevr_2stage.f +gfortran -O2 -frecursive -c -o zhbev_2stage.o zhbev_2stage.f +gfortran -O2 -frecursive -c -o zhbevx_2stage.o zhbevx_2stage.f +gfortran -O2 -frecursive -c -o zhbevd_2stage.o zhbevd_2stage.f +gfortran -O2 -frecursive -c -o zhegv_2stage.o zhegv_2stage.f +gfortran -O2 -frecursive -c -o zgesvdq.o zgesvdq.f +gfortran -O2 -frecursive -c -o cpotrs.o cpotrs.f +gfortran -O2 -frecursive -c -o cgetrs.o cgetrs.f +gfortran -O2 -frecursive -c -o cpotrf.o cpotrf.f +gfortran -O2 -frecursive -c -o cgetrf.o cgetrf.f +gfortran -O2 -frecursive -c -o sbdsdc.o sbdsdc.f +gfortran -O2 -frecursive -c -o sbdsqr.o sbdsqr.f +gfortran -O2 -frecursive -c -o sdisna.o sdisna.f +gfortran -O2 -frecursive -c -o slabad.o slabad.f +gfortran -O2 -frecursive -c -o slacpy.o slacpy.f +gfortran -O2 -frecursive -c -o sladiv.o sladiv.f +gfortran -O2 -frecursive -c -o slae2.o slae2.f +gfortran -O2 -frecursive -c -o slaebz.o slaebz.f +gfortran -O2 -frecursive -c -o slaed0.o slaed0.f +gfortran -O2 -frecursive -c -o slaed1.o slaed1.f +gfortran -O2 -frecursive -c -o slaed2.o slaed2.f +gfortran -O2 -frecursive -c -o slaed3.o slaed3.f +gfortran -O2 -frecursive -c -o slaed4.o slaed4.f +gfortran -O2 -frecursive -c -o slaed5.o slaed5.f +gfortran -O2 -frecursive -c -o slaed6.o slaed6.f +gfortran -O2 -frecursive -c -o slaed7.o slaed7.f +gfortran -O2 -frecursive -c -o slaed8.o slaed8.f +gfortran -O2 -frecursive -c -o slaed9.o slaed9.f +gfortran -O2 -frecursive -c -o slaeda.o slaeda.f +gfortran -O2 -frecursive -c -o slaev2.o slaev2.f +gfortran -O2 -frecursive -c -o slagtf.o slagtf.f +gfortran -O2 -frecursive -c -o slagts.o slagts.f +gfortran -O2 -frecursive -c -o slamrg.o slamrg.f +gfortran -O2 -frecursive -c -o slanst.o slanst.f +gfortran -O2 -frecursive -c -o slapy2.o slapy2.f +gfortran -O2 -frecursive -c -o slapy3.o slapy3.f +gfortran -O2 -frecursive -c -o slarnv.o slarnv.f +gfortran -O2 -frecursive -c -o slarra.o slarra.f +gfortran -O2 -frecursive -c -o slarrb.o slarrb.f +gfortran -O2 -frecursive -c -o slarrc.o slarrc.f +gfortran -O2 -frecursive -c -o slarrd.o slarrd.f +gfortran -O2 -frecursive -c -o slarre.o slarre.f +gfortran -O2 -frecursive -c -o slarrf.o slarrf.f +gfortran -O2 -frecursive -c -o slarrj.o slarrj.f +gfortran -O2 -frecursive -c -o slarrk.o slarrk.f +gfortran -O2 -frecursive -c -o slarrr.o slarrr.f +gfortran -O2 -frecursive -c -o slaneg.o slaneg.f +gfortran -O0 -frecursive -c -o slaruv.o slaruv.f +gfortran -O2 -frecursive -c -o slas2.o slas2.f +gfortran -O2 -frecursive -c -o slascl.o slascl.f +gfortran -O2 -frecursive -c -o slasd0.o slasd0.f +gfortran -O2 -frecursive -c -o slasd1.o slasd1.f +gfortran -O2 -frecursive -c -o slasd2.o slasd2.f +gfortran -O2 -frecursive -c -o slasd3.o slasd3.f +gfortran -O2 -frecursive -c -o slasd4.o slasd4.f +gfortran -O2 -frecursive -c -o slasd5.o slasd5.f +gfortran -O2 -frecursive -c -o slasd6.o slasd6.f +gfortran -O2 -frecursive -c -o slasd7.o slasd7.f +gfortran -O2 -frecursive -c -o slasd8.o slasd8.f +gfortran -O2 -frecursive -c -o slasda.o slasda.f +gfortran -O2 -frecursive -c -o slasdq.o slasdq.f +gfortran -O2 -frecursive -c -o slasdt.o slasdt.f +gfortran -O2 -frecursive -c -o slaset.o slaset.f +gfortran -O2 -frecursive -c -o slasq1.o slasq1.f +gfortran -O2 -frecursive -c -o slasq2.o slasq2.f +gfortran -O2 -frecursive -c -o slasq3.o slasq3.f +gfortran -O2 -frecursive -c -o slasq4.o slasq4.f +gfortran -O2 -frecursive -c -o slasq5.o slasq5.f +gfortran -O2 -frecursive -c -o slasq6.o slasq6.f +gfortran -O2 -frecursive -c -o slasr.o slasr.f +gfortran -O2 -frecursive -c -o slasrt.o slasrt.f +gfortran -O2 -frecursive -c -o slasv2.o slasv2.f +gfortran -O2 -frecursive -c -o spttrf.o spttrf.f +gfortran -O2 -frecursive -c -o sstebz.o sstebz.f +gfortran -O2 -frecursive -c -o sstedc.o sstedc.f +gfortran -O2 -frecursive -c -o ssteqr.o ssteqr.f +gfortran -O2 -frecursive -c -o ssterf.o ssterf.f +gfortran -O2 -frecursive -c -o slaisnan.o slaisnan.f +gfortran -O2 -frecursive -c -o sisnan.o sisnan.f +gfortran -O2 -frecursive -c -o slartgp.o slartgp.f +gfortran -O2 -frecursive -c -o slartgs.o slartgs.f +gfortran -O2 -frecursive -c -o ../INSTALL/sroundup_lwork.o ../INSTALL/sroundup_lwork.f +gfortran -O2 -frecursive -c -o ../INSTALL/second_INT_ETIME.o ../INSTALL/second_INT_ETIME.f +gfortran -O2 -frecursive -c -o dbdsdc.o dbdsdc.f +gfortran -O2 -frecursive -c -o dbdsqr.o dbdsqr.f +gfortran -O2 -frecursive -c -o ddisna.o ddisna.f +gfortran -O2 -frecursive -c -o dlabad.o dlabad.f +gfortran -O2 -frecursive -c -o dlacpy.o dlacpy.f +gfortran -O2 -frecursive -c -o dladiv.o dladiv.f +gfortran -O2 -frecursive -c -o dlae2.o dlae2.f +gfortran -O2 -frecursive -c -o dlaebz.o dlaebz.f +gfortran -O2 -frecursive -c -o dlaed0.o dlaed0.f +gfortran -O2 -frecursive -c -o dlaed1.o dlaed1.f +gfortran -O2 -frecursive -c -o dlaed2.o dlaed2.f +gfortran -O2 -frecursive -c -o dlaed3.o dlaed3.f +gfortran -O2 -frecursive -c -o dlaed4.o dlaed4.f +gfortran -O2 -frecursive -c -o dlaed5.o dlaed5.f +gfortran -O2 -frecursive -c -o dlaed6.o dlaed6.f +gfortran -O2 -frecursive -c -o dlaed7.o dlaed7.f +gfortran -O2 -frecursive -c -o dlaed8.o dlaed8.f +gfortran -O2 -frecursive -c -o dlaed9.o dlaed9.f +gfortran -O2 -frecursive -c -o dlaeda.o dlaeda.f +gfortran -O2 -frecursive -c -o dlaev2.o dlaev2.f +gfortran -O2 -frecursive -c -o dlagtf.o dlagtf.f +gfortran -O2 -frecursive -c -o dlagts.o dlagts.f +gfortran -O2 -frecursive -c -o dlamrg.o dlamrg.f +gfortran -O2 -frecursive -c -o dlanst.o dlanst.f +gfortran -O2 -frecursive -c -o dlapy2.o dlapy2.f +gfortran -O2 -frecursive -c -o dlapy3.o dlapy3.f +gfortran -O2 -frecursive -c -o dlarnv.o dlarnv.f +gfortran -O2 -frecursive -c -o dlarra.o dlarra.f +gfortran -O2 -frecursive -c -o dlarrb.o dlarrb.f +gfortran -O2 -frecursive -c -o dlarrc.o dlarrc.f +gfortran -O2 -frecursive -c -o dlarrd.o dlarrd.f +gfortran -O2 -frecursive -c -o dlarre.o dlarre.f +gfortran -O2 -frecursive -c -o dlarrf.o dlarrf.f +gfortran -O2 -frecursive -c -o dlarrj.o dlarrj.f +gfortran -O2 -frecursive -c -o dlarrk.o dlarrk.f +gfortran -O2 -frecursive -c -o dlarrr.o dlarrr.f +gfortran -O2 -frecursive -c -o dlaneg.o dlaneg.f +gfortran -O0 -frecursive -c -o dlaruv.o dlaruv.f +gfortran -O2 -frecursive -c -o dlas2.o dlas2.f +gfortran -O2 -frecursive -c -o dlascl.o dlascl.f +gfortran -O2 -frecursive -c -o dlasd0.o dlasd0.f +gfortran -O2 -frecursive -c -o dlasd1.o dlasd1.f +gfortran -O2 -frecursive -c -o dlasd2.o dlasd2.f +gfortran -O2 -frecursive -c -o dlasd3.o dlasd3.f +gfortran -O2 -frecursive -c -o dlasd4.o dlasd4.f +gfortran -O2 -frecursive -c -o dlasd5.o dlasd5.f +gfortran -O2 -frecursive -c -o dlasd6.o dlasd6.f +gfortran -O2 -frecursive -c -o dlasd7.o dlasd7.f +gfortran -O2 -frecursive -c -o dlasd8.o dlasd8.f +gfortran -O2 -frecursive -c -o dlasda.o dlasda.f +gfortran -O2 -frecursive -c -o dlasdq.o dlasdq.f +gfortran -O2 -frecursive -c -o dlasdt.o dlasdt.f +gfortran -O2 -frecursive -c -o dlaset.o dlaset.f +gfortran -O2 -frecursive -c -o dlasq1.o dlasq1.f +gfortran -O2 -frecursive -c -o dlasq2.o dlasq2.f +gfortran -O2 -frecursive -c -o dlasq3.o dlasq3.f +gfortran -O2 -frecursive -c -o dlasq4.o dlasq4.f +gfortran -O2 -frecursive -c -o dlasq5.o dlasq5.f +gfortran -O2 -frecursive -c -o dlasq6.o dlasq6.f +gfortran -O2 -frecursive -c -o dlasr.o dlasr.f +gfortran -O2 -frecursive -c -o dlasrt.o dlasrt.f +gfortran -O2 -frecursive -c -o dlasv2.o dlasv2.f +gfortran -O2 -frecursive -c -o dpttrf.o dpttrf.f +gfortran -O2 -frecursive -c -o dstebz.o dstebz.f +gfortran -O2 -frecursive -c -o dstedc.o dstedc.f +gfortran -O2 -frecursive -c -o dsteqr.o dsteqr.f +gfortran -O2 -frecursive -c -o dsterf.o dsterf.f +gfortran -O2 -frecursive -c -o dlaisnan.o dlaisnan.f +gfortran -O2 -frecursive -c -o disnan.o disnan.f +gfortran -O2 -frecursive -c -o dlartgp.o dlartgp.f +gfortran -O2 -frecursive -c -o dlartgs.o dlartgs.f +gfortran -O2 -frecursive -c -o ../INSTALL/droundup_lwork.o ../INSTALL/droundup_lwork.f +gfortran -O2 -frecursive -c -o ../INSTALL/dlamch.o ../INSTALL/dlamch.f +gfortran -O2 -frecursive -c -o ../INSTALL/dsecnd_INT_ETIME.o ../INSTALL/dsecnd_INT_ETIME.f +gfortran -O2 -frecursive -c -o ilaenv.o ilaenv.f +gfortran -O2 -frecursive -c -o ilaenv2stage.o ilaenv2stage.f +gfortran -O2 -frecursive -c -o ieeeck.o ieeeck.f +gfortran -O2 -frecursive -c -o lsamen.o lsamen.f +gfortran -O2 -frecursive -c -o xerbla.o xerbla.f +gfortran -O2 -frecursive -c -o xerbla_array.o xerbla_array.f +gfortran -O2 -frecursive -c -o iparmq.o iparmq.f +gfortran -O2 -frecursive -c -o ilaprec.o ilaprec.f +gfortran -O2 -frecursive -c -o ilatrans.o ilatrans.f +gfortran -O2 -frecursive -c -o ilauplo.o ilauplo.f +gfortran -O2 -frecursive -c -o iladiag.o iladiag.f +gfortran -O2 -frecursive -c -o chla_transtype.o chla_transtype.f +gfortran -O2 -frecursive -c -o ../INSTALL/ilaver.o ../INSTALL/ilaver.f +gfortran -O2 -frecursive -c -o ../INSTALL/lsame.o ../INSTALL/lsame.f +gfortran -O2 -frecursive -c -o ../INSTALL/slamch.o ../INSTALL/slamch.f +gfortran -O2 -frecursive -c -o la_xisnan.o la_xisnan.F90 +gfortran -O2 -frecursive -c -o sgedmd.o sgedmd.f90 +gfortran -O2 -frecursive -c -o sgedmdq.o sgedmdq.f90 +gfortran -O2 -frecursive -c -o dsytrd_sb2st.o dsytrd_sb2st.F +gfortran -O2 -frecursive -c -o dgedmd.o dgedmd.f90 +gfortran -O2 -frecursive -c -o dgedmdq.o dgedmdq.f90 +gfortran -O2 -frecursive -c -o clartg.o clartg.f90 +gfortran -O2 -frecursive -c -o classq.o classq.f90 +gfortran -O2 -frecursive -c -o chetrd_hb2st.o chetrd_hb2st.F +gfortran -O2 -frecursive -c -o cgedmd.o cgedmd.f90 +gfortran -O2 -frecursive -c -o cgedmdq.o cgedmdq.f90 +gfortran -O2 -frecursive -c -o zlartg.o zlartg.f90 +gfortran -O2 -frecursive -c -o zlassq.o zlassq.f90 +gfortran -O2 -frecursive -c -o zhetrd_hb2st.o zhetrd_hb2st.F +gfortran -O2 -frecursive -c -o zgedmd.o zgedmd.f90 +gfortran -O2 -frecursive -c -o zgedmdq.o zgedmdq.f90 +gfortran -O2 -frecursive -c -o slartg.o slartg.f90 +gfortran -O2 -frecursive -c -o slassq.o slassq.f90 +gfortran -O2 -frecursive -c -o dlartg.o dlartg.f90 +gfortran -O2 -frecursive -c -o dlassq.o dlassq.f90 +gfortran -O2 -frecursive -c -o iparam2stage.o iparam2stage.F +ar cr ../liblapack.a sbdsvdx.o spotrf2.o sgetrf2.o sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o sgels.o sgelst.o sgelsd.o sgelss.o sgelsy.o sgeql2.o sgeqlf.o sgeqp3.o sgeqp3rk.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvdx.o sgesvx.o sgetc2.o sgetf2.o sgetri.o sggbak.o sggbal.o sgges.o sgges3.o sggesx.o sggev.o sggev3.o sggevx.o sggglm.o sgghrd.o sgghd3.o sgglse.o sggqrf.o sggrqf.o sggsvd3.o sggsvp3.o sgtcon.o sgtrfs.o sgtsv.o sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o slaqz0.o slaqz1.o slaqz2.o slaqz3.o slaqz4.o shsein.o shseqr.o slabrd.o slacon.o slacn2.o slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o slansy.o slantb.o slantp.o slantr.o slanv2.o slapll.o slapmt.o slaqgb.o slaqge.o slaqp2.o slaqps.o slaqp2rk.o slaqp3rk.o slaqsb.o slaqsp.o slaqsy.o slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o slaqtr.o slar1v.o slar2v.o ilaslr.o ilaslc.o slarf.o slarfb.o slarfb_gett.o slarfg.o slarfgp.o slarft.o slarfx.o slarfy.o slargv.o slarmm.o slarrv.o slartv.o slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o slasyf_rook.o slasyf_rk.o slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrs3.o slatrz.o slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o sorgrq.o sorgtr.o sorgtsqr.o sorgtsqr_row.o sorm2l.o sorm2r.o sorm22.o sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o spbstf.o spbsv.o spbsvx.o spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o sposvx.o spotf2.o spotri.o spstrf.o spstf2.o sppcon.o sppequ.o spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o sstevx.o ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytri2.o ssytri2x.o ssyswapr.o ssytrs.o ssytrs2.o ssyconv.o ssyconvf.o ssyconvf_rook.o ssytf2_rook.o ssytrf_rook.o ssytrs_rook.o ssytri_rook.o ssycon_rook.o ssysv_rook.o ssytf2_rk.o ssytrf_rk.o ssytrs_3.o ssytri_3.o ssytri_3x.o ssycon_3.o ssysv_rk.o slasyf_aa.o ssysv_aa.o ssytrf_aa.o ssytrs_aa.o ssysv_aa_2stage.o ssytrf_aa_2stage.o ssytrs_aa_2stage.o stbcon.o stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o stptrs.o strcon.o strevc.o strevc3.o strexc.o strrfs.o strsen.o strsna.o strsyl.o strsyl3.o strti2.o strtri.o strtrs.o stzrzf.o sstemr.o slansf.o spftrf.o spftri.o spftrs.o ssfrk.o stfsm.o stftri.o stfttp.o stfttr.o stpttf.o stpttr.o strttf.o strttp.o sgejsv.o sgesvj.o sgsvj0.o sgsvj1.o sgeequb.o ssyequb.o spoequb.o sgbequb.o sbbcsd.o slapmr.o sorbdb.o sorbdb1.o sorbdb2.o sorbdb3.o sorbdb4.o sorbdb5.o sorbdb6.o sorcsd.o sorcsd2by1.o sgeqrt.o sgeqrt2.o sgeqrt3.o sgemqrt.o stpqrt.o stpqrt2.o stpmqrt.o stprfb.o sgelqt.o sgelqt3.o sgemlqt.o sgetsls.o sgetsqrhrt.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o sgelq.o slaswlq.o slamswlq.o sgemlq.o stplqt.o stplqt2.o stpmlqt.o sorhr_col.o slaorhr_col_getrfnp.o slaorhr_col_getrfnp2.o ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o sgesvdq.o sgedmd.o sgedmdq.o dpotrf2.o dgetrf2.o dbdsvdx.o dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o dgels.o dgelst.o dgelsd.o dgelss.o dgelsy.o dgeql2.o dgeqlf.o dgeqp3.o dgeqp3rk.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvdx.o dgesvx.o dgetc2.o dgetf2.o dgetrf.o dgetri.o dgetrs.o dggbak.o dggbal.o dgges.o dgges3.o dggesx.o dggev.o dggev3.o dggevx.o dggglm.o dgghrd.o dgghd3.o dgglse.o dggqrf.o dggrqf.o dggsvd3.o dggsvp3.o dgtcon.o dgtrfs.o dgtsv.o dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o dlaqz0.o dlaqz1.o dlaqz2.o dlaqz3.o dlaqz4.o dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o dlapll.o dlapmt.o dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqp2rk.o dlaqp3rk.o dlaqsb.o dlaqsp.o dlaqsy.o dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o dlarf.o dlarf1.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o dlargv.o dlarmm.o dlarrv.o dlartv.o dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o dlasyf_rook.o dlasyf_rk.o dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrs3.o dlatrz.o dlauu2.o dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o dorgrq.o dorgtr.o dorgtsqr.o dorgtsqr_row.o dorm2l.o dorm2r.o dorm22.o dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o dpbstf.o dpbsv.o dpbsvx.o dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dpstrf.o dpstf2.o dppcon.o dppequ.o dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o dstevx.o dsycon.o dsyev.o dsyevd.o dsyevr.o dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o dsysv.o dsysvx.o dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytri2.o dsytri2x.o dsyswapr.o dsytrs.o dsytrs2.o dsyconv.o dsyconvf.o dsyconvf_rook.o dsytf2_rook.o dsytrf_rook.o dsytrs_rook.o dsytri_rook.o dsycon_rook.o dsysv_rook.o dsytf2_rk.o dsytrf_rk.o dsytrs_3.o dsytri_3.o dsytri_3x.o dsycon_3.o dsysv_rk.o dlasyf_aa.o dsysv_aa.o dsytrf_aa.o dsytrs_aa.o dsysv_aa_2stage.o dsytrf_aa_2stage.o dsytrs_aa_2stage.o dtbcon.o dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o dtptrs.o dtrcon.o dtrevc.o dtrevc3.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o dtrsyl3.o dtrti2.o dtrtri.o dtrtrs.o dtzrzf.o dstemr.o dsgesv.o dsposv.o dlag2s.o slag2d.o dlat2s.o dlansf.o dpftrf.o dpftri.o dpftrs.o dsfrk.o dtfsm.o dtftri.o dtfttp.o dtfttr.o dtpttf.o dtpttr.o dtrttf.o dtrttp.o dgejsv.o dgesvj.o dgsvj0.o dgsvj1.o dgeequb.o dsyequb.o dpoequb.o dgbequb.o dbbcsd.o dlapmr.o dorbdb.o dorbdb1.o dorbdb2.o dorbdb3.o dorbdb4.o dorbdb5.o dorbdb6.o dorcsd.o dorcsd2by1.o dgeqrt.o dgeqrt2.o dgeqrt3.o dgemqrt.o dtpqrt.o dtpqrt2.o dtpmqrt.o dtprfb.o dgelqt.o dgelqt3.o dgemlqt.o dgetsls.o dgetsqrhrt.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o dgelq.o dlaswlq.o dlamswlq.o dgemlq.o dtplqt.o dtplqt2.o dtpmlqt.o dorhr_col.o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp2.o dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o dgesvdq.o dgedmd.o dgedmdq.o spotrs.o sgetrs.o spotrf.o sgetrf.o cpotrf2.o cgetrf2.o cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o cgels.o cgelst.o cgelsd.o cgelss.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o cgeqp3rk.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o cgesvdx.o cgesvj.o cgejsv.o cgsvj0.o cgsvj1.o cgesvx.o cgetc2.o cgetf2.o cgetri.o cggbak.o cggbal.o cgges.o cgges3.o cggesx.o cggev.o cggev3.o cggevx.o cggglm.o cgghrd.o cgghd3.o cgglse.o cggqrf.o cggrqf.o cggsvd3.o cggsvp3.o cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o chetf2.o chetrd.o chetrf.o chetri.o chetri2.o chetri2x.o cheswapr.o chetrs.o chetrs2.o chetf2_rook.o chetrf_rook.o chetri_rook.o chetrs_rook.o checon_rook.o chesv_rook.o chetf2_rk.o chetrf_rk.o chetri_3.o chetri_3x.o chetrs_3.o checon_3.o chesv_rk.o chesv_aa.o chetrf_aa.o chetrs_aa.o clahef_aa.o chesv_aa_2stage.o chetrf_aa_2stage.o chetrs_aa_2stage.o chgeqz.o chpcon.o chpev.o chpevd.o claqz0.o claqz1.o claqz2.o claqz3.o chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o chpsvx.o chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o claed0.o claed7.o claed8.o claein.o claesy.o claev2.o clags2.o clagtm.o clahef.o clahef_rook.o clahef_rk.o clahqr.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o clanhb.o clanhe.o clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqp2rk.o claqp3rk.o claqsb.o claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o claqsp.o claqsy.o clar1v.o clar2v.o ilaclr.o ilaclc.o clarf.o clarfb.o clarfb_gett.o clarfg.o clarft.o clarfgp.o clarfx.o clarfy.o clargv.o clarnv.o clarrv.o clartg.o clartv.o clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o claswp.o clasyf.o clasyf_rook.o clasyf_rk.o clasyf_aa.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrs3.o clatrz.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o cposv.o cposvx.o cpotf2.o cpotri.o cpstrf.o cpstf2.o cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o crscl.o cstedc.o cstegr.o cstein.o csteqr.o csycon.o csymv.o csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o csyswapr.o csytrs.o csytrs2.o csyconv.o csyconvf.o csyconvf_rook.o csytf2_rook.o csytrf_rook.o csytrs_rook.o csytri_rook.o csycon_rook.o csysv_rook.o csytf2_rk.o csytrf_rk.o csytrf_aa.o csytrs_3.o csytrs_aa.o csytri_3.o csytri_3x.o csycon_3.o csysv_rk.o csysv_aa.o csysv_aa_2stage.o csytrf_aa_2stage.o csytrs_aa_2stage.o ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o ctprfs.o ctptri.o ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o ctrsyl.o ctrsyl3.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o cungrq.o cungtr.o cungtsqr.o cungtsqr_row.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o ctfttr.o ctpttf.o ctpttr.o ctrttf.o ctrttp.o cgeequb.o cgbequb.o csyequb.o cpoequb.o cheequb.o cbbcsd.o clapmr.o cunbdb.o cunbdb1.o cunbdb2.o cunbdb3.o cunbdb4.o cunbdb5.o cunbdb6.o cuncsd.o cuncsd2by1.o cgeqrt.o cgeqrt2.o cgeqrt3.o cgemqrt.o ctpqrt.o ctpqrt2.o ctpmqrt.o ctprfb.o cgelqt.o cgelqt3.o cgemlqt.o cgetsls.o cgetsqrhrt.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o cgelq.o claswlq.o clamswlq.o cgemlq.o ctplqt.o ctplqt2.o ctpmlqt.o cunhr_col.o claunhr_col_getrfnp.o claunhr_col_getrfnp2.o chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o cgesvdq.o cgedmd.o cgedmdq.o zpotrf2.o zgetrf2.o zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o zgels.o zgelst.o zgelsd.o zgelss.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o zgeqp3rk.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvdx.o zgesvj.o zgejsv.o zgsvj0.o zgsvj1.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o zgetri.o zgetrs.o zggbak.o zggbal.o zgges.o zgges3.o zggesx.o zggev.o zggev3.o zggevx.o zggglm.o zgghrd.o zgghd3.o zgglse.o zggqrf.o zggrqf.o zggsvd3.o zggsvp3.o zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o zhetf2.o zhetrd.o zhetrf.o zhetri.o zhetri2.o zhetri2x.o zheswapr.o zhetrs.o zhetrs2.o zhetf2_rook.o zhetrf_rook.o zhetri_rook.o zhetrs_rook.o zhecon_rook.o zhesv_rook.o zhetf2_rk.o zhetrf_rk.o zhetri_3.o zhetri_3x.o zhetrs_3.o zhecon_3.o zhesv_rk.o zhesv_aa.o zhetrf_aa.o zhetrs_aa.o zlahef_aa.o zhesv_aa_2stage.o zhetrf_aa_2stage.o zhetrs_aa_2stage.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o zlaqz0.o zlaqz1.o zlaqz2.o zlaqz3.o zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o zhpsvx.o zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o zlaed0.o zlaed7.o zlaed8.o zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o zlahef.o zlahef_rook.o zlahef_rk.o zlahqr.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o zlangt.o zlanhb.o zlanhe.o zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqp2rk.o zlaqp3rk.o zlaqsb.o zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o zlarcm.o zlarf.o zlarfb.o zlarfb_gett.o zlarfg.o zlarft.o zlarfgp.o zlarfx.o zlarfy.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o zlassq.o zlaswp.o zlasyf.o zlasyf_rook.o zlasyf_rk.o zlasyf_aa.o zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrs3.o zlatrz.o zlauu2.o zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zpstrf.o zpstf2.o zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zrscl.o zstedc.o zstegr.o zstein.o zsteqr.o zsycon.o zsymv.o zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o zsyconvf.o zsyconvf_rook.o zsytf2_rook.o zsytrf_rook.o zsytrs_rook.o zsytrs_aa.o zsytri_rook.o zsycon_rook.o zsysv_rook.o zsysv_aa_2stage.o zsytrf_aa_2stage.o zsytrs_aa_2stage.o zsytf2_rk.o zsytrf_rk.o zsytrf_aa.o zsytrs_3.o zsytri_3.o zsytri_3x.o zsycon_3.o zsysv_rk.o zsysv_aa.o ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o ztprfs.o ztptri.o ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o ztrsyl.o ztrsyl3.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o zungrq.o zungtr.o zungtsqr.o zungtsqr_row.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o zunmtr.o zupgtr.o zupmtr.o izmax1.o dzsum1.o zstemr.o zcgesv.o zcposv.o zlag2c.o clag2z.o zlat2c.o zhfrk.o ztfttp.o zlanhf.o zpftrf.o zpftri.o zpftrs.o ztfsm.o ztftri.o ztfttr.o ztpttf.o ztpttr.o ztrttf.o ztrttp.o zgeequb.o zgbequb.o zsyequb.o zpoequb.o zheequb.o zbbcsd.o zlapmr.o zunbdb.o zunbdb1.o zunbdb2.o zunbdb3.o zunbdb4.o zunbdb5.o zunbdb6.o zuncsd.o zuncsd2by1.o zgeqrt.o zgeqrt2.o zgeqrt3.o zgemqrt.o ztpqrt.o ztpqrt2.o ztpmqrt.o ztprfb.o ztplqt.o ztplqt2.o ztpmlqt.o zgelqt.o zgelqt3.o zgemlqt.o zgetsls.o zgetsqrhrt.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o zgelq.o zlaswlq.o zlamswlq.o zgemlq.o zunhr_col.o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp2.o zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o zgesvdq.o zgedmd.o zgedmdq.o cpotrs.o cgetrs.o cpotrf.o cgetrf.o la_constants.o sbdsdc.o sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o slagts.o slamrg.o slanst.o slapy2.o slapy3.o slarnv.o slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o slarrk.o slarrr.o slaneg.o slartg.o slaruv.o slas2.o slascl.o slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o slasd7.o slasd8.o slasda.o slasdq.o slasdt.o slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o ssteqr.o ssterf.o slaisnan.o sisnan.o slartgp.o slartgs.o ../INSTALL/sroundup_lwork.o ../INSTALL/second_INT_ETIME.o dbdsdc.o dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o dlagts.o dlamrg.o dlanst.o dlapy2.o dlapy3.o dlarnv.o dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o dlarrk.o dlarrr.o dlaneg.o dlartg.o dlaruv.o dlas2.o dlascl.o dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o dlaset.o dlasq1.o dlasq2.o dlasq3.o dlasq4.o dlasq5.o dlasq6.o dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o dsteqr.o dsterf.o dlaisnan.o disnan.o dlartgp.o dlartgs.o ../INSTALL/droundup_lwork.o ../INSTALL/dlamch.o ../INSTALL/dsecnd_INT_ETIME.o ilaenv.o ilaenv2stage.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o iparam2stage.o la_xisnan.o ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o +ranlib ../liblapack.a +make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' From 4c8684d05bcc1132c23ce3a93fa1ca4c032dcf4b Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Thu, 16 May 2024 10:53:13 +0200 Subject: [PATCH 04/28] current state of testing implementation --- libCompile | 2016 ---------------------------------------------------- 1 file changed, 2016 deletions(-) delete mode 100644 libCompile diff --git a/libCompile b/libCompile deleted file mode 100644 index 44c45e89de..0000000000 --- a/libCompile +++ /dev/null @@ -1,2016 +0,0 @@ -make -C SRC -make -C TESTING/MATGEN -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' -gfortran -O2 -frecursive -c -o slatms.o slatms.f -gfortran -O2 -frecursive -c -o slatme.o slatme.f -gfortran -O2 -frecursive -c -o slatmr.o slatmr.f -gfortran -O2 -frecursive -c -o slatmt.o slatmt.f -gfortran -O2 -frecursive -c -o slagge.o slagge.f -gfortran -O2 -frecursive -c -o slagsy.o slagsy.f -gfortran -O2 -frecursive -c -o slakf2.o slakf2.f -gfortran -O2 -frecursive -c -o slarge.o slarge.f -gfortran -O2 -frecursive -c -o slaror.o slaror.f -gfortran -O2 -frecursive -c -o slarot.o slarot.f -gfortran -O2 -frecursive -c -o slatm2.o slatm2.f -make[1]: Entering directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' -gfortran -O2 -frecursive -c -o sbdsvdx.o sbdsvdx.f -gfortran -O2 -frecursive -c -o spotrf2.o spotrf2.f -gfortran -O2 -frecursive -c -o sgetrf2.o sgetrf2.f -gfortran -O2 -frecursive -c -o sgbbrd.o sgbbrd.f -gfortran -O2 -frecursive -c -o sgbcon.o sgbcon.f -gfortran -O2 -frecursive -c -o slatm3.o slatm3.f -gfortran -O2 -frecursive -c -o sgbequ.o sgbequ.f -gfortran -O2 -frecursive -c -o slatm5.o slatm5.f -gfortran -O2 -frecursive -c -o sgbrfs.o sgbrfs.f -gfortran -O2 -frecursive -c -o slatm6.o slatm6.f -gfortran -O2 -frecursive -c -o slahilb.o slahilb.f -gfortran -O2 -frecursive -c -o sgbsv.o sgbsv.f -gfortran -O2 -frecursive -c -o sgbsvx.o sgbsvx.f -gfortran -O2 -frecursive -c -o clatms.o clatms.f -gfortran -O2 -frecursive -c -o clatme.o clatme.f -gfortran -O2 -frecursive -c -o sgbtf2.o sgbtf2.f -gfortran -O2 -frecursive -c -o clatmr.o clatmr.f -gfortran -O2 -frecursive -c -o clatmt.o clatmt.f -gfortran -O2 -frecursive -c -o sgbtrf.o sgbtrf.f -gfortran -O2 -frecursive -c -o clagge.o clagge.f -gfortran -O2 -frecursive -c -o claghe.o claghe.f -gfortran -O2 -frecursive -c -o sgbtrs.o sgbtrs.f -gfortran -O2 -frecursive -c -o sgebak.o sgebak.f -gfortran -O2 -frecursive -c -o clagsy.o clagsy.f -gfortran -O2 -frecursive -c -o clakf2.o clakf2.f -gfortran -O2 -frecursive -c -o clarge.o clarge.f -gfortran -O2 -frecursive -c -o sgebal.o sgebal.f -gfortran -O2 -frecursive -c -o claror.o claror.f -gfortran -O2 -frecursive -c -o sgebd2.o sgebd2.f -gfortran -O2 -frecursive -c -o clarot.o clarot.f -gfortran -O2 -frecursive -c -o clatm1.o clatm1.f -gfortran -O2 -frecursive -c -o sgebrd.o sgebrd.f -gfortran -O2 -frecursive -c -o clarnd.o clarnd.f -gfortran -O2 -frecursive -c -o clatm2.o clatm2.f -gfortran -O2 -frecursive -c -o clatm3.o clatm3.f -gfortran -O2 -frecursive -c -o sgecon.o sgecon.f -gfortran -O2 -frecursive -c -o clatm5.o clatm5.f -gfortran -O2 -frecursive -c -o sgeequ.o sgeequ.f -gfortran -O2 -frecursive -c -o clatm6.o clatm6.f -gfortran -O2 -frecursive -c -o sgees.o sgees.f -gfortran -O2 -frecursive -c -o sgeesx.o sgeesx.f -gfortran -O2 -frecursive -c -o clahilb.o clahilb.f -gfortran -O2 -frecursive -c -o slatm1.o slatm1.f -gfortran -O2 -frecursive -c -o slatm7.o slatm7.f -gfortran -O2 -frecursive -c -o sgeev.o sgeev.f -gfortran -O0 -frecursive -c -o slaran.o slaran.f -gfortran -O2 -frecursive -c -o sgeevx.o sgeevx.f -gfortran -O2 -frecursive -c -o slarnd.o slarnd.f -gfortran -O2 -frecursive -c -o dlatms.o dlatms.f -gfortran -O2 -frecursive -c -o sgehd2.o sgehd2.f -gfortran -O2 -frecursive -c -o sgehrd.o sgehrd.f -gfortran -O2 -frecursive -c -o sgelq2.o sgelq2.f -gfortran -O2 -frecursive -c -o dlatme.o dlatme.f -gfortran -O2 -frecursive -c -o sgelqf.o sgelqf.f -gfortran -O2 -frecursive -c -o dlatmr.o dlatmr.f -gfortran -O2 -frecursive -c -o sgels.o sgels.f -gfortran -O2 -frecursive -c -o dlatmt.o dlatmt.f -gfortran -O2 -frecursive -c -o dlagge.o dlagge.f -gfortran -O2 -frecursive -c -o dlagsy.o dlagsy.f -gfortran -O2 -frecursive -c -o dlakf2.o dlakf2.f -gfortran -O2 -frecursive -c -o dlarge.o dlarge.f -gfortran -O2 -frecursive -c -o sgelst.o sgelst.f -gfortran -O2 -frecursive -c -o dlaror.o dlaror.f -gfortran -O2 -frecursive -c -o dlarot.o dlarot.f -gfortran -O2 -frecursive -c -o dlatm2.o dlatm2.f -gfortran -O2 -frecursive -c -o sgelsd.o sgelsd.f -gfortran -O2 -frecursive -c -o dlatm3.o dlatm3.f -gfortran -O2 -frecursive -c -o sgelss.o sgelss.f -gfortran -O2 -frecursive -c -o dlatm5.o dlatm5.f -gfortran -O2 -frecursive -c -o dlatm6.o dlatm6.f -gfortran -O2 -frecursive -c -o sgelsy.o sgelsy.f -gfortran -O2 -frecursive -c -o dlahilb.o dlahilb.f -gfortran -O2 -frecursive -c -o zlatms.o zlatms.f -gfortran -O2 -frecursive -c -o sgeql2.o sgeql2.f -gfortran -O2 -frecursive -c -o zlatme.o zlatme.f -gfortran -O2 -frecursive -c -o sgeqlf.o sgeqlf.f -gfortran -O2 -frecursive -c -o zlatmr.o zlatmr.f -gfortran -O2 -frecursive -c -o sgeqp3.o sgeqp3.f -gfortran -O2 -frecursive -c -o zlatmt.o zlatmt.f -gfortran -O2 -frecursive -c -o sgeqp3rk.o sgeqp3rk.f -gfortran -O2 -frecursive -c -o zlagge.o zlagge.f -gfortran -O2 -frecursive -c -o zlaghe.o zlaghe.f -gfortran -O2 -frecursive -c -o sgeqr2.o sgeqr2.f -gfortran -O2 -frecursive -c -o zlagsy.o zlagsy.f -gfortran -O2 -frecursive -c -o sgeqr2p.o sgeqr2p.f -gfortran -O2 -frecursive -c -o sgeqrf.o sgeqrf.f -gfortran -O2 -frecursive -c -o zlakf2.o zlakf2.f -gfortran -O2 -frecursive -c -o zlarge.o zlarge.f -gfortran -O2 -frecursive -c -o zlaror.o zlaror.f -gfortran -O2 -frecursive -c -o sgeqrfp.o sgeqrfp.f -gfortran -O2 -frecursive -c -o zlarot.o zlarot.f -gfortran -O2 -frecursive -c -o zlatm1.o zlatm1.f -gfortran -O2 -frecursive -c -o zlarnd.o zlarnd.f -gfortran -O2 -frecursive -c -o sgerfs.o sgerfs.f -gfortran -O2 -frecursive -c -o sgerq2.o sgerq2.f -gfortran -O2 -frecursive -c -o sgerqf.o sgerqf.f -gfortran -O2 -frecursive -c -o zlatm2.o zlatm2.f -gfortran -O2 -frecursive -c -o sgesc2.o sgesc2.f -gfortran -O2 -frecursive -c -o sgesdd.o sgesdd.f -gfortran -O2 -frecursive -c -o zlatm3.o zlatm3.f -gfortran -O2 -frecursive -c -o zlatm5.o zlatm5.f -gfortran -O2 -frecursive -c -o zlatm6.o zlatm6.f -gfortran -O2 -frecursive -c -o sgesv.o sgesv.f -gfortran -O2 -frecursive -c -o zlahilb.o zlahilb.f -gfortran -O2 -frecursive -c -o dlatm1.o dlatm1.f -gfortran -O2 -frecursive -c -o sgesvd.o sgesvd.f -gfortran -O2 -frecursive -c -o dlatm7.o dlatm7.f -gfortran -O0 -frecursive -c -o dlaran.o dlaran.f -gfortran -O2 -frecursive -c -o dlarnd.o dlarnd.f -gfortran -O2 -frecursive -c -o sgesvdx.o sgesvdx.f -gfortran -O2 -frecursive -c -o sgesvx.o sgesvx.f -gfortran -O2 -frecursive -c -o sgetc2.o sgetc2.f -gfortran -O2 -frecursive -c -o sgetf2.o sgetf2.f -gfortran -O2 -frecursive -c -o sgetri.o sgetri.f -gfortran -O2 -frecursive -c -o sggbak.o sggbak.f -gfortran -O2 -frecursive -c -o sggbal.o sggbal.f -gfortran -O2 -frecursive -c -o sgges.o sgges.f -gfortran -O2 -frecursive -c -o sgges3.o sgges3.f -gfortran -O2 -frecursive -c -o sggesx.o sggesx.f -gfortran -O2 -frecursive -c -o sggev.o sggev.f -gfortran -O2 -frecursive -c -o sggev3.o sggev3.f -gfortran -O2 -frecursive -c -o sggevx.o sggevx.f -gfortran -O2 -frecursive -c -o sggglm.o sggglm.f -gfortran -O2 -frecursive -c -o sgghrd.o sgghrd.f -gfortran -O2 -frecursive -c -o sgghd3.o sgghd3.f -gfortran -O2 -frecursive -c -o sgglse.o sgglse.f -gfortran -O2 -frecursive -c -o sggqrf.o sggqrf.f -gfortran -O2 -frecursive -c -o sggrqf.o sggrqf.f -gfortran -O2 -frecursive -c -o sggsvd3.o sggsvd3.f -gfortran -O2 -frecursive -c -o sggsvp3.o sggsvp3.f -gfortran -O2 -frecursive -c -o sgtcon.o sgtcon.f -gfortran -O2 -frecursive -c -o sgtrfs.o sgtrfs.f -gfortran -O2 -frecursive -c -o sgtsv.o sgtsv.f -gfortran -O2 -frecursive -c -o sgtsvx.o sgtsvx.f -gfortran -O2 -frecursive -c -o sgttrf.o sgttrf.f -gfortran -O2 -frecursive -c -o sgttrs.o sgttrs.f -gfortran -O2 -frecursive -c -o sgtts2.o sgtts2.f -gfortran -O2 -frecursive -c -o shgeqz.o shgeqz.f -gfortran -O2 -frecursive -c -o slaqz0.o slaqz0.f -gfortran -O2 -frecursive -c -o slaqz1.o slaqz1.f -gfortran -O2 -frecursive -c -o slaqz2.o slaqz2.f -gfortran -O2 -frecursive -c -o slaqz3.o slaqz3.f -gfortran -O2 -frecursive -c -o slaqz4.o slaqz4.f -gfortran -O2 -frecursive -c -o shsein.o shsein.f -gfortran -O2 -frecursive -c -o shseqr.o shseqr.f -gfortran -O2 -frecursive -c -o slabrd.o slabrd.f -gfortran -O2 -frecursive -c -o slacon.o slacon.f -ar cr ../../libtmglib.a slatms.o slatme.o slatmr.o slatmt.o slagge.o slagsy.o slakf2.o slarge.o slaror.o slarot.o slatm2.o slatm3.o slatm5.o slatm6.o slahilb.o clatms.o clatme.o clatmr.o clatmt.o clagge.o claghe.o clagsy.o clakf2.o clarge.o claror.o clarot.o clatm1.o clarnd.o clatm2.o clatm3.o clatm5.o clatm6.o clahilb.o slatm1.o slatm7.o slaran.o slarnd.o dlatms.o dlatme.o dlatmr.o dlatmt.o dlagge.o dlagsy.o dlakf2.o dlarge.o dlaror.o dlarot.o dlatm2.o dlatm3.o dlatm5.o dlatm6.o dlahilb.o 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 dlatm1.o dlatm7.o dlaran.o dlarnd.o -gfortran -O2 -frecursive -c -o slacn2.o slacn2.f -gfortran -O2 -frecursive -c -o slaein.o slaein.f -gfortran -O2 -frecursive -c -o slaexc.o slaexc.f -ranlib ../../libtmglib.a -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/TESTING/MATGEN' -gfortran -O2 -frecursive -c -o slag2.o slag2.f -gfortran -O2 -frecursive -c -o slags2.o slags2.f -gfortran -O2 -frecursive -c -o slagtm.o slagtm.f -gfortran -O2 -frecursive -c -o slagv2.o slagv2.f -gfortran -O2 -frecursive -c -o slahqr.o slahqr.f -gfortran -O2 -frecursive -c -o slahr2.o slahr2.f -gfortran -O2 -frecursive -c -o slaic1.o slaic1.f -gfortran -O2 -frecursive -c -o slaln2.o slaln2.f -gfortran -O2 -frecursive -c -o slals0.o slals0.f -gfortran -O2 -frecursive -c -o slalsa.o slalsa.f -gfortran -O2 -frecursive -c -o slalsd.o slalsd.f -gfortran -O2 -frecursive -c -o slangb.o slangb.f -gfortran -O2 -frecursive -c -o slange.o slange.f -gfortran -O2 -frecursive -c -o slangt.o slangt.f -gfortran -O2 -frecursive -c -o slanhs.o slanhs.f -gfortran -O2 -frecursive -c -o slansb.o slansb.f -gfortran -O2 -frecursive -c -o slansp.o slansp.f -gfortran -O2 -frecursive -c -o slansy.o slansy.f -gfortran -O2 -frecursive -c -o slantb.o slantb.f -gfortran -O2 -frecursive -c -o slantp.o slantp.f -gfortran -O2 -frecursive -c -o slantr.o slantr.f -gfortran -O2 -frecursive -c -o slanv2.o slanv2.f -gfortran -O2 -frecursive -c -o slapll.o slapll.f -gfortran -O2 -frecursive -c -o slapmt.o slapmt.f -gfortran -O2 -frecursive -c -o slaqgb.o slaqgb.f -gfortran -O2 -frecursive -c -o slaqge.o slaqge.f -gfortran -O2 -frecursive -c -o slaqp2.o slaqp2.f -gfortran -O2 -frecursive -c -o slaqps.o slaqps.f -gfortran -O2 -frecursive -c -o slaqp2rk.o slaqp2rk.f -gfortran -O2 -frecursive -c -o slaqp3rk.o slaqp3rk.f -gfortran -O2 -frecursive -c -o slaqsb.o slaqsb.f -gfortran -O2 -frecursive -c -o slaqsp.o slaqsp.f -gfortran -O2 -frecursive -c -o slaqsy.o slaqsy.f -gfortran -O2 -frecursive -c -o slaqr0.o slaqr0.f -gfortran -O2 -frecursive -c -o slaqr1.o slaqr1.f -gfortran -O2 -frecursive -c -o slaqr2.o slaqr2.f -gfortran -O2 -frecursive -c -o slaqr3.o slaqr3.f -gfortran -O2 -frecursive -c -o slaqr4.o slaqr4.f -gfortran -O2 -frecursive -c -o slaqr5.o slaqr5.f -gfortran -O2 -frecursive -c -o slaqtr.o slaqtr.f -gfortran -O2 -frecursive -c -o slar1v.o slar1v.f -gfortran -O2 -frecursive -c -o slar2v.o slar2v.f -gfortran -O2 -frecursive -c -o ilaslr.o ilaslr.f -gfortran -O2 -frecursive -c -o ilaslc.o ilaslc.f -gfortran -O2 -frecursive -c -o slarf.o slarf.f -gfortran -O2 -frecursive -c -o slarfb.o slarfb.f -gfortran -O2 -frecursive -c -o slarfb_gett.o slarfb_gett.f -gfortran -O2 -frecursive -c -o slarfg.o slarfg.f -gfortran -O2 -frecursive -c -o slarfgp.o slarfgp.f -gfortran -O2 -frecursive -c -o slarft.o slarft.f -gfortran -O2 -frecursive -c -o slarfx.o slarfx.f -gfortran -O2 -frecursive -c -o slarfy.o slarfy.f -gfortran -O2 -frecursive -c -o slargv.o slargv.f -gfortran -O2 -frecursive -c -o slarmm.o slarmm.f -gfortran -O2 -frecursive -c -o slarrv.o slarrv.f -gfortran -O2 -frecursive -c -o slartv.o slartv.f -gfortran -O2 -frecursive -c -o slarz.o slarz.f -gfortran -O2 -frecursive -c -o slarzb.o slarzb.f -gfortran -O2 -frecursive -c -o slarzt.o slarzt.f -gfortran -O2 -frecursive -c -o slaswp.o slaswp.f -gfortran -O2 -frecursive -c -o slasy2.o slasy2.f -gfortran -O2 -frecursive -c -o slasyf.o slasyf.f -gfortran -O2 -frecursive -c -o slasyf_rook.o slasyf_rook.f -gfortran -O2 -frecursive -c -o slasyf_rk.o slasyf_rk.f -gfortran -O2 -frecursive -c -o slatbs.o slatbs.f -gfortran -O2 -frecursive -c -o slatdf.o slatdf.f -gfortran -O2 -frecursive -c -o slatps.o slatps.f -gfortran -O2 -frecursive -c -o slatrd.o slatrd.f -gfortran -O2 -frecursive -c -o slatrs.o slatrs.f -gfortran -O2 -frecursive -c -o slatrs3.o slatrs3.f -gfortran -O2 -frecursive -c -o slatrz.o slatrz.f -gfortran -O2 -frecursive -c -o slauu2.o slauu2.f -gfortran -O2 -frecursive -c -o slauum.o slauum.f -gfortran -O2 -frecursive -c -o sopgtr.o sopgtr.f -gfortran -O2 -frecursive -c -o sopmtr.o sopmtr.f -gfortran -O2 -frecursive -c -o sorg2l.o sorg2l.f -gfortran -O2 -frecursive -c -o sorg2r.o sorg2r.f -gfortran -O2 -frecursive -c -o sorgbr.o sorgbr.f -gfortran -O2 -frecursive -c -o sorghr.o sorghr.f -gfortran -O2 -frecursive -c -o sorgl2.o sorgl2.f -gfortran -O2 -frecursive -c -o sorglq.o sorglq.f -gfortran -O2 -frecursive -c -o sorgql.o sorgql.f -gfortran -O2 -frecursive -c -o sorgqr.o sorgqr.f -gfortran -O2 -frecursive -c -o sorgr2.o sorgr2.f -gfortran -O2 -frecursive -c -o sorgrq.o sorgrq.f -gfortran -O2 -frecursive -c -o sorgtr.o sorgtr.f -gfortran -O2 -frecursive -c -o sorgtsqr.o sorgtsqr.f -gfortran -O2 -frecursive -c -o sorgtsqr_row.o sorgtsqr_row.f -gfortran -O2 -frecursive -c -o sorm2l.o sorm2l.f -gfortran -O2 -frecursive -c -o sorm2r.o sorm2r.f -gfortran -O2 -frecursive -c -o sorm22.o sorm22.f -gfortran -O2 -frecursive -c -o sormbr.o sormbr.f -gfortran -O2 -frecursive -c -o sormhr.o sormhr.f -gfortran -O2 -frecursive -c -o sorml2.o sorml2.f -gfortran -O2 -frecursive -c -o sormlq.o sormlq.f -gfortran -O2 -frecursive -c -o sormql.o sormql.f -gfortran -O2 -frecursive -c -o sormqr.o sormqr.f -gfortran -O2 -frecursive -c -o sormr2.o sormr2.f -gfortran -O2 -frecursive -c -o sormr3.o sormr3.f -gfortran -O2 -frecursive -c -o sormrq.o sormrq.f -gfortran -O2 -frecursive -c -o sormrz.o sormrz.f -gfortran -O2 -frecursive -c -o sormtr.o sormtr.f -gfortran -O2 -frecursive -c -o spbcon.o spbcon.f -gfortran -O2 -frecursive -c -o spbequ.o spbequ.f -gfortran -O2 -frecursive -c -o spbrfs.o spbrfs.f -gfortran -O2 -frecursive -c -o spbstf.o spbstf.f -gfortran -O2 -frecursive -c -o spbsv.o spbsv.f -gfortran -O2 -frecursive -c -o spbsvx.o spbsvx.f -gfortran -O2 -frecursive -c -o spbtf2.o spbtf2.f -gfortran -O2 -frecursive -c -o spbtrf.o spbtrf.f -gfortran -O2 -frecursive -c -o spbtrs.o spbtrs.f -gfortran -O2 -frecursive -c -o spocon.o spocon.f -gfortran -O2 -frecursive -c -o spoequ.o spoequ.f -gfortran -O2 -frecursive -c -o sporfs.o sporfs.f -gfortran -O2 -frecursive -c -o sposv.o sposv.f -gfortran -O2 -frecursive -c -o sposvx.o sposvx.f -gfortran -O2 -frecursive -c -o spotf2.o spotf2.f -gfortran -O2 -frecursive -c -o spotri.o spotri.f -gfortran -O2 -frecursive -c -o spstrf.o spstrf.f -gfortran -O2 -frecursive -c -o spstf2.o spstf2.f -gfortran -O2 -frecursive -c -o sppcon.o sppcon.f -gfortran -O2 -frecursive -c -o sppequ.o sppequ.f -gfortran -O2 -frecursive -c -o spprfs.o spprfs.f -gfortran -O2 -frecursive -c -o sppsv.o sppsv.f -gfortran -O2 -frecursive -c -o sppsvx.o sppsvx.f -gfortran -O2 -frecursive -c -o spptrf.o spptrf.f -gfortran -O2 -frecursive -c -o spptri.o spptri.f -gfortran -O2 -frecursive -c -o spptrs.o spptrs.f -gfortran -O2 -frecursive -c -o sptcon.o sptcon.f -gfortran -O2 -frecursive -c -o spteqr.o spteqr.f -gfortran -O2 -frecursive -c -o sptrfs.o sptrfs.f -gfortran -O2 -frecursive -c -o sptsv.o sptsv.f -gfortran -O2 -frecursive -c -o sptsvx.o sptsvx.f -gfortran -O2 -frecursive -c -o spttrs.o spttrs.f -gfortran -O2 -frecursive -c -o sptts2.o sptts2.f -gfortran -O2 -frecursive -c -o srscl.o srscl.f -gfortran -O2 -frecursive -c -o ssbev.o ssbev.f -gfortran -O2 -frecursive -c -o ssbevd.o ssbevd.f -gfortran -O2 -frecursive -c -o ssbevx.o ssbevx.f -gfortran -O2 -frecursive -c -o ssbgst.o ssbgst.f -gfortran -O2 -frecursive -c -o ssbgv.o ssbgv.f -gfortran -O2 -frecursive -c -o ssbgvd.o ssbgvd.f -gfortran -O2 -frecursive -c -o ssbgvx.o ssbgvx.f -gfortran -O2 -frecursive -c -o ssbtrd.o ssbtrd.f -gfortran -O2 -frecursive -c -o sspcon.o sspcon.f -gfortran -O2 -frecursive -c -o sspev.o sspev.f -gfortran -O2 -frecursive -c -o sspevd.o sspevd.f -gfortran -O2 -frecursive -c -o sspevx.o sspevx.f -gfortran -O2 -frecursive -c -o sspgst.o sspgst.f -gfortran -O2 -frecursive -c -o sspgv.o sspgv.f -gfortran -O2 -frecursive -c -o sspgvd.o sspgvd.f -gfortran -O2 -frecursive -c -o sspgvx.o sspgvx.f -gfortran -O2 -frecursive -c -o ssprfs.o ssprfs.f -gfortran -O2 -frecursive -c -o sspsv.o sspsv.f -gfortran -O2 -frecursive -c -o sspsvx.o sspsvx.f -gfortran -O2 -frecursive -c -o ssptrd.o ssptrd.f -gfortran -O2 -frecursive -c -o ssptrf.o ssptrf.f -gfortran -O2 -frecursive -c -o ssptri.o ssptri.f -gfortran -O2 -frecursive -c -o ssptrs.o ssptrs.f -gfortran -O2 -frecursive -c -o sstegr.o sstegr.f -gfortran -O2 -frecursive -c -o sstein.o sstein.f -gfortran -O2 -frecursive -c -o sstev.o sstev.f -gfortran -O2 -frecursive -c -o sstevd.o sstevd.f -gfortran -O2 -frecursive -c -o sstevr.o sstevr.f -gfortran -O2 -frecursive -c -o sstevx.o sstevx.f -gfortran -O2 -frecursive -c -o ssycon.o ssycon.f -gfortran -O2 -frecursive -c -o ssyev.o ssyev.f -gfortran -O2 -frecursive -c -o ssyevd.o ssyevd.f -gfortran -O2 -frecursive -c -o ssyevr.o ssyevr.f -gfortran -O2 -frecursive -c -o ssyevx.o ssyevx.f -gfortran -O2 -frecursive -c -o ssygs2.o ssygs2.f -gfortran -O2 -frecursive -c -o ssygst.o ssygst.f -gfortran -O2 -frecursive -c -o ssygv.o ssygv.f -gfortran -O2 -frecursive -c -o ssygvd.o ssygvd.f -gfortran -O2 -frecursive -c -o ssygvx.o ssygvx.f -gfortran -O2 -frecursive -c -o ssyrfs.o ssyrfs.f -gfortran -O2 -frecursive -c -o ssysv.o ssysv.f -gfortran -O2 -frecursive -c -o ssysvx.o ssysvx.f -gfortran -O2 -frecursive -c -o ssytd2.o ssytd2.f -gfortran -O2 -frecursive -c -o ssytf2.o ssytf2.f -gfortran -O2 -frecursive -c -o ssytrd.o ssytrd.f -gfortran -O2 -frecursive -c -o ssytrf.o ssytrf.f -gfortran -O2 -frecursive -c -o ssytri.o ssytri.f -gfortran -O2 -frecursive -c -o ssytri2.o ssytri2.f -gfortran -O2 -frecursive -c -o ssytri2x.o ssytri2x.f -gfortran -O2 -frecursive -c -o ssyswapr.o ssyswapr.f -gfortran -O2 -frecursive -c -o ssytrs.o ssytrs.f -gfortran -O2 -frecursive -c -o ssytrs2.o ssytrs2.f -gfortran -O2 -frecursive -c -o ssyconv.o ssyconv.f -gfortran -O2 -frecursive -c -o ssyconvf.o ssyconvf.f -gfortran -O2 -frecursive -c -o ssyconvf_rook.o ssyconvf_rook.f -gfortran -O2 -frecursive -c -o ssytf2_rook.o ssytf2_rook.f -gfortran -O2 -frecursive -c -o ssytrf_rook.o ssytrf_rook.f -gfortran -O2 -frecursive -c -o ssytrs_rook.o ssytrs_rook.f -gfortran -O2 -frecursive -c -o ssytri_rook.o ssytri_rook.f -gfortran -O2 -frecursive -c -o ssycon_rook.o ssycon_rook.f -gfortran -O2 -frecursive -c -o ssysv_rook.o ssysv_rook.f -gfortran -O2 -frecursive -c -o ssytf2_rk.o ssytf2_rk.f -gfortran -O2 -frecursive -c -o ssytrf_rk.o ssytrf_rk.f -gfortran -O2 -frecursive -c -o ssytrs_3.o ssytrs_3.f -gfortran -O2 -frecursive -c -o ssytri_3.o ssytri_3.f -gfortran -O2 -frecursive -c -o ssytri_3x.o ssytri_3x.f -gfortran -O2 -frecursive -c -o ssycon_3.o ssycon_3.f -gfortran -O2 -frecursive -c -o ssysv_rk.o ssysv_rk.f -gfortran -O2 -frecursive -c -o slasyf_aa.o slasyf_aa.f -gfortran -O2 -frecursive -c -o ssysv_aa.o ssysv_aa.f -gfortran -O2 -frecursive -c -o ssytrf_aa.o ssytrf_aa.f -gfortran -O2 -frecursive -c -o ssytrs_aa.o ssytrs_aa.f -gfortran -O2 -frecursive -c -o ssysv_aa_2stage.o ssysv_aa_2stage.f -gfortran -O2 -frecursive -c -o ssytrf_aa_2stage.o ssytrf_aa_2stage.f -gfortran -O2 -frecursive -c -o ssytrs_aa_2stage.o ssytrs_aa_2stage.f -gfortran -O2 -frecursive -c -o stbcon.o stbcon.f -gfortran -O2 -frecursive -c -o stbrfs.o stbrfs.f -gfortran -O2 -frecursive -c -o stbtrs.o stbtrs.f -gfortran -O2 -frecursive -c -o stgevc.o stgevc.f -gfortran -O2 -frecursive -c -o stgex2.o stgex2.f -gfortran -O2 -frecursive -c -o stgexc.o stgexc.f -gfortran -O2 -frecursive -c -o stgsen.o stgsen.f -gfortran -O2 -frecursive -c -o stgsja.o stgsja.f -gfortran -O2 -frecursive -c -o stgsna.o stgsna.f -gfortran -O2 -frecursive -c -o stgsy2.o stgsy2.f -gfortran -O2 -frecursive -c -o stgsyl.o stgsyl.f -gfortran -O2 -frecursive -c -o stpcon.o stpcon.f -gfortran -O2 -frecursive -c -o stprfs.o stprfs.f -gfortran -O2 -frecursive -c -o stptri.o stptri.f -gfortran -O2 -frecursive -c -o stptrs.o stptrs.f -gfortran -O2 -frecursive -c -o strcon.o strcon.f -gfortran -O2 -frecursive -c -o strevc.o strevc.f -gfortran -O2 -frecursive -c -o strevc3.o strevc3.f -gfortran -O2 -frecursive -c -o strexc.o strexc.f -gfortran -O2 -frecursive -c -o strrfs.o strrfs.f -gfortran -O2 -frecursive -c -o strsen.o strsen.f -gfortran -O2 -frecursive -c -o strsna.o strsna.f -gfortran -O2 -frecursive -c -o strsyl.o strsyl.f -gfortran -O2 -frecursive -c -o strsyl3.o strsyl3.f -gfortran -O2 -frecursive -c -o strti2.o strti2.f -gfortran -O2 -frecursive -c -o strtri.o strtri.f -gfortran -O2 -frecursive -c -o strtrs.o strtrs.f -gfortran -O2 -frecursive -c -o stzrzf.o stzrzf.f -gfortran -O2 -frecursive -c -o sstemr.o sstemr.f -gfortran -O2 -frecursive -c -o slansf.o slansf.f -gfortran -O2 -frecursive -c -o spftrf.o spftrf.f -gfortran -O2 -frecursive -c -o spftri.o spftri.f -gfortran -O2 -frecursive -c -o spftrs.o spftrs.f -gfortran -O2 -frecursive -c -o ssfrk.o ssfrk.f -gfortran -O2 -frecursive -c -o stfsm.o stfsm.f -gfortran -O2 -frecursive -c -o stftri.o stftri.f -gfortran -O2 -frecursive -c -o stfttp.o stfttp.f -gfortran -O2 -frecursive -c -o stfttr.o stfttr.f -gfortran -O2 -frecursive -c -o stpttf.o stpttf.f -gfortran -O2 -frecursive -c -o stpttr.o stpttr.f -gfortran -O2 -frecursive -c -o strttf.o strttf.f -gfortran -O2 -frecursive -c -o strttp.o strttp.f -gfortran -O2 -frecursive -c -o sgejsv.o sgejsv.f -gfortran -O2 -frecursive -c -o sgesvj.o sgesvj.f -gfortran -O2 -frecursive -c -o sgsvj0.o sgsvj0.f -gfortran -O2 -frecursive -c -o sgsvj1.o sgsvj1.f -gfortran -O2 -frecursive -c -o sgeequb.o sgeequb.f -gfortran -O2 -frecursive -c -o ssyequb.o ssyequb.f -gfortran -O2 -frecursive -c -o spoequb.o spoequb.f -gfortran -O2 -frecursive -c -o sgbequb.o sgbequb.f -gfortran -O2 -frecursive -c -o sbbcsd.o sbbcsd.f -gfortran -O2 -frecursive -c -o slapmr.o slapmr.f -gfortran -O2 -frecursive -c -o sorbdb.o sorbdb.f -gfortran -O2 -frecursive -c -o sorbdb1.o sorbdb1.f -gfortran -O2 -frecursive -c -o sorbdb2.o sorbdb2.f -gfortran -O2 -frecursive -c -o sorbdb3.o sorbdb3.f -gfortran -O2 -frecursive -c -o sorbdb4.o sorbdb4.f -gfortran -O2 -frecursive -c -o sorbdb5.o sorbdb5.f -gfortran -O2 -frecursive -c -o sorbdb6.o sorbdb6.f -gfortran -O2 -frecursive -c -o sorcsd.o sorcsd.f -gfortran -O2 -frecursive -c -o sorcsd2by1.o sorcsd2by1.f -gfortran -O2 -frecursive -c -o sgeqrt.o sgeqrt.f -gfortran -O2 -frecursive -c -o sgeqrt2.o sgeqrt2.f -gfortran -O2 -frecursive -c -o sgeqrt3.o sgeqrt3.f -gfortran -O2 -frecursive -c -o sgemqrt.o sgemqrt.f -gfortran -O2 -frecursive -c -o stpqrt.o stpqrt.f -gfortran -O2 -frecursive -c -o stpqrt2.o stpqrt2.f -gfortran -O2 -frecursive -c -o stpmqrt.o stpmqrt.f -gfortran -O2 -frecursive -c -o stprfb.o stprfb.f -gfortran -O2 -frecursive -c -o sgelqt.o sgelqt.f -gfortran -O2 -frecursive -c -o sgelqt3.o sgelqt3.f -gfortran -O2 -frecursive -c -o sgemlqt.o sgemlqt.f -gfortran -O2 -frecursive -c -o sgetsls.o sgetsls.f -gfortran -O2 -frecursive -c -o sgetsqrhrt.o sgetsqrhrt.f -gfortran -O2 -frecursive -c -o sgeqr.o sgeqr.f -gfortran -O2 -frecursive -c -o slatsqr.o slatsqr.f -gfortran -O2 -frecursive -c -o slamtsqr.o slamtsqr.f -gfortran -O2 -frecursive -c -o sgemqr.o sgemqr.f -gfortran -O2 -frecursive -c -o sgelq.o sgelq.f -gfortran -O2 -frecursive -c -o slaswlq.o slaswlq.f -gfortran -O2 -frecursive -c -o slamswlq.o slamswlq.f -gfortran -O2 -frecursive -c -o sgemlq.o sgemlq.f -gfortran -O2 -frecursive -c -o stplqt.o stplqt.f -gfortran -O2 -frecursive -c -o stplqt2.o stplqt2.f -gfortran -O2 -frecursive -c -o stpmlqt.o stpmlqt.f -gfortran -O2 -frecursive -c -o sorhr_col.o sorhr_col.f -gfortran -O2 -frecursive -c -o slaorhr_col_getrfnp.o slaorhr_col_getrfnp.f -gfortran -O2 -frecursive -c -o slaorhr_col_getrfnp2.o slaorhr_col_getrfnp2.f -gfortran -O2 -frecursive -c -o ssytrd_2stage.o ssytrd_2stage.f -gfortran -O2 -frecursive -c -o ssytrd_sy2sb.o ssytrd_sy2sb.f -gfortran -O2 -frecursive -c -o ssytrd_sb2st.o ssytrd_sb2st.F -gfortran -O2 -frecursive -c -o ssb2st_kernels.o ssb2st_kernels.f -gfortran -O2 -frecursive -c -o ssyevd_2stage.o ssyevd_2stage.f -gfortran -O2 -frecursive -c -o ssyev_2stage.o ssyev_2stage.f -gfortran -O2 -frecursive -c -o ssyevx_2stage.o ssyevx_2stage.f -gfortran -O2 -frecursive -c -o ssyevr_2stage.o ssyevr_2stage.f -gfortran -O2 -frecursive -c -o ssbev_2stage.o ssbev_2stage.f -gfortran -O2 -frecursive -c -o ssbevx_2stage.o ssbevx_2stage.f -gfortran -O2 -frecursive -c -o ssbevd_2stage.o ssbevd_2stage.f -gfortran -O2 -frecursive -c -o ssygv_2stage.o ssygv_2stage.f -gfortran -O2 -frecursive -c -o sgesvdq.o sgesvdq.f -gfortran -O2 -frecursive -c -o la_constants.o la_constants.f90 -gfortran -O2 -frecursive -c -o dpotrf2.o dpotrf2.f -gfortran -O2 -frecursive -c -o dgetrf2.o dgetrf2.f -gfortran -O2 -frecursive -c -o dbdsvdx.o dbdsvdx.f -gfortran -O2 -frecursive -c -o dgbbrd.o dgbbrd.f -gfortran -O2 -frecursive -c -o dgbcon.o dgbcon.f -gfortran -O2 -frecursive -c -o dgbequ.o dgbequ.f -gfortran -O2 -frecursive -c -o dgbrfs.o dgbrfs.f -gfortran -O2 -frecursive -c -o dgbsv.o dgbsv.f -gfortran -O2 -frecursive -c -o dgbsvx.o dgbsvx.f -gfortran -O2 -frecursive -c -o dgbtf2.o dgbtf2.f -gfortran -O2 -frecursive -c -o dgbtrf.o dgbtrf.f -gfortran -O2 -frecursive -c -o dgbtrs.o dgbtrs.f -gfortran -O2 -frecursive -c -o dgebak.o dgebak.f -gfortran -O2 -frecursive -c -o dgebal.o dgebal.f -gfortran -O2 -frecursive -c -o dgebd2.o dgebd2.f -gfortran -O2 -frecursive -c -o dgebrd.o dgebrd.f -gfortran -O2 -frecursive -c -o dgecon.o dgecon.f -gfortran -O2 -frecursive -c -o dgeequ.o dgeequ.f -gfortran -O2 -frecursive -c -o dgees.o dgees.f -gfortran -O2 -frecursive -c -o dgeesx.o dgeesx.f -gfortran -O2 -frecursive -c -o dgeev.o dgeev.f -gfortran -O2 -frecursive -c -o dgeevx.o dgeevx.f -gfortran -O2 -frecursive -c -o dgehd2.o dgehd2.f -gfortran -O2 -frecursive -c -o dgehrd.o dgehrd.f -gfortran -O2 -frecursive -c -o dgelq2.o dgelq2.f -gfortran -O2 -frecursive -c -o dgelqf.o dgelqf.f -gfortran -O2 -frecursive -c -o dgels.o dgels.f -gfortran -O2 -frecursive -c -o dgelst.o dgelst.f -gfortran -O2 -frecursive -c -o dgelsd.o dgelsd.f -gfortran -O2 -frecursive -c -o dgelss.o dgelss.f -gfortran -O2 -frecursive -c -o dgelsy.o dgelsy.f -gfortran -O2 -frecursive -c -o dgeql2.o dgeql2.f -gfortran -O2 -frecursive -c -o dgeqlf.o dgeqlf.f -gfortran -O2 -frecursive -c -o dgeqp3.o dgeqp3.f -gfortran -O2 -frecursive -c -o dgeqp3rk.o dgeqp3rk.f -gfortran -O2 -frecursive -c -o dgeqr2.o dgeqr2.f -gfortran -O2 -frecursive -c -o dgeqr2p.o dgeqr2p.f -gfortran -O2 -frecursive -c -o dgeqrf.o dgeqrf.f -gfortran -O2 -frecursive -c -o dgeqrfp.o dgeqrfp.f -gfortran -O2 -frecursive -c -o dgerfs.o dgerfs.f -gfortran -O2 -frecursive -c -o dgerq2.o dgerq2.f -gfortran -O2 -frecursive -c -o dgerqf.o dgerqf.f -gfortran -O2 -frecursive -c -o dgesc2.o dgesc2.f -gfortran -O2 -frecursive -c -o dgesdd.o dgesdd.f -gfortran -O2 -frecursive -c -o dgesv.o dgesv.f -gfortran -O2 -frecursive -c -o dgesvd.o dgesvd.f -gfortran -O2 -frecursive -c -o dgesvdx.o dgesvdx.f -gfortran -O2 -frecursive -c -o dgesvx.o dgesvx.f -gfortran -O2 -frecursive -c -o dgetc2.o dgetc2.f -gfortran -O2 -frecursive -c -o dgetf2.o dgetf2.f -gfortran -O2 -frecursive -c -o dgetrf.o dgetrf.f -gfortran -O2 -frecursive -c -o dgetri.o dgetri.f -gfortran -O2 -frecursive -c -o dgetrs.o dgetrs.f -gfortran -O2 -frecursive -c -o dggbak.o dggbak.f -gfortran -O2 -frecursive -c -o dggbal.o dggbal.f -gfortran -O2 -frecursive -c -o dgges.o dgges.f -gfortran -O2 -frecursive -c -o dgges3.o dgges3.f -gfortran -O2 -frecursive -c -o dggesx.o dggesx.f -gfortran -O2 -frecursive -c -o dggev.o dggev.f -gfortran -O2 -frecursive -c -o dggev3.o dggev3.f -gfortran -O2 -frecursive -c -o dggevx.o dggevx.f -gfortran -O2 -frecursive -c -o dggglm.o dggglm.f -gfortran -O2 -frecursive -c -o dgghrd.o dgghrd.f -gfortran -O2 -frecursive -c -o dgghd3.o dgghd3.f -gfortran -O2 -frecursive -c -o dgglse.o dgglse.f -gfortran -O2 -frecursive -c -o dggqrf.o dggqrf.f -gfortran -O2 -frecursive -c -o dggrqf.o dggrqf.f -gfortran -O2 -frecursive -c -o dggsvd3.o dggsvd3.f -gfortran -O2 -frecursive -c -o dggsvp3.o dggsvp3.f -gfortran -O2 -frecursive -c -o dgtcon.o dgtcon.f -gfortran -O2 -frecursive -c -o dgtrfs.o dgtrfs.f -gfortran -O2 -frecursive -c -o dgtsv.o dgtsv.f -gfortran -O2 -frecursive -c -o dgtsvx.o dgtsvx.f -gfortran -O2 -frecursive -c -o dgttrf.o dgttrf.f -gfortran -O2 -frecursive -c -o dgttrs.o dgttrs.f -gfortran -O2 -frecursive -c -o dgtts2.o dgtts2.f -gfortran -O2 -frecursive -c -o dhgeqz.o dhgeqz.f -gfortran -O2 -frecursive -c -o dlaqz0.o dlaqz0.f -gfortran -O2 -frecursive -c -o dlaqz1.o dlaqz1.f -gfortran -O2 -frecursive -c -o dlaqz2.o dlaqz2.f -gfortran -O2 -frecursive -c -o dlaqz3.o dlaqz3.f -gfortran -O2 -frecursive -c -o dlaqz4.o dlaqz4.f -gfortran -O2 -frecursive -c -o dhsein.o dhsein.f -gfortran -O2 -frecursive -c -o dhseqr.o dhseqr.f -gfortran -O2 -frecursive -c -o dlabrd.o dlabrd.f -gfortran -O2 -frecursive -c -o dlacon.o dlacon.f -gfortran -O2 -frecursive -c -o dlacn2.o dlacn2.f -gfortran -O2 -frecursive -c -o dlaein.o dlaein.f -gfortran -O2 -frecursive -c -o dlaexc.o dlaexc.f -gfortran -O2 -frecursive -c -o dlag2.o dlag2.f -gfortran -O2 -frecursive -c -o dlags2.o dlags2.f -gfortran -O2 -frecursive -c -o dlagtm.o dlagtm.f -gfortran -O2 -frecursive -c -o dlagv2.o dlagv2.f -gfortran -O2 -frecursive -c -o dlahqr.o dlahqr.f -gfortran -O2 -frecursive -c -o dlahr2.o dlahr2.f -gfortran -O2 -frecursive -c -o dlaic1.o dlaic1.f -gfortran -O2 -frecursive -c -o dlaln2.o dlaln2.f -gfortran -O2 -frecursive -c -o dlals0.o dlals0.f -gfortran -O2 -frecursive -c -o dlalsa.o dlalsa.f -gfortran -O2 -frecursive -c -o dlalsd.o dlalsd.f -gfortran -O2 -frecursive -c -o dlangb.o dlangb.f -gfortran -O2 -frecursive -c -o dlange.o dlange.f -gfortran -O2 -frecursive -c -o dlangt.o dlangt.f -gfortran -O2 -frecursive -c -o dlanhs.o dlanhs.f -gfortran -O2 -frecursive -c -o dlansb.o dlansb.f -gfortran -O2 -frecursive -c -o dlansp.o dlansp.f -gfortran -O2 -frecursive -c -o dlansy.o dlansy.f -gfortran -O2 -frecursive -c -o dlantb.o dlantb.f -gfortran -O2 -frecursive -c -o dlantp.o dlantp.f -gfortran -O2 -frecursive -c -o dlantr.o dlantr.f -gfortran -O2 -frecursive -c -o dlanv2.o dlanv2.f -gfortran -O2 -frecursive -c -o dlapll.o dlapll.f -gfortran -O2 -frecursive -c -o dlapmt.o dlapmt.f -gfortran -O2 -frecursive -c -o dlaqgb.o dlaqgb.f -gfortran -O2 -frecursive -c -o dlaqge.o dlaqge.f -gfortran -O2 -frecursive -c -o dlaqp2.o dlaqp2.f -gfortran -O2 -frecursive -c -o dlaqps.o dlaqps.f -gfortran -O2 -frecursive -c -o dlaqp2rk.o dlaqp2rk.f -gfortran -O2 -frecursive -c -o dlaqp3rk.o dlaqp3rk.f -gfortran -O2 -frecursive -c -o dlaqsb.o dlaqsb.f -gfortran -O2 -frecursive -c -o dlaqsp.o dlaqsp.f -gfortran -O2 -frecursive -c -o dlaqsy.o dlaqsy.f -gfortran -O2 -frecursive -c -o dlaqr0.o dlaqr0.f -gfortran -O2 -frecursive -c -o dlaqr1.o dlaqr1.f -gfortran -O2 -frecursive -c -o dlaqr2.o dlaqr2.f -gfortran -O2 -frecursive -c -o dlaqr3.o dlaqr3.f -gfortran -O2 -frecursive -c -o dlaqr4.o dlaqr4.f -gfortran -O2 -frecursive -c -o dlaqr5.o dlaqr5.f -gfortran -O2 -frecursive -c -o dlaqtr.o dlaqtr.f -gfortran -O2 -frecursive -c -o dlar1v.o dlar1v.f -gfortran -O2 -frecursive -c -o dlar2v.o dlar2v.f -gfortran -O2 -frecursive -c -o iladlr.o iladlr.f -gfortran -O2 -frecursive -c -o iladlc.o iladlc.f -gfortran -O2 -frecursive -c -o dlarf.o dlarf.f -gfortran -O2 -frecursive -c -o dlarf1.o dlarf1.f -gfortran -O2 -frecursive -c -o dlarfb.o dlarfb.f -gfortran -O2 -frecursive -c -o dlarfb_gett.o dlarfb_gett.f -gfortran -O2 -frecursive -c -o dlarfg.o dlarfg.f -gfortran -O2 -frecursive -c -o dlarfgp.o dlarfgp.f -gfortran -O2 -frecursive -c -o dlarft.o dlarft.f -gfortran -O2 -frecursive -c -o dlarfx.o dlarfx.f -gfortran -O2 -frecursive -c -o dlarfy.o dlarfy.f -gfortran -O2 -frecursive -c -o dlargv.o dlargv.f -gfortran -O2 -frecursive -c -o dlarmm.o dlarmm.f -gfortran -O2 -frecursive -c -o dlarrv.o dlarrv.f -gfortran -O2 -frecursive -c -o dlartv.o dlartv.f -gfortran -O2 -frecursive -c -o dlarz.o dlarz.f -gfortran -O2 -frecursive -c -o dlarzb.o dlarzb.f -gfortran -O2 -frecursive -c -o dlarzt.o dlarzt.f -gfortran -O2 -frecursive -c -o dlaswp.o dlaswp.f -gfortran -O2 -frecursive -c -o dlasy2.o dlasy2.f -gfortran -O2 -frecursive -c -o dlasyf.o dlasyf.f -gfortran -O2 -frecursive -c -o dlasyf_rook.o dlasyf_rook.f -gfortran -O2 -frecursive -c -o dlasyf_rk.o dlasyf_rk.f -gfortran -O2 -frecursive -c -o dlatbs.o dlatbs.f -gfortran -O2 -frecursive -c -o dlatdf.o dlatdf.f -gfortran -O2 -frecursive -c -o dlatps.o dlatps.f -gfortran -O2 -frecursive -c -o dlatrd.o dlatrd.f -gfortran -O2 -frecursive -c -o dlatrs.o dlatrs.f -gfortran -O2 -frecursive -c -o dlatrs3.o dlatrs3.f -gfortran -O2 -frecursive -c -o dlatrz.o dlatrz.f -gfortran -O2 -frecursive -c -o dlauu2.o dlauu2.f -gfortran -O2 -frecursive -c -o dlauum.o dlauum.f -gfortran -O2 -frecursive -c -o dopgtr.o dopgtr.f -gfortran -O2 -frecursive -c -o dopmtr.o dopmtr.f -gfortran -O2 -frecursive -c -o dorg2l.o dorg2l.f -gfortran -O2 -frecursive -c -o dorg2r.o dorg2r.f -gfortran -O2 -frecursive -c -o dorgbr.o dorgbr.f -gfortran -O2 -frecursive -c -o dorghr.o dorghr.f -gfortran -O2 -frecursive -c -o dorgl2.o dorgl2.f -gfortran -O2 -frecursive -c -o dorglq.o dorglq.f -gfortran -O2 -frecursive -c -o dorgql.o dorgql.f -gfortran -O2 -frecursive -c -o dorgqr.o dorgqr.f -gfortran -O2 -frecursive -c -o dorgr2.o dorgr2.f -gfortran -O2 -frecursive -c -o dorgrq.o dorgrq.f -gfortran -O2 -frecursive -c -o dorgtr.o dorgtr.f -gfortran -O2 -frecursive -c -o dorgtsqr.o dorgtsqr.f -gfortran -O2 -frecursive -c -o dorgtsqr_row.o dorgtsqr_row.f -gfortran -O2 -frecursive -c -o dorm2l.o dorm2l.f -gfortran -O2 -frecursive -c -o dorm2r.o dorm2r.f -gfortran -O2 -frecursive -c -o dorm22.o dorm22.f -gfortran -O2 -frecursive -c -o dormbr.o dormbr.f -gfortran -O2 -frecursive -c -o dormhr.o dormhr.f -gfortran -O2 -frecursive -c -o dorml2.o dorml2.f -gfortran -O2 -frecursive -c -o dormlq.o dormlq.f -gfortran -O2 -frecursive -c -o dormql.o dormql.f -gfortran -O2 -frecursive -c -o dormqr.o dormqr.f -gfortran -O2 -frecursive -c -o dormr2.o dormr2.f -gfortran -O2 -frecursive -c -o dormr3.o dormr3.f -gfortran -O2 -frecursive -c -o dormrq.o dormrq.f -gfortran -O2 -frecursive -c -o dormrz.o dormrz.f -gfortran -O2 -frecursive -c -o dormtr.o dormtr.f -gfortran -O2 -frecursive -c -o dpbcon.o dpbcon.f -gfortran -O2 -frecursive -c -o dpbequ.o dpbequ.f -gfortran -O2 -frecursive -c -o dpbrfs.o dpbrfs.f -gfortran -O2 -frecursive -c -o dpbstf.o dpbstf.f -gfortran -O2 -frecursive -c -o dpbsv.o dpbsv.f -gfortran -O2 -frecursive -c -o dpbsvx.o dpbsvx.f -gfortran -O2 -frecursive -c -o dpbtf2.o dpbtf2.f -gfortran -O2 -frecursive -c -o dpbtrf.o dpbtrf.f -gfortran -O2 -frecursive -c -o dpbtrs.o dpbtrs.f -gfortran -O2 -frecursive -c -o dpocon.o dpocon.f -gfortran -O2 -frecursive -c -o dpoequ.o dpoequ.f -gfortran -O2 -frecursive -c -o dporfs.o dporfs.f -gfortran -O2 -frecursive -c -o dposv.o dposv.f -gfortran -O2 -frecursive -c -o dposvx.o dposvx.f -gfortran -O2 -frecursive -c -o dpotf2.o dpotf2.f -gfortran -O2 -frecursive -c -o dpotrf.o dpotrf.f -gfortran -O2 -frecursive -c -o dpotri.o dpotri.f -gfortran -O2 -frecursive -c -o dpotrs.o dpotrs.f -gfortran -O2 -frecursive -c -o dpstrf.o dpstrf.f -gfortran -O2 -frecursive -c -o dpstf2.o dpstf2.f -gfortran -O2 -frecursive -c -o dppcon.o dppcon.f -gfortran -O2 -frecursive -c -o dppequ.o dppequ.f -gfortran -O2 -frecursive -c -o dpprfs.o dpprfs.f -gfortran -O2 -frecursive -c -o dppsv.o dppsv.f -gfortran -O2 -frecursive -c -o dppsvx.o dppsvx.f -gfortran -O2 -frecursive -c -o dpptrf.o dpptrf.f -gfortran -O2 -frecursive -c -o dpptri.o dpptri.f -gfortran -O2 -frecursive -c -o dpptrs.o dpptrs.f -gfortran -O2 -frecursive -c -o dptcon.o dptcon.f -gfortran -O2 -frecursive -c -o dpteqr.o dpteqr.f -gfortran -O2 -frecursive -c -o dptrfs.o dptrfs.f -gfortran -O2 -frecursive -c -o dptsv.o dptsv.f -gfortran -O2 -frecursive -c -o dptsvx.o dptsvx.f -gfortran -O2 -frecursive -c -o dpttrs.o dpttrs.f -gfortran -O2 -frecursive -c -o dptts2.o dptts2.f -gfortran -O2 -frecursive -c -o drscl.o drscl.f -gfortran -O2 -frecursive -c -o dsbev.o dsbev.f -gfortran -O2 -frecursive -c -o dsbevd.o dsbevd.f -gfortran -O2 -frecursive -c -o dsbevx.o dsbevx.f -gfortran -O2 -frecursive -c -o dsbgst.o dsbgst.f -gfortran -O2 -frecursive -c -o dsbgv.o dsbgv.f -gfortran -O2 -frecursive -c -o dsbgvd.o dsbgvd.f -gfortran -O2 -frecursive -c -o dsbgvx.o dsbgvx.f -gfortran -O2 -frecursive -c -o dsbtrd.o dsbtrd.f -gfortran -O2 -frecursive -c -o dspcon.o dspcon.f -gfortran -O2 -frecursive -c -o dspev.o dspev.f -gfortran -O2 -frecursive -c -o dspevd.o dspevd.f -gfortran -O2 -frecursive -c -o dspevx.o dspevx.f -gfortran -O2 -frecursive -c -o dspgst.o dspgst.f -gfortran -O2 -frecursive -c -o dspgv.o dspgv.f -gfortran -O2 -frecursive -c -o dspgvd.o dspgvd.f -gfortran -O2 -frecursive -c -o dspgvx.o dspgvx.f -gfortran -O2 -frecursive -c -o dsprfs.o dsprfs.f -gfortran -O2 -frecursive -c -o dspsv.o dspsv.f -gfortran -O2 -frecursive -c -o dspsvx.o dspsvx.f -gfortran -O2 -frecursive -c -o dsptrd.o dsptrd.f -gfortran -O2 -frecursive -c -o dsptrf.o dsptrf.f -gfortran -O2 -frecursive -c -o dsptri.o dsptri.f -gfortran -O2 -frecursive -c -o dsptrs.o dsptrs.f -gfortran -O2 -frecursive -c -o dstegr.o dstegr.f -gfortran -O2 -frecursive -c -o dstein.o dstein.f -gfortran -O2 -frecursive -c -o dstev.o dstev.f -gfortran -O2 -frecursive -c -o dstevd.o dstevd.f -gfortran -O2 -frecursive -c -o dstevr.o dstevr.f -gfortran -O2 -frecursive -c -o dstevx.o dstevx.f -gfortran -O2 -frecursive -c -o dsycon.o dsycon.f -gfortran -O2 -frecursive -c -o dsyev.o dsyev.f -gfortran -O2 -frecursive -c -o dsyevd.o dsyevd.f -gfortran -O2 -frecursive -c -o dsyevr.o dsyevr.f -gfortran -O2 -frecursive -c -o dsyevx.o dsyevx.f -gfortran -O2 -frecursive -c -o dsygs2.o dsygs2.f -gfortran -O2 -frecursive -c -o dsygst.o dsygst.f -gfortran -O2 -frecursive -c -o dsygv.o dsygv.f -gfortran -O2 -frecursive -c -o dsygvd.o dsygvd.f -gfortran -O2 -frecursive -c -o dsygvx.o dsygvx.f -gfortran -O2 -frecursive -c -o dsyrfs.o dsyrfs.f -gfortran -O2 -frecursive -c -o dsysv.o dsysv.f -gfortran -O2 -frecursive -c -o dsysvx.o dsysvx.f -gfortran -O2 -frecursive -c -o dsytd2.o dsytd2.f -gfortran -O2 -frecursive -c -o dsytf2.o dsytf2.f -gfortran -O2 -frecursive -c -o dsytrd.o dsytrd.f -gfortran -O2 -frecursive -c -o dsytrf.o dsytrf.f -gfortran -O2 -frecursive -c -o dsytri.o dsytri.f -gfortran -O2 -frecursive -c -o dsytri2.o dsytri2.f -gfortran -O2 -frecursive -c -o dsytri2x.o dsytri2x.f -gfortran -O2 -frecursive -c -o dsyswapr.o dsyswapr.f -gfortran -O2 -frecursive -c -o dsytrs.o dsytrs.f -gfortran -O2 -frecursive -c -o dsytrs2.o dsytrs2.f -gfortran -O2 -frecursive -c -o dsyconv.o dsyconv.f -gfortran -O2 -frecursive -c -o dsyconvf.o dsyconvf.f -gfortran -O2 -frecursive -c -o dsyconvf_rook.o dsyconvf_rook.f -gfortran -O2 -frecursive -c -o dsytf2_rook.o dsytf2_rook.f -gfortran -O2 -frecursive -c -o dsytrf_rook.o dsytrf_rook.f -gfortran -O2 -frecursive -c -o dsytrs_rook.o dsytrs_rook.f -gfortran -O2 -frecursive -c -o dsytri_rook.o dsytri_rook.f -gfortran -O2 -frecursive -c -o dsycon_rook.o dsycon_rook.f -gfortran -O2 -frecursive -c -o dsysv_rook.o dsysv_rook.f -gfortran -O2 -frecursive -c -o dsytf2_rk.o dsytf2_rk.f -gfortran -O2 -frecursive -c -o dsytrf_rk.o dsytrf_rk.f -gfortran -O2 -frecursive -c -o dsytrs_3.o dsytrs_3.f -gfortran -O2 -frecursive -c -o dsytri_3.o dsytri_3.f -gfortran -O2 -frecursive -c -o dsytri_3x.o dsytri_3x.f -gfortran -O2 -frecursive -c -o dsycon_3.o dsycon_3.f -gfortran -O2 -frecursive -c -o dsysv_rk.o dsysv_rk.f -gfortran -O2 -frecursive -c -o dlasyf_aa.o dlasyf_aa.f -gfortran -O2 -frecursive -c -o dsysv_aa.o dsysv_aa.f -gfortran -O2 -frecursive -c -o dsytrf_aa.o dsytrf_aa.f -gfortran -O2 -frecursive -c -o dsytrs_aa.o dsytrs_aa.f -gfortran -O2 -frecursive -c -o dsysv_aa_2stage.o dsysv_aa_2stage.f -gfortran -O2 -frecursive -c -o dsytrf_aa_2stage.o dsytrf_aa_2stage.f -gfortran -O2 -frecursive -c -o dsytrs_aa_2stage.o dsytrs_aa_2stage.f -gfortran -O2 -frecursive -c -o dtbcon.o dtbcon.f -gfortran -O2 -frecursive -c -o dtbrfs.o dtbrfs.f -gfortran -O2 -frecursive -c -o dtbtrs.o dtbtrs.f -gfortran -O2 -frecursive -c -o dtgevc.o dtgevc.f -gfortran -O2 -frecursive -c -o dtgex2.o dtgex2.f -gfortran -O2 -frecursive -c -o dtgexc.o dtgexc.f -gfortran -O2 -frecursive -c -o dtgsen.o dtgsen.f -gfortran -O2 -frecursive -c -o dtgsja.o dtgsja.f -gfortran -O2 -frecursive -c -o dtgsna.o dtgsna.f -gfortran -O2 -frecursive -c -o dtgsy2.o dtgsy2.f -gfortran -O2 -frecursive -c -o dtgsyl.o dtgsyl.f -gfortran -O2 -frecursive -c -o dtpcon.o dtpcon.f -gfortran -O2 -frecursive -c -o dtprfs.o dtprfs.f -gfortran -O2 -frecursive -c -o dtptri.o dtptri.f -gfortran -O2 -frecursive -c -o dtptrs.o dtptrs.f -gfortran -O2 -frecursive -c -o dtrcon.o dtrcon.f -gfortran -O2 -frecursive -c -o dtrevc.o dtrevc.f -gfortran -O2 -frecursive -c -o dtrevc3.o dtrevc3.f -gfortran -O2 -frecursive -c -o dtrexc.o dtrexc.f -gfortran -O2 -frecursive -c -o dtrrfs.o dtrrfs.f -gfortran -O2 -frecursive -c -o dtrsen.o dtrsen.f -gfortran -O2 -frecursive -c -o dtrsna.o dtrsna.f -gfortran -O2 -frecursive -c -o dtrsyl.o dtrsyl.f -gfortran -O2 -frecursive -c -o dtrsyl3.o dtrsyl3.f -gfortran -O2 -frecursive -c -o dtrti2.o dtrti2.f -gfortran -O2 -frecursive -c -o dtrtri.o dtrtri.f -gfortran -O2 -frecursive -c -o dtrtrs.o dtrtrs.f -gfortran -O2 -frecursive -c -o dtzrzf.o dtzrzf.f -gfortran -O2 -frecursive -c -o dstemr.o dstemr.f -gfortran -O2 -frecursive -c -o dsgesv.o dsgesv.f -gfortran -O2 -frecursive -c -o dsposv.o dsposv.f -gfortran -O2 -frecursive -c -o dlag2s.o dlag2s.f -gfortran -O2 -frecursive -c -o slag2d.o slag2d.f -gfortran -O2 -frecursive -c -o dlat2s.o dlat2s.f -gfortran -O2 -frecursive -c -o dlansf.o dlansf.f -gfortran -O2 -frecursive -c -o dpftrf.o dpftrf.f -gfortran -O2 -frecursive -c -o dpftri.o dpftri.f -gfortran -O2 -frecursive -c -o dpftrs.o dpftrs.f -gfortran -O2 -frecursive -c -o dsfrk.o dsfrk.f -gfortran -O2 -frecursive -c -o dtfsm.o dtfsm.f -gfortran -O2 -frecursive -c -o dtftri.o dtftri.f -gfortran -O2 -frecursive -c -o dtfttp.o dtfttp.f -gfortran -O2 -frecursive -c -o dtfttr.o dtfttr.f -gfortran -O2 -frecursive -c -o dtpttf.o dtpttf.f -gfortran -O2 -frecursive -c -o dtpttr.o dtpttr.f -gfortran -O2 -frecursive -c -o dtrttf.o dtrttf.f -gfortran -O2 -frecursive -c -o dtrttp.o dtrttp.f -gfortran -O2 -frecursive -c -o dgejsv.o dgejsv.f -gfortran -O2 -frecursive -c -o dgesvj.o dgesvj.f -gfortran -O2 -frecursive -c -o dgsvj0.o dgsvj0.f -gfortran -O2 -frecursive -c -o dgsvj1.o dgsvj1.f -gfortran -O2 -frecursive -c -o dgeequb.o dgeequb.f -gfortran -O2 -frecursive -c -o dsyequb.o dsyequb.f -gfortran -O2 -frecursive -c -o dpoequb.o dpoequb.f -gfortran -O2 -frecursive -c -o dgbequb.o dgbequb.f -gfortran -O2 -frecursive -c -o dbbcsd.o dbbcsd.f -gfortran -O2 -frecursive -c -o dlapmr.o dlapmr.f -gfortran -O2 -frecursive -c -o dorbdb.o dorbdb.f -gfortran -O2 -frecursive -c -o dorbdb1.o dorbdb1.f -gfortran -O2 -frecursive -c -o dorbdb2.o dorbdb2.f -gfortran -O2 -frecursive -c -o dorbdb3.o dorbdb3.f -gfortran -O2 -frecursive -c -o dorbdb4.o dorbdb4.f -gfortran -O2 -frecursive -c -o dorbdb5.o dorbdb5.f -gfortran -O2 -frecursive -c -o dorbdb6.o dorbdb6.f -gfortran -O2 -frecursive -c -o dorcsd.o dorcsd.f -gfortran -O2 -frecursive -c -o dorcsd2by1.o dorcsd2by1.f -gfortran -O2 -frecursive -c -o dgeqrt.o dgeqrt.f -gfortran -O2 -frecursive -c -o dgeqrt2.o dgeqrt2.f -gfortran -O2 -frecursive -c -o dgeqrt3.o dgeqrt3.f -gfortran -O2 -frecursive -c -o dgemqrt.o dgemqrt.f -gfortran -O2 -frecursive -c -o dtpqrt.o dtpqrt.f -gfortran -O2 -frecursive -c -o dtpqrt2.o dtpqrt2.f -gfortran -O2 -frecursive -c -o dtpmqrt.o dtpmqrt.f -gfortran -O2 -frecursive -c -o dtprfb.o dtprfb.f -gfortran -O2 -frecursive -c -o dgelqt.o dgelqt.f -gfortran -O2 -frecursive -c -o dgelqt3.o dgelqt3.f -gfortran -O2 -frecursive -c -o dgemlqt.o dgemlqt.f -gfortran -O2 -frecursive -c -o dgetsls.o dgetsls.f -gfortran -O2 -frecursive -c -o dgetsqrhrt.o dgetsqrhrt.f -gfortran -O2 -frecursive -c -o dgeqr.o dgeqr.f -gfortran -O2 -frecursive -c -o dlatsqr.o dlatsqr.f -gfortran -O2 -frecursive -c -o dlamtsqr.o dlamtsqr.f -gfortran -O2 -frecursive -c -o dgemqr.o dgemqr.f -gfortran -O2 -frecursive -c -o dgelq.o dgelq.f -gfortran -O2 -frecursive -c -o dlaswlq.o dlaswlq.f -gfortran -O2 -frecursive -c -o dlamswlq.o dlamswlq.f -gfortran -O2 -frecursive -c -o dgemlq.o dgemlq.f -gfortran -O2 -frecursive -c -o dtplqt.o dtplqt.f -gfortran -O2 -frecursive -c -o dtplqt2.o dtplqt2.f -gfortran -O2 -frecursive -c -o dtpmlqt.o dtpmlqt.f -gfortran -O2 -frecursive -c -o dorhr_col.o dorhr_col.f -gfortran -O2 -frecursive -c -o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp.f -gfortran -O2 -frecursive -c -o dlaorhr_col_getrfnp2.o dlaorhr_col_getrfnp2.f -gfortran -O2 -frecursive -c -o dsytrd_2stage.o dsytrd_2stage.f -gfortran -O2 -frecursive -c -o dsytrd_sy2sb.o dsytrd_sy2sb.f -gfortran -O2 -frecursive -c -o dsb2st_kernels.o dsb2st_kernels.f -gfortran -O2 -frecursive -c -o dsyevd_2stage.o dsyevd_2stage.f -gfortran -O2 -frecursive -c -o dsyev_2stage.o dsyev_2stage.f -gfortran -O2 -frecursive -c -o dsyevx_2stage.o dsyevx_2stage.f -gfortran -O2 -frecursive -c -o dsyevr_2stage.o dsyevr_2stage.f -gfortran -O2 -frecursive -c -o dsbev_2stage.o dsbev_2stage.f -gfortran -O2 -frecursive -c -o dsbevx_2stage.o dsbevx_2stage.f -gfortran -O2 -frecursive -c -o dsbevd_2stage.o dsbevd_2stage.f -gfortran -O2 -frecursive -c -o dsygv_2stage.o dsygv_2stage.f -gfortran -O2 -frecursive -c -o dgesvdq.o dgesvdq.f -gfortran -O2 -frecursive -c -o spotrs.o spotrs.f -gfortran -O2 -frecursive -c -o sgetrs.o sgetrs.f -gfortran -O2 -frecursive -c -o spotrf.o spotrf.f -gfortran -O2 -frecursive -c -o sgetrf.o sgetrf.f -gfortran -O2 -frecursive -c -o cpotrf2.o cpotrf2.f -gfortran -O2 -frecursive -c -o cgetrf2.o cgetrf2.f -gfortran -O2 -frecursive -c -o cbdsqr.o cbdsqr.f -gfortran -O2 -frecursive -c -o cgbbrd.o cgbbrd.f -gfortran -O2 -frecursive -c -o cgbcon.o cgbcon.f -gfortran -O2 -frecursive -c -o cgbequ.o cgbequ.f -gfortran -O2 -frecursive -c -o cgbrfs.o cgbrfs.f -gfortran -O2 -frecursive -c -o cgbsv.o cgbsv.f -gfortran -O2 -frecursive -c -o cgbsvx.o cgbsvx.f -gfortran -O2 -frecursive -c -o cgbtf2.o cgbtf2.f -gfortran -O2 -frecursive -c -o cgbtrf.o cgbtrf.f -gfortran -O2 -frecursive -c -o cgbtrs.o cgbtrs.f -gfortran -O2 -frecursive -c -o cgebak.o cgebak.f -gfortran -O2 -frecursive -c -o cgebal.o cgebal.f -gfortran -O2 -frecursive -c -o cgebd2.o cgebd2.f -gfortran -O2 -frecursive -c -o cgebrd.o cgebrd.f -gfortran -O2 -frecursive -c -o cgecon.o cgecon.f -gfortran -O2 -frecursive -c -o cgeequ.o cgeequ.f -gfortran -O2 -frecursive -c -o cgees.o cgees.f -gfortran -O2 -frecursive -c -o cgeesx.o cgeesx.f -gfortran -O2 -frecursive -c -o cgeev.o cgeev.f -gfortran -O2 -frecursive -c -o cgeevx.o cgeevx.f -gfortran -O2 -frecursive -c -o cgehd2.o cgehd2.f -gfortran -O2 -frecursive -c -o cgehrd.o cgehrd.f -gfortran -O2 -frecursive -c -o cgelq2.o cgelq2.f -gfortran -O2 -frecursive -c -o cgelqf.o cgelqf.f -gfortran -O2 -frecursive -c -o cgels.o cgels.f -gfortran -O2 -frecursive -c -o cgelst.o cgelst.f -gfortran -O2 -frecursive -c -o cgelsd.o cgelsd.f -gfortran -O2 -frecursive -c -o cgelss.o cgelss.f -gfortran -O2 -frecursive -c -o cgelsy.o cgelsy.f -gfortran -O2 -frecursive -c -o cgeql2.o cgeql2.f -gfortran -O2 -frecursive -c -o cgeqlf.o cgeqlf.f -gfortran -O2 -frecursive -c -o cgeqp3.o cgeqp3.f -gfortran -O2 -frecursive -c -o cgeqp3rk.o cgeqp3rk.f -gfortran -O2 -frecursive -c -o cgeqr2.o cgeqr2.f -gfortran -O2 -frecursive -c -o cgeqr2p.o cgeqr2p.f -gfortran -O2 -frecursive -c -o cgeqrf.o cgeqrf.f -gfortran -O2 -frecursive -c -o cgeqrfp.o cgeqrfp.f -gfortran -O2 -frecursive -c -o cgerfs.o cgerfs.f -gfortran -O2 -frecursive -c -o cgerq2.o cgerq2.f -gfortran -O2 -frecursive -c -o cgerqf.o cgerqf.f -gfortran -O2 -frecursive -c -o cgesc2.o cgesc2.f -gfortran -O2 -frecursive -c -o cgesdd.o cgesdd.f -gfortran -O2 -frecursive -c -o cgesv.o cgesv.f -gfortran -O2 -frecursive -c -o cgesvd.o cgesvd.f -gfortran -O2 -frecursive -c -o cgesvdx.o cgesvdx.f -gfortran -O2 -frecursive -c -o cgesvj.o cgesvj.f -gfortran -O2 -frecursive -c -o cgejsv.o cgejsv.f -gfortran -O2 -frecursive -c -o cgsvj0.o cgsvj0.f -gfortran -O2 -frecursive -c -o cgsvj1.o cgsvj1.f -gfortran -O2 -frecursive -c -o cgesvx.o cgesvx.f -gfortran -O2 -frecursive -c -o cgetc2.o cgetc2.f -gfortran -O2 -frecursive -c -o cgetf2.o cgetf2.f -gfortran -O2 -frecursive -c -o cgetri.o cgetri.f -gfortran -O2 -frecursive -c -o cggbak.o cggbak.f -gfortran -O2 -frecursive -c -o cggbal.o cggbal.f -gfortran -O2 -frecursive -c -o cgges.o cgges.f -gfortran -O2 -frecursive -c -o cgges3.o cgges3.f -gfortran -O2 -frecursive -c -o cggesx.o cggesx.f -gfortran -O2 -frecursive -c -o cggev.o cggev.f -gfortran -O2 -frecursive -c -o cggev3.o cggev3.f -gfortran -O2 -frecursive -c -o cggevx.o cggevx.f -gfortran -O2 -frecursive -c -o cggglm.o cggglm.f -gfortran -O2 -frecursive -c -o cgghrd.o cgghrd.f -gfortran -O2 -frecursive -c -o cgghd3.o cgghd3.f -gfortran -O2 -frecursive -c -o cgglse.o cgglse.f -gfortran -O2 -frecursive -c -o cggqrf.o cggqrf.f -gfortran -O2 -frecursive -c -o cggrqf.o cggrqf.f -gfortran -O2 -frecursive -c -o cggsvd3.o cggsvd3.f -gfortran -O2 -frecursive -c -o cggsvp3.o cggsvp3.f -gfortran -O2 -frecursive -c -o cgtcon.o cgtcon.f -gfortran -O2 -frecursive -c -o cgtrfs.o cgtrfs.f -gfortran -O2 -frecursive -c -o cgtsv.o cgtsv.f -gfortran -O2 -frecursive -c -o cgtsvx.o cgtsvx.f -gfortran -O2 -frecursive -c -o cgttrf.o cgttrf.f -gfortran -O2 -frecursive -c -o cgttrs.o cgttrs.f -gfortran -O2 -frecursive -c -o cgtts2.o cgtts2.f -gfortran -O2 -frecursive -c -o chbev.o chbev.f -gfortran -O2 -frecursive -c -o chbevd.o chbevd.f -gfortran -O2 -frecursive -c -o chbevx.o chbevx.f -gfortran -O2 -frecursive -c -o chbgst.o chbgst.f -gfortran -O2 -frecursive -c -o chbgv.o chbgv.f -gfortran -O2 -frecursive -c -o chbgvd.o chbgvd.f -gfortran -O2 -frecursive -c -o chbgvx.o chbgvx.f -gfortran -O2 -frecursive -c -o chbtrd.o chbtrd.f -gfortran -O2 -frecursive -c -o checon.o checon.f -gfortran -O2 -frecursive -c -o cheev.o cheev.f -gfortran -O2 -frecursive -c -o cheevd.o cheevd.f -gfortran -O2 -frecursive -c -o cheevr.o cheevr.f -gfortran -O2 -frecursive -c -o cheevx.o cheevx.f -gfortran -O2 -frecursive -c -o chegs2.o chegs2.f -gfortran -O2 -frecursive -c -o chegst.o chegst.f -gfortran -O2 -frecursive -c -o chegv.o chegv.f -gfortran -O2 -frecursive -c -o chegvd.o chegvd.f -gfortran -O2 -frecursive -c -o chegvx.o chegvx.f -gfortran -O2 -frecursive -c -o cherfs.o cherfs.f -gfortran -O2 -frecursive -c -o chesv.o chesv.f -gfortran -O2 -frecursive -c -o chesvx.o chesvx.f -gfortran -O2 -frecursive -c -o chetd2.o chetd2.f -gfortran -O2 -frecursive -c -o chetf2.o chetf2.f -gfortran -O2 -frecursive -c -o chetrd.o chetrd.f -gfortran -O2 -frecursive -c -o chetrf.o chetrf.f -gfortran -O2 -frecursive -c -o chetri.o chetri.f -gfortran -O2 -frecursive -c -o chetri2.o chetri2.f -gfortran -O2 -frecursive -c -o chetri2x.o chetri2x.f -gfortran -O2 -frecursive -c -o cheswapr.o cheswapr.f -gfortran -O2 -frecursive -c -o chetrs.o chetrs.f -gfortran -O2 -frecursive -c -o chetrs2.o chetrs2.f -gfortran -O2 -frecursive -c -o chetf2_rook.o chetf2_rook.f -gfortran -O2 -frecursive -c -o chetrf_rook.o chetrf_rook.f -gfortran -O2 -frecursive -c -o chetri_rook.o chetri_rook.f -gfortran -O2 -frecursive -c -o chetrs_rook.o chetrs_rook.f -gfortran -O2 -frecursive -c -o checon_rook.o checon_rook.f -gfortran -O2 -frecursive -c -o chesv_rook.o chesv_rook.f -gfortran -O2 -frecursive -c -o chetf2_rk.o chetf2_rk.f -gfortran -O2 -frecursive -c -o chetrf_rk.o chetrf_rk.f -gfortran -O2 -frecursive -c -o chetri_3.o chetri_3.f -gfortran -O2 -frecursive -c -o chetri_3x.o chetri_3x.f -gfortran -O2 -frecursive -c -o chetrs_3.o chetrs_3.f -gfortran -O2 -frecursive -c -o checon_3.o checon_3.f -gfortran -O2 -frecursive -c -o chesv_rk.o chesv_rk.f -gfortran -O2 -frecursive -c -o chesv_aa.o chesv_aa.f -gfortran -O2 -frecursive -c -o chetrf_aa.o chetrf_aa.f -gfortran -O2 -frecursive -c -o chetrs_aa.o chetrs_aa.f -gfortran -O2 -frecursive -c -o clahef_aa.o clahef_aa.f -gfortran -O2 -frecursive -c -o chesv_aa_2stage.o chesv_aa_2stage.f -gfortran -O2 -frecursive -c -o chetrf_aa_2stage.o chetrf_aa_2stage.f -gfortran -O2 -frecursive -c -o chetrs_aa_2stage.o chetrs_aa_2stage.f -gfortran -O2 -frecursive -c -o chgeqz.o chgeqz.f -gfortran -O2 -frecursive -c -o chpcon.o chpcon.f -gfortran -O2 -frecursive -c -o chpev.o chpev.f -gfortran -O2 -frecursive -c -o chpevd.o chpevd.f -gfortran -O2 -frecursive -c -o claqz0.o claqz0.f -gfortran -O2 -frecursive -c -o claqz1.o claqz1.f -gfortran -O2 -frecursive -c -o claqz2.o claqz2.f -gfortran -O2 -frecursive -c -o claqz3.o claqz3.f -gfortran -O2 -frecursive -c -o chpevx.o chpevx.f -gfortran -O2 -frecursive -c -o chpgst.o chpgst.f -gfortran -O2 -frecursive -c -o chpgv.o chpgv.f -gfortran -O2 -frecursive -c -o chpgvd.o chpgvd.f -gfortran -O2 -frecursive -c -o chpgvx.o chpgvx.f -gfortran -O2 -frecursive -c -o chprfs.o chprfs.f -gfortran -O2 -frecursive -c -o chpsv.o chpsv.f -gfortran -O2 -frecursive -c -o chpsvx.o chpsvx.f -gfortran -O2 -frecursive -c -o chptrd.o chptrd.f -gfortran -O2 -frecursive -c -o chptrf.o chptrf.f -gfortran -O2 -frecursive -c -o chptri.o chptri.f -gfortran -O2 -frecursive -c -o chptrs.o chptrs.f -gfortran -O2 -frecursive -c -o chsein.o chsein.f -gfortran -O2 -frecursive -c -o chseqr.o chseqr.f -gfortran -O2 -frecursive -c -o clabrd.o clabrd.f -gfortran -O2 -frecursive -c -o clacgv.o clacgv.f -gfortran -O2 -frecursive -c -o clacon.o clacon.f -gfortran -O2 -frecursive -c -o clacn2.o clacn2.f -gfortran -O2 -frecursive -c -o clacp2.o clacp2.f -gfortran -O2 -frecursive -c -o clacpy.o clacpy.f -gfortran -O2 -frecursive -c -o clacrm.o clacrm.f -gfortran -O2 -frecursive -c -o clacrt.o clacrt.f -gfortran -O2 -frecursive -c -o cladiv.o cladiv.f -gfortran -O2 -frecursive -c -o claed0.o claed0.f -gfortran -O2 -frecursive -c -o claed7.o claed7.f -gfortran -O2 -frecursive -c -o claed8.o claed8.f -gfortran -O2 -frecursive -c -o claein.o claein.f -gfortran -O2 -frecursive -c -o claesy.o claesy.f -gfortran -O2 -frecursive -c -o claev2.o claev2.f -gfortran -O2 -frecursive -c -o clags2.o clags2.f -gfortran -O2 -frecursive -c -o clagtm.o clagtm.f -gfortran -O2 -frecursive -c -o clahef.o clahef.f -gfortran -O2 -frecursive -c -o clahef_rook.o clahef_rook.f -gfortran -O2 -frecursive -c -o clahef_rk.o clahef_rk.f -gfortran -O2 -frecursive -c -o clahqr.o clahqr.f -gfortran -O2 -frecursive -c -o clahr2.o clahr2.f -gfortran -O2 -frecursive -c -o claic1.o claic1.f -gfortran -O2 -frecursive -c -o clals0.o clals0.f -gfortran -O2 -frecursive -c -o clalsa.o clalsa.f -gfortran -O2 -frecursive -c -o clalsd.o clalsd.f -gfortran -O2 -frecursive -c -o clangb.o clangb.f -gfortran -O2 -frecursive -c -o clange.o clange.f -gfortran -O2 -frecursive -c -o clangt.o clangt.f -gfortran -O2 -frecursive -c -o clanhb.o clanhb.f -gfortran -O2 -frecursive -c -o clanhe.o clanhe.f -gfortran -O2 -frecursive -c -o clanhp.o clanhp.f -gfortran -O2 -frecursive -c -o clanhs.o clanhs.f -gfortran -O2 -frecursive -c -o clanht.o clanht.f -gfortran -O2 -frecursive -c -o clansb.o clansb.f -gfortran -O2 -frecursive -c -o clansp.o clansp.f -gfortran -O2 -frecursive -c -o clansy.o clansy.f -gfortran -O2 -frecursive -c -o clantb.o clantb.f -gfortran -O2 -frecursive -c -o clantp.o clantp.f -gfortran -O2 -frecursive -c -o clantr.o clantr.f -gfortran -O2 -frecursive -c -o clapll.o clapll.f -gfortran -O2 -frecursive -c -o clapmt.o clapmt.f -gfortran -O2 -frecursive -c -o clarcm.o clarcm.f -gfortran -O2 -frecursive -c -o claqgb.o claqgb.f -gfortran -O2 -frecursive -c -o claqge.o claqge.f -gfortran -O2 -frecursive -c -o claqhb.o claqhb.f -gfortran -O2 -frecursive -c -o claqhe.o claqhe.f -gfortran -O2 -frecursive -c -o claqhp.o claqhp.f -gfortran -O2 -frecursive -c -o claqp2.o claqp2.f -gfortran -O2 -frecursive -c -o claqps.o claqps.f -gfortran -O2 -frecursive -c -o claqp2rk.o claqp2rk.f -gfortran -O2 -frecursive -c -o claqp3rk.o claqp3rk.f -gfortran -O2 -frecursive -c -o claqsb.o claqsb.f -gfortran -O2 -frecursive -c -o claqr0.o claqr0.f -gfortran -O2 -frecursive -c -o claqr1.o claqr1.f -gfortran -O2 -frecursive -c -o claqr2.o claqr2.f -gfortran -O2 -frecursive -c -o claqr3.o claqr3.f -gfortran -O2 -frecursive -c -o claqr4.o claqr4.f -gfortran -O2 -frecursive -c -o claqr5.o claqr5.f -gfortran -O2 -frecursive -c -o claqsp.o claqsp.f -gfortran -O2 -frecursive -c -o claqsy.o claqsy.f -gfortran -O2 -frecursive -c -o clar1v.o clar1v.f -gfortran -O2 -frecursive -c -o clar2v.o clar2v.f -gfortran -O2 -frecursive -c -o ilaclr.o ilaclr.f -gfortran -O2 -frecursive -c -o ilaclc.o ilaclc.f -gfortran -O2 -frecursive -c -o clarf.o clarf.f -gfortran -O2 -frecursive -c -o clarfb.o clarfb.f -gfortran -O2 -frecursive -c -o clarfb_gett.o clarfb_gett.f -gfortran -O2 -frecursive -c -o clarfg.o clarfg.f -gfortran -O2 -frecursive -c -o clarft.o clarft.f -gfortran -O2 -frecursive -c -o clarfgp.o clarfgp.f -gfortran -O2 -frecursive -c -o clarfx.o clarfx.f -gfortran -O2 -frecursive -c -o clarfy.o clarfy.f -gfortran -O2 -frecursive -c -o clargv.o clargv.f -gfortran -O2 -frecursive -c -o clarnv.o clarnv.f -gfortran -O2 -frecursive -c -o clarrv.o clarrv.f -gfortran -O2 -frecursive -c -o clartv.o clartv.f -gfortran -O2 -frecursive -c -o clarz.o clarz.f -gfortran -O2 -frecursive -c -o clarzb.o clarzb.f -gfortran -O2 -frecursive -c -o clarzt.o clarzt.f -gfortran -O2 -frecursive -c -o clascl.o clascl.f -gfortran -O2 -frecursive -c -o claset.o claset.f -gfortran -O2 -frecursive -c -o clasr.o clasr.f -gfortran -O2 -frecursive -c -o claswp.o claswp.f -gfortran -O2 -frecursive -c -o clasyf.o clasyf.f -gfortran -O2 -frecursive -c -o clasyf_rook.o clasyf_rook.f -gfortran -O2 -frecursive -c -o clasyf_rk.o clasyf_rk.f -gfortran -O2 -frecursive -c -o clasyf_aa.o clasyf_aa.f -gfortran -O2 -frecursive -c -o clatbs.o clatbs.f -gfortran -O2 -frecursive -c -o clatdf.o clatdf.f -gfortran -O2 -frecursive -c -o clatps.o clatps.f -gfortran -O2 -frecursive -c -o clatrd.o clatrd.f -gfortran -O2 -frecursive -c -o clatrs.o clatrs.f -gfortran -O2 -frecursive -c -o clatrs3.o clatrs3.f -gfortran -O2 -frecursive -c -o clatrz.o clatrz.f -gfortran -O2 -frecursive -c -o clauu2.o clauu2.f -gfortran -O2 -frecursive -c -o clauum.o clauum.f -gfortran -O2 -frecursive -c -o cpbcon.o cpbcon.f -gfortran -O2 -frecursive -c -o cpbequ.o cpbequ.f -gfortran -O2 -frecursive -c -o cpbrfs.o cpbrfs.f -gfortran -O2 -frecursive -c -o cpbstf.o cpbstf.f -gfortran -O2 -frecursive -c -o cpbsv.o cpbsv.f -gfortran -O2 -frecursive -c -o cpbsvx.o cpbsvx.f -gfortran -O2 -frecursive -c -o cpbtf2.o cpbtf2.f -gfortran -O2 -frecursive -c -o cpbtrf.o cpbtrf.f -gfortran -O2 -frecursive -c -o cpbtrs.o cpbtrs.f -gfortran -O2 -frecursive -c -o cpocon.o cpocon.f -gfortran -O2 -frecursive -c -o cpoequ.o cpoequ.f -gfortran -O2 -frecursive -c -o cporfs.o cporfs.f -gfortran -O2 -frecursive -c -o cposv.o cposv.f -gfortran -O2 -frecursive -c -o cposvx.o cposvx.f -gfortran -O2 -frecursive -c -o cpotf2.o cpotf2.f -gfortran -O2 -frecursive -c -o cpotri.o cpotri.f -gfortran -O2 -frecursive -c -o cpstrf.o cpstrf.f -gfortran -O2 -frecursive -c -o cpstf2.o cpstf2.f -gfortran -O2 -frecursive -c -o cppcon.o cppcon.f -gfortran -O2 -frecursive -c -o cppequ.o cppequ.f -gfortran -O2 -frecursive -c -o cpprfs.o cpprfs.f -gfortran -O2 -frecursive -c -o cppsv.o cppsv.f -gfortran -O2 -frecursive -c -o cppsvx.o cppsvx.f -gfortran -O2 -frecursive -c -o cpptrf.o cpptrf.f -gfortran -O2 -frecursive -c -o cpptri.o cpptri.f -gfortran -O2 -frecursive -c -o cpptrs.o cpptrs.f -gfortran -O2 -frecursive -c -o cptcon.o cptcon.f -gfortran -O2 -frecursive -c -o cpteqr.o cpteqr.f -gfortran -O2 -frecursive -c -o cptrfs.o cptrfs.f -gfortran -O2 -frecursive -c -o cptsv.o cptsv.f -gfortran -O2 -frecursive -c -o cptsvx.o cptsvx.f -gfortran -O2 -frecursive -c -o cpttrf.o cpttrf.f -gfortran -O2 -frecursive -c -o cpttrs.o cpttrs.f -gfortran -O2 -frecursive -c -o cptts2.o cptts2.f -gfortran -O2 -frecursive -c -o crot.o crot.f -gfortran -O2 -frecursive -c -o cspcon.o cspcon.f -gfortran -O2 -frecursive -c -o cspmv.o cspmv.f -gfortran -O2 -frecursive -c -o cspr.o cspr.f -gfortran -O2 -frecursive -c -o csprfs.o csprfs.f -gfortran -O2 -frecursive -c -o cspsv.o cspsv.f -gfortran -O2 -frecursive -c -o cspsvx.o cspsvx.f -gfortran -O2 -frecursive -c -o csptrf.o csptrf.f -gfortran -O2 -frecursive -c -o csptri.o csptri.f -gfortran -O2 -frecursive -c -o csptrs.o csptrs.f -gfortran -O2 -frecursive -c -o csrscl.o csrscl.f -gfortran -O2 -frecursive -c -o crscl.o crscl.f -gfortran -O2 -frecursive -c -o cstedc.o cstedc.f -gfortran -O2 -frecursive -c -o cstegr.o cstegr.f -gfortran -O2 -frecursive -c -o cstein.o cstein.f -gfortran -O2 -frecursive -c -o csteqr.o csteqr.f -gfortran -O2 -frecursive -c -o csycon.o csycon.f -gfortran -O2 -frecursive -c -o csymv.o csymv.f -gfortran -O2 -frecursive -c -o csyr.o csyr.f -gfortran -O2 -frecursive -c -o csyrfs.o csyrfs.f -gfortran -O2 -frecursive -c -o csysv.o csysv.f -gfortran -O2 -frecursive -c -o csysvx.o csysvx.f -gfortran -O2 -frecursive -c -o csytf2.o csytf2.f -gfortran -O2 -frecursive -c -o csytrf.o csytrf.f -gfortran -O2 -frecursive -c -o csytri.o csytri.f -gfortran -O2 -frecursive -c -o csytri2.o csytri2.f -gfortran -O2 -frecursive -c -o csytri2x.o csytri2x.f -gfortran -O2 -frecursive -c -o csyswapr.o csyswapr.f -gfortran -O2 -frecursive -c -o csytrs.o csytrs.f -gfortran -O2 -frecursive -c -o csytrs2.o csytrs2.f -gfortran -O2 -frecursive -c -o csyconv.o csyconv.f -gfortran -O2 -frecursive -c -o csyconvf.o csyconvf.f -gfortran -O2 -frecursive -c -o csyconvf_rook.o csyconvf_rook.f -gfortran -O2 -frecursive -c -o csytf2_rook.o csytf2_rook.f -gfortran -O2 -frecursive -c -o csytrf_rook.o csytrf_rook.f -gfortran -O2 -frecursive -c -o csytrs_rook.o csytrs_rook.f -gfortran -O2 -frecursive -c -o csytri_rook.o csytri_rook.f -gfortran -O2 -frecursive -c -o csycon_rook.o csycon_rook.f -gfortran -O2 -frecursive -c -o csysv_rook.o csysv_rook.f -gfortran -O2 -frecursive -c -o csytf2_rk.o csytf2_rk.f -gfortran -O2 -frecursive -c -o csytrf_rk.o csytrf_rk.f -gfortran -O2 -frecursive -c -o csytrf_aa.o csytrf_aa.f -gfortran -O2 -frecursive -c -o csytrs_3.o csytrs_3.f -gfortran -O2 -frecursive -c -o csytrs_aa.o csytrs_aa.f -gfortran -O2 -frecursive -c -o csytri_3.o csytri_3.f -gfortran -O2 -frecursive -c -o csytri_3x.o csytri_3x.f -gfortran -O2 -frecursive -c -o csycon_3.o csycon_3.f -gfortran -O2 -frecursive -c -o csysv_rk.o csysv_rk.f -gfortran -O2 -frecursive -c -o csysv_aa.o csysv_aa.f -gfortran -O2 -frecursive -c -o csysv_aa_2stage.o csysv_aa_2stage.f -gfortran -O2 -frecursive -c -o csytrf_aa_2stage.o csytrf_aa_2stage.f -gfortran -O2 -frecursive -c -o csytrs_aa_2stage.o csytrs_aa_2stage.f -gfortran -O2 -frecursive -c -o ctbcon.o ctbcon.f -gfortran -O2 -frecursive -c -o ctbrfs.o ctbrfs.f -gfortran -O2 -frecursive -c -o ctbtrs.o ctbtrs.f -gfortran -O2 -frecursive -c -o ctgevc.o ctgevc.f -gfortran -O2 -frecursive -c -o ctgex2.o ctgex2.f -gfortran -O2 -frecursive -c -o ctgexc.o ctgexc.f -gfortran -O2 -frecursive -c -o ctgsen.o ctgsen.f -gfortran -O2 -frecursive -c -o ctgsja.o ctgsja.f -gfortran -O2 -frecursive -c -o ctgsna.o ctgsna.f -gfortran -O2 -frecursive -c -o ctgsy2.o ctgsy2.f -gfortran -O2 -frecursive -c -o ctgsyl.o ctgsyl.f -gfortran -O2 -frecursive -c -o ctpcon.o ctpcon.f -gfortran -O2 -frecursive -c -o ctprfs.o ctprfs.f -gfortran -O2 -frecursive -c -o ctptri.o ctptri.f -gfortran -O2 -frecursive -c -o ctptrs.o ctptrs.f -gfortran -O2 -frecursive -c -o ctrcon.o ctrcon.f -gfortran -O2 -frecursive -c -o ctrevc.o ctrevc.f -gfortran -O2 -frecursive -c -o ctrevc3.o ctrevc3.f -gfortran -O2 -frecursive -c -o ctrexc.o ctrexc.f -gfortran -O2 -frecursive -c -o ctrrfs.o ctrrfs.f -gfortran -O2 -frecursive -c -o ctrsen.o ctrsen.f -gfortran -O2 -frecursive -c -o ctrsna.o ctrsna.f -gfortran -O2 -frecursive -c -o ctrsyl.o ctrsyl.f -gfortran -O2 -frecursive -c -o ctrsyl3.o ctrsyl3.f -gfortran -O2 -frecursive -c -o ctrti2.o ctrti2.f -gfortran -O2 -frecursive -c -o ctrtri.o ctrtri.f -gfortran -O2 -frecursive -c -o ctrtrs.o ctrtrs.f -gfortran -O2 -frecursive -c -o ctzrzf.o ctzrzf.f -gfortran -O2 -frecursive -c -o cung2l.o cung2l.f -gfortran -O2 -frecursive -c -o cung2r.o cung2r.f -gfortran -O2 -frecursive -c -o cungbr.o cungbr.f -gfortran -O2 -frecursive -c -o cunghr.o cunghr.f -gfortran -O2 -frecursive -c -o cungl2.o cungl2.f -gfortran -O2 -frecursive -c -o cunglq.o cunglq.f -gfortran -O2 -frecursive -c -o cungql.o cungql.f -gfortran -O2 -frecursive -c -o cungqr.o cungqr.f -gfortran -O2 -frecursive -c -o cungr2.o cungr2.f -gfortran -O2 -frecursive -c -o cungrq.o cungrq.f -gfortran -O2 -frecursive -c -o cungtr.o cungtr.f -gfortran -O2 -frecursive -c -o cungtsqr.o cungtsqr.f -gfortran -O2 -frecursive -c -o cungtsqr_row.o cungtsqr_row.f -gfortran -O2 -frecursive -c -o cunm2l.o cunm2l.f -gfortran -O2 -frecursive -c -o cunm2r.o cunm2r.f -gfortran -O2 -frecursive -c -o cunmbr.o cunmbr.f -gfortran -O2 -frecursive -c -o cunmhr.o cunmhr.f -gfortran -O2 -frecursive -c -o cunml2.o cunml2.f -gfortran -O2 -frecursive -c -o cunm22.o cunm22.f -gfortran -O2 -frecursive -c -o cunmlq.o cunmlq.f -gfortran -O2 -frecursive -c -o cunmql.o cunmql.f -gfortran -O2 -frecursive -c -o cunmqr.o cunmqr.f -gfortran -O2 -frecursive -c -o cunmr2.o cunmr2.f -gfortran -O2 -frecursive -c -o cunmr3.o cunmr3.f -gfortran -O2 -frecursive -c -o cunmrq.o cunmrq.f -gfortran -O2 -frecursive -c -o cunmrz.o cunmrz.f -gfortran -O2 -frecursive -c -o cunmtr.o cunmtr.f -gfortran -O2 -frecursive -c -o cupgtr.o cupgtr.f -gfortran -O2 -frecursive -c -o cupmtr.o cupmtr.f -gfortran -O2 -frecursive -c -o icmax1.o icmax1.f -gfortran -O2 -frecursive -c -o scsum1.o scsum1.f -gfortran -O2 -frecursive -c -o cstemr.o cstemr.f -gfortran -O2 -frecursive -c -o chfrk.o chfrk.f -gfortran -O2 -frecursive -c -o ctfttp.o ctfttp.f -gfortran -O2 -frecursive -c -o clanhf.o clanhf.f -gfortran -O2 -frecursive -c -o cpftrf.o cpftrf.f -gfortran -O2 -frecursive -c -o cpftri.o cpftri.f -gfortran -O2 -frecursive -c -o cpftrs.o cpftrs.f -gfortran -O2 -frecursive -c -o ctfsm.o ctfsm.f -gfortran -O2 -frecursive -c -o ctftri.o ctftri.f -gfortran -O2 -frecursive -c -o ctfttr.o ctfttr.f -gfortran -O2 -frecursive -c -o ctpttf.o ctpttf.f -gfortran -O2 -frecursive -c -o ctpttr.o ctpttr.f -gfortran -O2 -frecursive -c -o ctrttf.o ctrttf.f -gfortran -O2 -frecursive -c -o ctrttp.o ctrttp.f -gfortran -O2 -frecursive -c -o cgeequb.o cgeequb.f -gfortran -O2 -frecursive -c -o cgbequb.o cgbequb.f -gfortran -O2 -frecursive -c -o csyequb.o csyequb.f -gfortran -O2 -frecursive -c -o cpoequb.o cpoequb.f -gfortran -O2 -frecursive -c -o cheequb.o cheequb.f -gfortran -O2 -frecursive -c -o cbbcsd.o cbbcsd.f -gfortran -O2 -frecursive -c -o clapmr.o clapmr.f -gfortran -O2 -frecursive -c -o cunbdb.o cunbdb.f -gfortran -O2 -frecursive -c -o cunbdb1.o cunbdb1.f -gfortran -O2 -frecursive -c -o cunbdb2.o cunbdb2.f -gfortran -O2 -frecursive -c -o cunbdb3.o cunbdb3.f -gfortran -O2 -frecursive -c -o cunbdb4.o cunbdb4.f -gfortran -O2 -frecursive -c -o cunbdb5.o cunbdb5.f -gfortran -O2 -frecursive -c -o cunbdb6.o cunbdb6.f -gfortran -O2 -frecursive -c -o cuncsd.o cuncsd.f -gfortran -O2 -frecursive -c -o cuncsd2by1.o cuncsd2by1.f -gfortran -O2 -frecursive -c -o cgeqrt.o cgeqrt.f -gfortran -O2 -frecursive -c -o cgeqrt2.o cgeqrt2.f -gfortran -O2 -frecursive -c -o cgeqrt3.o cgeqrt3.f -gfortran -O2 -frecursive -c -o cgemqrt.o cgemqrt.f -gfortran -O2 -frecursive -c -o ctpqrt.o ctpqrt.f -gfortran -O2 -frecursive -c -o ctpqrt2.o ctpqrt2.f -gfortran -O2 -frecursive -c -o ctpmqrt.o ctpmqrt.f -gfortran -O2 -frecursive -c -o ctprfb.o ctprfb.f -gfortran -O2 -frecursive -c -o cgelqt.o cgelqt.f -gfortran -O2 -frecursive -c -o cgelqt3.o cgelqt3.f -gfortran -O2 -frecursive -c -o cgemlqt.o cgemlqt.f -gfortran -O2 -frecursive -c -o cgetsls.o cgetsls.f -gfortran -O2 -frecursive -c -o cgetsqrhrt.o cgetsqrhrt.f -gfortran -O2 -frecursive -c -o cgeqr.o cgeqr.f -gfortran -O2 -frecursive -c -o clatsqr.o clatsqr.f -gfortran -O2 -frecursive -c -o clamtsqr.o clamtsqr.f -gfortran -O2 -frecursive -c -o cgemqr.o cgemqr.f -gfortran -O2 -frecursive -c -o cgelq.o cgelq.f -gfortran -O2 -frecursive -c -o claswlq.o claswlq.f -gfortran -O2 -frecursive -c -o clamswlq.o clamswlq.f -gfortran -O2 -frecursive -c -o cgemlq.o cgemlq.f -gfortran -O2 -frecursive -c -o ctplqt.o ctplqt.f -gfortran -O2 -frecursive -c -o ctplqt2.o ctplqt2.f -gfortran -O2 -frecursive -c -o ctpmlqt.o ctpmlqt.f -gfortran -O2 -frecursive -c -o cunhr_col.o cunhr_col.f -gfortran -O2 -frecursive -c -o claunhr_col_getrfnp.o claunhr_col_getrfnp.f -gfortran -O2 -frecursive -c -o claunhr_col_getrfnp2.o claunhr_col_getrfnp2.f -gfortran -O2 -frecursive -c -o chetrd_2stage.o chetrd_2stage.f -gfortran -O2 -frecursive -c -o chetrd_he2hb.o chetrd_he2hb.f -gfortran -O2 -frecursive -c -o chb2st_kernels.o chb2st_kernels.f -gfortran -O2 -frecursive -c -o cheevd_2stage.o cheevd_2stage.f -gfortran -O2 -frecursive -c -o cheev_2stage.o cheev_2stage.f -gfortran -O2 -frecursive -c -o cheevx_2stage.o cheevx_2stage.f -gfortran -O2 -frecursive -c -o cheevr_2stage.o cheevr_2stage.f -gfortran -O2 -frecursive -c -o chbev_2stage.o chbev_2stage.f -gfortran -O2 -frecursive -c -o chbevx_2stage.o chbevx_2stage.f -gfortran -O2 -frecursive -c -o chbevd_2stage.o chbevd_2stage.f -gfortran -O2 -frecursive -c -o chegv_2stage.o chegv_2stage.f -gfortran -O2 -frecursive -c -o cgesvdq.o cgesvdq.f -gfortran -O2 -frecursive -c -o zpotrf2.o zpotrf2.f -gfortran -O2 -frecursive -c -o zgetrf2.o zgetrf2.f -gfortran -O2 -frecursive -c -o zbdsqr.o zbdsqr.f -gfortran -O2 -frecursive -c -o zgbbrd.o zgbbrd.f -gfortran -O2 -frecursive -c -o zgbcon.o zgbcon.f -gfortran -O2 -frecursive -c -o zgbequ.o zgbequ.f -gfortran -O2 -frecursive -c -o zgbrfs.o zgbrfs.f -gfortran -O2 -frecursive -c -o zgbsv.o zgbsv.f -gfortran -O2 -frecursive -c -o zgbsvx.o zgbsvx.f -gfortran -O2 -frecursive -c -o zgbtf2.o zgbtf2.f -gfortran -O2 -frecursive -c -o zgbtrf.o zgbtrf.f -gfortran -O2 -frecursive -c -o zgbtrs.o zgbtrs.f -gfortran -O2 -frecursive -c -o zgebak.o zgebak.f -gfortran -O2 -frecursive -c -o zgebal.o zgebal.f -gfortran -O2 -frecursive -c -o zgebd2.o zgebd2.f -gfortran -O2 -frecursive -c -o zgebrd.o zgebrd.f -gfortran -O2 -frecursive -c -o zgecon.o zgecon.f -gfortran -O2 -frecursive -c -o zgeequ.o zgeequ.f -gfortran -O2 -frecursive -c -o zgees.o zgees.f -gfortran -O2 -frecursive -c -o zgeesx.o zgeesx.f -gfortran -O2 -frecursive -c -o zgeev.o zgeev.f -gfortran -O2 -frecursive -c -o zgeevx.o zgeevx.f -gfortran -O2 -frecursive -c -o zgehd2.o zgehd2.f -gfortran -O2 -frecursive -c -o zgehrd.o zgehrd.f -gfortran -O2 -frecursive -c -o zgelq2.o zgelq2.f -gfortran -O2 -frecursive -c -o zgelqf.o zgelqf.f -gfortran -O2 -frecursive -c -o zgels.o zgels.f -gfortran -O2 -frecursive -c -o zgelst.o zgelst.f -gfortran -O2 -frecursive -c -o zgelsd.o zgelsd.f -gfortran -O2 -frecursive -c -o zgelss.o zgelss.f -gfortran -O2 -frecursive -c -o zgelsy.o zgelsy.f -gfortran -O2 -frecursive -c -o zgeql2.o zgeql2.f -gfortran -O2 -frecursive -c -o zgeqlf.o zgeqlf.f -gfortran -O2 -frecursive -c -o zgeqp3.o zgeqp3.f -gfortran -O2 -frecursive -c -o zgeqp3rk.o zgeqp3rk.f -gfortran -O2 -frecursive -c -o zgeqr2.o zgeqr2.f -gfortran -O2 -frecursive -c -o zgeqr2p.o zgeqr2p.f -gfortran -O2 -frecursive -c -o zgeqrf.o zgeqrf.f -gfortran -O2 -frecursive -c -o zgeqrfp.o zgeqrfp.f -gfortran -O2 -frecursive -c -o zgerfs.o zgerfs.f -gfortran -O2 -frecursive -c -o zgerq2.o zgerq2.f -gfortran -O2 -frecursive -c -o zgerqf.o zgerqf.f -gfortran -O2 -frecursive -c -o zgesc2.o zgesc2.f -gfortran -O2 -frecursive -c -o zgesdd.o zgesdd.f -gfortran -O2 -frecursive -c -o zgesv.o zgesv.f -gfortran -O2 -frecursive -c -o zgesvd.o zgesvd.f -gfortran -O2 -frecursive -c -o zgesvdx.o zgesvdx.f -gfortran -O2 -frecursive -c -o zgesvj.o zgesvj.f -gfortran -O2 -frecursive -c -o zgejsv.o zgejsv.f -gfortran -O2 -frecursive -c -o zgsvj0.o zgsvj0.f -gfortran -O2 -frecursive -c -o zgsvj1.o zgsvj1.f -gfortran -O2 -frecursive -c -o zgesvx.o zgesvx.f -gfortran -O2 -frecursive -c -o zgetc2.o zgetc2.f -gfortran -O2 -frecursive -c -o zgetf2.o zgetf2.f -gfortran -O2 -frecursive -c -o zgetrf.o zgetrf.f -gfortran -O2 -frecursive -c -o zgetri.o zgetri.f -gfortran -O2 -frecursive -c -o zgetrs.o zgetrs.f -gfortran -O2 -frecursive -c -o zggbak.o zggbak.f -gfortran -O2 -frecursive -c -o zggbal.o zggbal.f -gfortran -O2 -frecursive -c -o zgges.o zgges.f -gfortran -O2 -frecursive -c -o zgges3.o zgges3.f -gfortran -O2 -frecursive -c -o zggesx.o zggesx.f -gfortran -O2 -frecursive -c -o zggev.o zggev.f -gfortran -O2 -frecursive -c -o zggev3.o zggev3.f -gfortran -O2 -frecursive -c -o zggevx.o zggevx.f -gfortran -O2 -frecursive -c -o zggglm.o zggglm.f -gfortran -O2 -frecursive -c -o zgghrd.o zgghrd.f -gfortran -O2 -frecursive -c -o zgghd3.o zgghd3.f -gfortran -O2 -frecursive -c -o zgglse.o zgglse.f -gfortran -O2 -frecursive -c -o zggqrf.o zggqrf.f -gfortran -O2 -frecursive -c -o zggrqf.o zggrqf.f -gfortran -O2 -frecursive -c -o zggsvd3.o zggsvd3.f -gfortran -O2 -frecursive -c -o zggsvp3.o zggsvp3.f -gfortran -O2 -frecursive -c -o zgtcon.o zgtcon.f -gfortran -O2 -frecursive -c -o zgtrfs.o zgtrfs.f -gfortran -O2 -frecursive -c -o zgtsv.o zgtsv.f -gfortran -O2 -frecursive -c -o zgtsvx.o zgtsvx.f -gfortran -O2 -frecursive -c -o zgttrf.o zgttrf.f -gfortran -O2 -frecursive -c -o zgttrs.o zgttrs.f -gfortran -O2 -frecursive -c -o zgtts2.o zgtts2.f -gfortran -O2 -frecursive -c -o zhbev.o zhbev.f -gfortran -O2 -frecursive -c -o zhbevd.o zhbevd.f -gfortran -O2 -frecursive -c -o zhbevx.o zhbevx.f -gfortran -O2 -frecursive -c -o zhbgst.o zhbgst.f -gfortran -O2 -frecursive -c -o zhbgv.o zhbgv.f -gfortran -O2 -frecursive -c -o zhbgvd.o zhbgvd.f -gfortran -O2 -frecursive -c -o zhbgvx.o zhbgvx.f -gfortran -O2 -frecursive -c -o zhbtrd.o zhbtrd.f -gfortran -O2 -frecursive -c -o zhecon.o zhecon.f -gfortran -O2 -frecursive -c -o zheev.o zheev.f -gfortran -O2 -frecursive -c -o zheevd.o zheevd.f -gfortran -O2 -frecursive -c -o zheevr.o zheevr.f -gfortran -O2 -frecursive -c -o zheevx.o zheevx.f -gfortran -O2 -frecursive -c -o zhegs2.o zhegs2.f -gfortran -O2 -frecursive -c -o zhegst.o zhegst.f -gfortran -O2 -frecursive -c -o zhegv.o zhegv.f -gfortran -O2 -frecursive -c -o zhegvd.o zhegvd.f -gfortran -O2 -frecursive -c -o zhegvx.o zhegvx.f -gfortran -O2 -frecursive -c -o zherfs.o zherfs.f -gfortran -O2 -frecursive -c -o zhesv.o zhesv.f -gfortran -O2 -frecursive -c -o zhesvx.o zhesvx.f -gfortran -O2 -frecursive -c -o zhetd2.o zhetd2.f -gfortran -O2 -frecursive -c -o zhetf2.o zhetf2.f -gfortran -O2 -frecursive -c -o zhetrd.o zhetrd.f -gfortran -O2 -frecursive -c -o zhetrf.o zhetrf.f -gfortran -O2 -frecursive -c -o zhetri.o zhetri.f -gfortran -O2 -frecursive -c -o zhetri2.o zhetri2.f -gfortran -O2 -frecursive -c -o zhetri2x.o zhetri2x.f -gfortran -O2 -frecursive -c -o zheswapr.o zheswapr.f -gfortran -O2 -frecursive -c -o zhetrs.o zhetrs.f -gfortran -O2 -frecursive -c -o zhetrs2.o zhetrs2.f -gfortran -O2 -frecursive -c -o zhetf2_rook.o zhetf2_rook.f -gfortran -O2 -frecursive -c -o zhetrf_rook.o zhetrf_rook.f -gfortran -O2 -frecursive -c -o zhetri_rook.o zhetri_rook.f -gfortran -O2 -frecursive -c -o zhetrs_rook.o zhetrs_rook.f -gfortran -O2 -frecursive -c -o zhecon_rook.o zhecon_rook.f -gfortran -O2 -frecursive -c -o zhesv_rook.o zhesv_rook.f -gfortran -O2 -frecursive -c -o zhetf2_rk.o zhetf2_rk.f -gfortran -O2 -frecursive -c -o zhetrf_rk.o zhetrf_rk.f -gfortran -O2 -frecursive -c -o zhetri_3.o zhetri_3.f -gfortran -O2 -frecursive -c -o zhetri_3x.o zhetri_3x.f -gfortran -O2 -frecursive -c -o zhetrs_3.o zhetrs_3.f -gfortran -O2 -frecursive -c -o zhecon_3.o zhecon_3.f -gfortran -O2 -frecursive -c -o zhesv_rk.o zhesv_rk.f -gfortran -O2 -frecursive -c -o zhesv_aa.o zhesv_aa.f -gfortran -O2 -frecursive -c -o zhetrf_aa.o zhetrf_aa.f -gfortran -O2 -frecursive -c -o zhetrs_aa.o zhetrs_aa.f -gfortran -O2 -frecursive -c -o zlahef_aa.o zlahef_aa.f -gfortran -O2 -frecursive -c -o zhesv_aa_2stage.o zhesv_aa_2stage.f -gfortran -O2 -frecursive -c -o zhetrf_aa_2stage.o zhetrf_aa_2stage.f -gfortran -O2 -frecursive -c -o zhetrs_aa_2stage.o zhetrs_aa_2stage.f -gfortran -O2 -frecursive -c -o zhgeqz.o zhgeqz.f -gfortran -O2 -frecursive -c -o zhpcon.o zhpcon.f -gfortran -O2 -frecursive -c -o zhpev.o zhpev.f -gfortran -O2 -frecursive -c -o zhpevd.o zhpevd.f -gfortran -O2 -frecursive -c -o zlaqz0.o zlaqz0.f -gfortran -O2 -frecursive -c -o zlaqz1.o zlaqz1.f -gfortran -O2 -frecursive -c -o zlaqz2.o zlaqz2.f -gfortran -O2 -frecursive -c -o zlaqz3.o zlaqz3.f -gfortran -O2 -frecursive -c -o zhpevx.o zhpevx.f -gfortran -O2 -frecursive -c -o zhpgst.o zhpgst.f -gfortran -O2 -frecursive -c -o zhpgv.o zhpgv.f -gfortran -O2 -frecursive -c -o zhpgvd.o zhpgvd.f -gfortran -O2 -frecursive -c -o zhpgvx.o zhpgvx.f -gfortran -O2 -frecursive -c -o zhprfs.o zhprfs.f -gfortran -O2 -frecursive -c -o zhpsv.o zhpsv.f -gfortran -O2 -frecursive -c -o zhpsvx.o zhpsvx.f -gfortran -O2 -frecursive -c -o zhptrd.o zhptrd.f -gfortran -O2 -frecursive -c -o zhptrf.o zhptrf.f -gfortran -O2 -frecursive -c -o zhptri.o zhptri.f -gfortran -O2 -frecursive -c -o zhptrs.o zhptrs.f -gfortran -O2 -frecursive -c -o zhsein.o zhsein.f -gfortran -O2 -frecursive -c -o zhseqr.o zhseqr.f -gfortran -O2 -frecursive -c -o zlabrd.o zlabrd.f -gfortran -O2 -frecursive -c -o zlacgv.o zlacgv.f -gfortran -O2 -frecursive -c -o zlacon.o zlacon.f -gfortran -O2 -frecursive -c -o zlacn2.o zlacn2.f -gfortran -O2 -frecursive -c -o zlacp2.o zlacp2.f -gfortran -O2 -frecursive -c -o zlacpy.o zlacpy.f -gfortran -O2 -frecursive -c -o zlacrm.o zlacrm.f -gfortran -O2 -frecursive -c -o zlacrt.o zlacrt.f -gfortran -O2 -frecursive -c -o zladiv.o zladiv.f -gfortran -O2 -frecursive -c -o zlaed0.o zlaed0.f -gfortran -O2 -frecursive -c -o zlaed7.o zlaed7.f -gfortran -O2 -frecursive -c -o zlaed8.o zlaed8.f -gfortran -O2 -frecursive -c -o zlaein.o zlaein.f -gfortran -O2 -frecursive -c -o zlaesy.o zlaesy.f -gfortran -O2 -frecursive -c -o zlaev2.o zlaev2.f -gfortran -O2 -frecursive -c -o zlags2.o zlags2.f -gfortran -O2 -frecursive -c -o zlagtm.o zlagtm.f -gfortran -O2 -frecursive -c -o zlahef.o zlahef.f -gfortran -O2 -frecursive -c -o zlahef_rook.o zlahef_rook.f -gfortran -O2 -frecursive -c -o zlahef_rk.o zlahef_rk.f -gfortran -O2 -frecursive -c -o zlahqr.o zlahqr.f -gfortran -O2 -frecursive -c -o zlahr2.o zlahr2.f -gfortran -O2 -frecursive -c -o zlaic1.o zlaic1.f -gfortran -O2 -frecursive -c -o zlals0.o zlals0.f -gfortran -O2 -frecursive -c -o zlalsa.o zlalsa.f -gfortran -O2 -frecursive -c -o zlalsd.o zlalsd.f -gfortran -O2 -frecursive -c -o zlangb.o zlangb.f -gfortran -O2 -frecursive -c -o zlange.o zlange.f -gfortran -O2 -frecursive -c -o zlangt.o zlangt.f -gfortran -O2 -frecursive -c -o zlanhb.o zlanhb.f -gfortran -O2 -frecursive -c -o zlanhe.o zlanhe.f -gfortran -O2 -frecursive -c -o zlanhp.o zlanhp.f -gfortran -O2 -frecursive -c -o zlanhs.o zlanhs.f -gfortran -O2 -frecursive -c -o zlanht.o zlanht.f -gfortran -O2 -frecursive -c -o zlansb.o zlansb.f -gfortran -O2 -frecursive -c -o zlansp.o zlansp.f -gfortran -O2 -frecursive -c -o zlansy.o zlansy.f -gfortran -O2 -frecursive -c -o zlantb.o zlantb.f -gfortran -O2 -frecursive -c -o zlantp.o zlantp.f -gfortran -O2 -frecursive -c -o zlantr.o zlantr.f -gfortran -O2 -frecursive -c -o zlapll.o zlapll.f -gfortran -O2 -frecursive -c -o zlapmt.o zlapmt.f -gfortran -O2 -frecursive -c -o zlaqgb.o zlaqgb.f -gfortran -O2 -frecursive -c -o zlaqge.o zlaqge.f -gfortran -O2 -frecursive -c -o zlaqhb.o zlaqhb.f -gfortran -O2 -frecursive -c -o zlaqhe.o zlaqhe.f -gfortran -O2 -frecursive -c -o zlaqhp.o zlaqhp.f -gfortran -O2 -frecursive -c -o zlaqp2.o zlaqp2.f -gfortran -O2 -frecursive -c -o zlaqps.o zlaqps.f -gfortran -O2 -frecursive -c -o zlaqp2rk.o zlaqp2rk.f -gfortran -O2 -frecursive -c -o zlaqp3rk.o zlaqp3rk.f -gfortran -O2 -frecursive -c -o zlaqsb.o zlaqsb.f -gfortran -O2 -frecursive -c -o zlaqr0.o zlaqr0.f -gfortran -O2 -frecursive -c -o zlaqr1.o zlaqr1.f -gfortran -O2 -frecursive -c -o zlaqr2.o zlaqr2.f -gfortran -O2 -frecursive -c -o zlaqr3.o zlaqr3.f -gfortran -O2 -frecursive -c -o zlaqr4.o zlaqr4.f -gfortran -O2 -frecursive -c -o zlaqr5.o zlaqr5.f -gfortran -O2 -frecursive -c -o zlaqsp.o zlaqsp.f -gfortran -O2 -frecursive -c -o zlaqsy.o zlaqsy.f -gfortran -O2 -frecursive -c -o zlar1v.o zlar1v.f -gfortran -O2 -frecursive -c -o zlar2v.o zlar2v.f -gfortran -O2 -frecursive -c -o ilazlr.o ilazlr.f -gfortran -O2 -frecursive -c -o ilazlc.o ilazlc.f -gfortran -O2 -frecursive -c -o zlarcm.o zlarcm.f -gfortran -O2 -frecursive -c -o zlarf.o zlarf.f -gfortran -O2 -frecursive -c -o zlarfb.o zlarfb.f -gfortran -O2 -frecursive -c -o zlarfb_gett.o zlarfb_gett.f -gfortran -O2 -frecursive -c -o zlarfg.o zlarfg.f -gfortran -O2 -frecursive -c -o zlarft.o zlarft.f -gfortran -O2 -frecursive -c -o zlarfgp.o zlarfgp.f -gfortran -O2 -frecursive -c -o zlarfx.o zlarfx.f -gfortran -O2 -frecursive -c -o zlarfy.o zlarfy.f -gfortran -O2 -frecursive -c -o zlargv.o zlargv.f -gfortran -O2 -frecursive -c -o zlarnv.o zlarnv.f -gfortran -O2 -frecursive -c -o zlarrv.o zlarrv.f -gfortran -O2 -frecursive -c -o zlartv.o zlartv.f -gfortran -O2 -frecursive -c -o zlarz.o zlarz.f -gfortran -O2 -frecursive -c -o zlarzb.o zlarzb.f -gfortran -O2 -frecursive -c -o zlarzt.o zlarzt.f -gfortran -O2 -frecursive -c -o zlascl.o zlascl.f -gfortran -O2 -frecursive -c -o zlaset.o zlaset.f -gfortran -O2 -frecursive -c -o zlasr.o zlasr.f -gfortran -O2 -frecursive -c -o zlaswp.o zlaswp.f -gfortran -O2 -frecursive -c -o zlasyf.o zlasyf.f -gfortran -O2 -frecursive -c -o zlasyf_rook.o zlasyf_rook.f -gfortran -O2 -frecursive -c -o zlasyf_rk.o zlasyf_rk.f -gfortran -O2 -frecursive -c -o zlasyf_aa.o zlasyf_aa.f -gfortran -O2 -frecursive -c -o zlatbs.o zlatbs.f -gfortran -O2 -frecursive -c -o zlatdf.o zlatdf.f -gfortran -O2 -frecursive -c -o zlatps.o zlatps.f -gfortran -O2 -frecursive -c -o zlatrd.o zlatrd.f -gfortran -O2 -frecursive -c -o zlatrs.o zlatrs.f -gfortran -O2 -frecursive -c -o zlatrs3.o zlatrs3.f -gfortran -O2 -frecursive -c -o zlatrz.o zlatrz.f -gfortran -O2 -frecursive -c -o zlauu2.o zlauu2.f -gfortran -O2 -frecursive -c -o zlauum.o zlauum.f -gfortran -O2 -frecursive -c -o zpbcon.o zpbcon.f -gfortran -O2 -frecursive -c -o zpbequ.o zpbequ.f -gfortran -O2 -frecursive -c -o zpbrfs.o zpbrfs.f -gfortran -O2 -frecursive -c -o zpbstf.o zpbstf.f -gfortran -O2 -frecursive -c -o zpbsv.o zpbsv.f -gfortran -O2 -frecursive -c -o zpbsvx.o zpbsvx.f -gfortran -O2 -frecursive -c -o zpbtf2.o zpbtf2.f -gfortran -O2 -frecursive -c -o zpbtrf.o zpbtrf.f -gfortran -O2 -frecursive -c -o zpbtrs.o zpbtrs.f -gfortran -O2 -frecursive -c -o zpocon.o zpocon.f -gfortran -O2 -frecursive -c -o zpoequ.o zpoequ.f -gfortran -O2 -frecursive -c -o zporfs.o zporfs.f -gfortran -O2 -frecursive -c -o zposv.o zposv.f -gfortran -O2 -frecursive -c -o zposvx.o zposvx.f -gfortran -O2 -frecursive -c -o zpotf2.o zpotf2.f -gfortran -O2 -frecursive -c -o zpotrf.o zpotrf.f -gfortran -O2 -frecursive -c -o zpotri.o zpotri.f -gfortran -O2 -frecursive -c -o zpotrs.o zpotrs.f -gfortran -O2 -frecursive -c -o zpstrf.o zpstrf.f -gfortran -O2 -frecursive -c -o zpstf2.o zpstf2.f -gfortran -O2 -frecursive -c -o zppcon.o zppcon.f -gfortran -O2 -frecursive -c -o zppequ.o zppequ.f -gfortran -O2 -frecursive -c -o zpprfs.o zpprfs.f -gfortran -O2 -frecursive -c -o zppsv.o zppsv.f -gfortran -O2 -frecursive -c -o zppsvx.o zppsvx.f -gfortran -O2 -frecursive -c -o zpptrf.o zpptrf.f -gfortran -O2 -frecursive -c -o zpptri.o zpptri.f -gfortran -O2 -frecursive -c -o zpptrs.o zpptrs.f -gfortran -O2 -frecursive -c -o zptcon.o zptcon.f -gfortran -O2 -frecursive -c -o zpteqr.o zpteqr.f -gfortran -O2 -frecursive -c -o zptrfs.o zptrfs.f -gfortran -O2 -frecursive -c -o zptsv.o zptsv.f -gfortran -O2 -frecursive -c -o zptsvx.o zptsvx.f -gfortran -O2 -frecursive -c -o zpttrf.o zpttrf.f -gfortran -O2 -frecursive -c -o zpttrs.o zpttrs.f -gfortran -O2 -frecursive -c -o zptts2.o zptts2.f -gfortran -O2 -frecursive -c -o zrot.o zrot.f -gfortran -O2 -frecursive -c -o zspcon.o zspcon.f -gfortran -O2 -frecursive -c -o zspmv.o zspmv.f -gfortran -O2 -frecursive -c -o zspr.o zspr.f -gfortran -O2 -frecursive -c -o zsprfs.o zsprfs.f -gfortran -O2 -frecursive -c -o zspsv.o zspsv.f -gfortran -O2 -frecursive -c -o zspsvx.o zspsvx.f -gfortran -O2 -frecursive -c -o zsptrf.o zsptrf.f -gfortran -O2 -frecursive -c -o zsptri.o zsptri.f -gfortran -O2 -frecursive -c -o zsptrs.o zsptrs.f -gfortran -O2 -frecursive -c -o zdrscl.o zdrscl.f -gfortran -O2 -frecursive -c -o zrscl.o zrscl.f -gfortran -O2 -frecursive -c -o zstedc.o zstedc.f -gfortran -O2 -frecursive -c -o zstegr.o zstegr.f -gfortran -O2 -frecursive -c -o zstein.o zstein.f -gfortran -O2 -frecursive -c -o zsteqr.o zsteqr.f -gfortran -O2 -frecursive -c -o zsycon.o zsycon.f -gfortran -O2 -frecursive -c -o zsymv.o zsymv.f -gfortran -O2 -frecursive -c -o zsyr.o zsyr.f -gfortran -O2 -frecursive -c -o zsyrfs.o zsyrfs.f -gfortran -O2 -frecursive -c -o zsysv.o zsysv.f -gfortran -O2 -frecursive -c -o zsysvx.o zsysvx.f -gfortran -O2 -frecursive -c -o zsytf2.o zsytf2.f -gfortran -O2 -frecursive -c -o zsytrf.o zsytrf.f -gfortran -O2 -frecursive -c -o zsytri.o zsytri.f -gfortran -O2 -frecursive -c -o zsytri2.o zsytri2.f -gfortran -O2 -frecursive -c -o zsytri2x.o zsytri2x.f -gfortran -O2 -frecursive -c -o zsyswapr.o zsyswapr.f -gfortran -O2 -frecursive -c -o zsytrs.o zsytrs.f -gfortran -O2 -frecursive -c -o zsytrs2.o zsytrs2.f -gfortran -O2 -frecursive -c -o zsyconv.o zsyconv.f -gfortran -O2 -frecursive -c -o zsyconvf.o zsyconvf.f -gfortran -O2 -frecursive -c -o zsyconvf_rook.o zsyconvf_rook.f -gfortran -O2 -frecursive -c -o zsytf2_rook.o zsytf2_rook.f -gfortran -O2 -frecursive -c -o zsytrf_rook.o zsytrf_rook.f -gfortran -O2 -frecursive -c -o zsytrs_rook.o zsytrs_rook.f -gfortran -O2 -frecursive -c -o zsytrs_aa.o zsytrs_aa.f -gfortran -O2 -frecursive -c -o zsytri_rook.o zsytri_rook.f -gfortran -O2 -frecursive -c -o zsycon_rook.o zsycon_rook.f -gfortran -O2 -frecursive -c -o zsysv_rook.o zsysv_rook.f -gfortran -O2 -frecursive -c -o zsysv_aa_2stage.o zsysv_aa_2stage.f -gfortran -O2 -frecursive -c -o zsytrf_aa_2stage.o zsytrf_aa_2stage.f -gfortran -O2 -frecursive -c -o zsytrs_aa_2stage.o zsytrs_aa_2stage.f -gfortran -O2 -frecursive -c -o zsytf2_rk.o zsytf2_rk.f -gfortran -O2 -frecursive -c -o zsytrf_rk.o zsytrf_rk.f -gfortran -O2 -frecursive -c -o zsytrf_aa.o zsytrf_aa.f -gfortran -O2 -frecursive -c -o zsytrs_3.o zsytrs_3.f -gfortran -O2 -frecursive -c -o zsytri_3.o zsytri_3.f -gfortran -O2 -frecursive -c -o zsytri_3x.o zsytri_3x.f -gfortran -O2 -frecursive -c -o zsycon_3.o zsycon_3.f -gfortran -O2 -frecursive -c -o zsysv_rk.o zsysv_rk.f -gfortran -O2 -frecursive -c -o zsysv_aa.o zsysv_aa.f -gfortran -O2 -frecursive -c -o ztbcon.o ztbcon.f -gfortran -O2 -frecursive -c -o ztbrfs.o ztbrfs.f -gfortran -O2 -frecursive -c -o ztbtrs.o ztbtrs.f -gfortran -O2 -frecursive -c -o ztgevc.o ztgevc.f -gfortran -O2 -frecursive -c -o ztgex2.o ztgex2.f -gfortran -O2 -frecursive -c -o ztgexc.o ztgexc.f -gfortran -O2 -frecursive -c -o ztgsen.o ztgsen.f -gfortran -O2 -frecursive -c -o ztgsja.o ztgsja.f -gfortran -O2 -frecursive -c -o ztgsna.o ztgsna.f -gfortran -O2 -frecursive -c -o ztgsy2.o ztgsy2.f -gfortran -O2 -frecursive -c -o ztgsyl.o ztgsyl.f -gfortran -O2 -frecursive -c -o ztpcon.o ztpcon.f -gfortran -O2 -frecursive -c -o ztprfs.o ztprfs.f -gfortran -O2 -frecursive -c -o ztptri.o ztptri.f -gfortran -O2 -frecursive -c -o ztptrs.o ztptrs.f -gfortran -O2 -frecursive -c -o ztrcon.o ztrcon.f -gfortran -O2 -frecursive -c -o ztrevc.o ztrevc.f -gfortran -O2 -frecursive -c -o ztrevc3.o ztrevc3.f -gfortran -O2 -frecursive -c -o ztrexc.o ztrexc.f -gfortran -O2 -frecursive -c -o ztrrfs.o ztrrfs.f -gfortran -O2 -frecursive -c -o ztrsen.o ztrsen.f -gfortran -O2 -frecursive -c -o ztrsna.o ztrsna.f -gfortran -O2 -frecursive -c -o ztrsyl.o ztrsyl.f -gfortran -O2 -frecursive -c -o ztrsyl3.o ztrsyl3.f -gfortran -O2 -frecursive -c -o ztrti2.o ztrti2.f -gfortran -O2 -frecursive -c -o ztrtri.o ztrtri.f -gfortran -O2 -frecursive -c -o ztrtrs.o ztrtrs.f -gfortran -O2 -frecursive -c -o ztzrzf.o ztzrzf.f -gfortran -O2 -frecursive -c -o zung2l.o zung2l.f -gfortran -O2 -frecursive -c -o zung2r.o zung2r.f -gfortran -O2 -frecursive -c -o zungbr.o zungbr.f -gfortran -O2 -frecursive -c -o zunghr.o zunghr.f -gfortran -O2 -frecursive -c -o zungl2.o zungl2.f -gfortran -O2 -frecursive -c -o zunglq.o zunglq.f -gfortran -O2 -frecursive -c -o zungql.o zungql.f -gfortran -O2 -frecursive -c -o zungqr.o zungqr.f -gfortran -O2 -frecursive -c -o zungr2.o zungr2.f -gfortran -O2 -frecursive -c -o zungrq.o zungrq.f -gfortran -O2 -frecursive -c -o zungtr.o zungtr.f -gfortran -O2 -frecursive -c -o zungtsqr.o zungtsqr.f -gfortran -O2 -frecursive -c -o zungtsqr_row.o zungtsqr_row.f -gfortran -O2 -frecursive -c -o zunm2l.o zunm2l.f -gfortran -O2 -frecursive -c -o zunm2r.o zunm2r.f -gfortran -O2 -frecursive -c -o zunmbr.o zunmbr.f -gfortran -O2 -frecursive -c -o zunmhr.o zunmhr.f -gfortran -O2 -frecursive -c -o zunml2.o zunml2.f -gfortran -O2 -frecursive -c -o zunm22.o zunm22.f -gfortran -O2 -frecursive -c -o zunmlq.o zunmlq.f -gfortran -O2 -frecursive -c -o zunmql.o zunmql.f -gfortran -O2 -frecursive -c -o zunmqr.o zunmqr.f -gfortran -O2 -frecursive -c -o zunmr2.o zunmr2.f -gfortran -O2 -frecursive -c -o zunmr3.o zunmr3.f -gfortran -O2 -frecursive -c -o zunmrq.o zunmrq.f -gfortran -O2 -frecursive -c -o zunmrz.o zunmrz.f -gfortran -O2 -frecursive -c -o zunmtr.o zunmtr.f -gfortran -O2 -frecursive -c -o zupgtr.o zupgtr.f -gfortran -O2 -frecursive -c -o zupmtr.o zupmtr.f -gfortran -O2 -frecursive -c -o izmax1.o izmax1.f -gfortran -O2 -frecursive -c -o dzsum1.o dzsum1.f -gfortran -O2 -frecursive -c -o zstemr.o zstemr.f -gfortran -O2 -frecursive -c -o zcgesv.o zcgesv.f -gfortran -O2 -frecursive -c -o zcposv.o zcposv.f -gfortran -O2 -frecursive -c -o zlag2c.o zlag2c.f -gfortran -O2 -frecursive -c -o clag2z.o clag2z.f -gfortran -O2 -frecursive -c -o zlat2c.o zlat2c.f -gfortran -O2 -frecursive -c -o zhfrk.o zhfrk.f -gfortran -O2 -frecursive -c -o ztfttp.o ztfttp.f -gfortran -O2 -frecursive -c -o zlanhf.o zlanhf.f -gfortran -O2 -frecursive -c -o zpftrf.o zpftrf.f -gfortran -O2 -frecursive -c -o zpftri.o zpftri.f -gfortran -O2 -frecursive -c -o zpftrs.o zpftrs.f -gfortran -O2 -frecursive -c -o ztfsm.o ztfsm.f -gfortran -O2 -frecursive -c -o ztftri.o ztftri.f -gfortran -O2 -frecursive -c -o ztfttr.o ztfttr.f -gfortran -O2 -frecursive -c -o ztpttf.o ztpttf.f -gfortran -O2 -frecursive -c -o ztpttr.o ztpttr.f -gfortran -O2 -frecursive -c -o ztrttf.o ztrttf.f -gfortran -O2 -frecursive -c -o ztrttp.o ztrttp.f -gfortran -O2 -frecursive -c -o zgeequb.o zgeequb.f -gfortran -O2 -frecursive -c -o zgbequb.o zgbequb.f -gfortran -O2 -frecursive -c -o zsyequb.o zsyequb.f -gfortran -O2 -frecursive -c -o zpoequb.o zpoequb.f -gfortran -O2 -frecursive -c -o zheequb.o zheequb.f -gfortran -O2 -frecursive -c -o zbbcsd.o zbbcsd.f -gfortran -O2 -frecursive -c -o zlapmr.o zlapmr.f -gfortran -O2 -frecursive -c -o zunbdb.o zunbdb.f -gfortran -O2 -frecursive -c -o zunbdb1.o zunbdb1.f -gfortran -O2 -frecursive -c -o zunbdb2.o zunbdb2.f -gfortran -O2 -frecursive -c -o zunbdb3.o zunbdb3.f -gfortran -O2 -frecursive -c -o zunbdb4.o zunbdb4.f -gfortran -O2 -frecursive -c -o zunbdb5.o zunbdb5.f -gfortran -O2 -frecursive -c -o zunbdb6.o zunbdb6.f -gfortran -O2 -frecursive -c -o zuncsd.o zuncsd.f -gfortran -O2 -frecursive -c -o zuncsd2by1.o zuncsd2by1.f -gfortran -O2 -frecursive -c -o zgeqrt.o zgeqrt.f -gfortran -O2 -frecursive -c -o zgeqrt2.o zgeqrt2.f -gfortran -O2 -frecursive -c -o zgeqrt3.o zgeqrt3.f -gfortran -O2 -frecursive -c -o zgemqrt.o zgemqrt.f -gfortran -O2 -frecursive -c -o ztpqrt.o ztpqrt.f -gfortran -O2 -frecursive -c -o ztpqrt2.o ztpqrt2.f -gfortran -O2 -frecursive -c -o ztpmqrt.o ztpmqrt.f -gfortran -O2 -frecursive -c -o ztprfb.o ztprfb.f -gfortran -O2 -frecursive -c -o ztplqt.o ztplqt.f -gfortran -O2 -frecursive -c -o ztplqt2.o ztplqt2.f -gfortran -O2 -frecursive -c -o ztpmlqt.o ztpmlqt.f -gfortran -O2 -frecursive -c -o zgelqt.o zgelqt.f -gfortran -O2 -frecursive -c -o zgelqt3.o zgelqt3.f -gfortran -O2 -frecursive -c -o zgemlqt.o zgemlqt.f -gfortran -O2 -frecursive -c -o zgetsls.o zgetsls.f -gfortran -O2 -frecursive -c -o zgetsqrhrt.o zgetsqrhrt.f -gfortran -O2 -frecursive -c -o zgeqr.o zgeqr.f -gfortran -O2 -frecursive -c -o zlatsqr.o zlatsqr.f -gfortran -O2 -frecursive -c -o zlamtsqr.o zlamtsqr.f -gfortran -O2 -frecursive -c -o zgemqr.o zgemqr.f -gfortran -O2 -frecursive -c -o zgelq.o zgelq.f -gfortran -O2 -frecursive -c -o zlaswlq.o zlaswlq.f -gfortran -O2 -frecursive -c -o zlamswlq.o zlamswlq.f -gfortran -O2 -frecursive -c -o zgemlq.o zgemlq.f -gfortran -O2 -frecursive -c -o zunhr_col.o zunhr_col.f -gfortran -O2 -frecursive -c -o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp.f -gfortran -O2 -frecursive -c -o zlaunhr_col_getrfnp2.o zlaunhr_col_getrfnp2.f -gfortran -O2 -frecursive -c -o zhetrd_2stage.o zhetrd_2stage.f -gfortran -O2 -frecursive -c -o zhetrd_he2hb.o zhetrd_he2hb.f -gfortran -O2 -frecursive -c -o zhb2st_kernels.o zhb2st_kernels.f -gfortran -O2 -frecursive -c -o zheevd_2stage.o zheevd_2stage.f -gfortran -O2 -frecursive -c -o zheev_2stage.o zheev_2stage.f -gfortran -O2 -frecursive -c -o zheevx_2stage.o zheevx_2stage.f -gfortran -O2 -frecursive -c -o zheevr_2stage.o zheevr_2stage.f -gfortran -O2 -frecursive -c -o zhbev_2stage.o zhbev_2stage.f -gfortran -O2 -frecursive -c -o zhbevx_2stage.o zhbevx_2stage.f -gfortran -O2 -frecursive -c -o zhbevd_2stage.o zhbevd_2stage.f -gfortran -O2 -frecursive -c -o zhegv_2stage.o zhegv_2stage.f -gfortran -O2 -frecursive -c -o zgesvdq.o zgesvdq.f -gfortran -O2 -frecursive -c -o cpotrs.o cpotrs.f -gfortran -O2 -frecursive -c -o cgetrs.o cgetrs.f -gfortran -O2 -frecursive -c -o cpotrf.o cpotrf.f -gfortran -O2 -frecursive -c -o cgetrf.o cgetrf.f -gfortran -O2 -frecursive -c -o sbdsdc.o sbdsdc.f -gfortran -O2 -frecursive -c -o sbdsqr.o sbdsqr.f -gfortran -O2 -frecursive -c -o sdisna.o sdisna.f -gfortran -O2 -frecursive -c -o slabad.o slabad.f -gfortran -O2 -frecursive -c -o slacpy.o slacpy.f -gfortran -O2 -frecursive -c -o sladiv.o sladiv.f -gfortran -O2 -frecursive -c -o slae2.o slae2.f -gfortran -O2 -frecursive -c -o slaebz.o slaebz.f -gfortran -O2 -frecursive -c -o slaed0.o slaed0.f -gfortran -O2 -frecursive -c -o slaed1.o slaed1.f -gfortran -O2 -frecursive -c -o slaed2.o slaed2.f -gfortran -O2 -frecursive -c -o slaed3.o slaed3.f -gfortran -O2 -frecursive -c -o slaed4.o slaed4.f -gfortran -O2 -frecursive -c -o slaed5.o slaed5.f -gfortran -O2 -frecursive -c -o slaed6.o slaed6.f -gfortran -O2 -frecursive -c -o slaed7.o slaed7.f -gfortran -O2 -frecursive -c -o slaed8.o slaed8.f -gfortran -O2 -frecursive -c -o slaed9.o slaed9.f -gfortran -O2 -frecursive -c -o slaeda.o slaeda.f -gfortran -O2 -frecursive -c -o slaev2.o slaev2.f -gfortran -O2 -frecursive -c -o slagtf.o slagtf.f -gfortran -O2 -frecursive -c -o slagts.o slagts.f -gfortran -O2 -frecursive -c -o slamrg.o slamrg.f -gfortran -O2 -frecursive -c -o slanst.o slanst.f -gfortran -O2 -frecursive -c -o slapy2.o slapy2.f -gfortran -O2 -frecursive -c -o slapy3.o slapy3.f -gfortran -O2 -frecursive -c -o slarnv.o slarnv.f -gfortran -O2 -frecursive -c -o slarra.o slarra.f -gfortran -O2 -frecursive -c -o slarrb.o slarrb.f -gfortran -O2 -frecursive -c -o slarrc.o slarrc.f -gfortran -O2 -frecursive -c -o slarrd.o slarrd.f -gfortran -O2 -frecursive -c -o slarre.o slarre.f -gfortran -O2 -frecursive -c -o slarrf.o slarrf.f -gfortran -O2 -frecursive -c -o slarrj.o slarrj.f -gfortran -O2 -frecursive -c -o slarrk.o slarrk.f -gfortran -O2 -frecursive -c -o slarrr.o slarrr.f -gfortran -O2 -frecursive -c -o slaneg.o slaneg.f -gfortran -O0 -frecursive -c -o slaruv.o slaruv.f -gfortran -O2 -frecursive -c -o slas2.o slas2.f -gfortran -O2 -frecursive -c -o slascl.o slascl.f -gfortran -O2 -frecursive -c -o slasd0.o slasd0.f -gfortran -O2 -frecursive -c -o slasd1.o slasd1.f -gfortran -O2 -frecursive -c -o slasd2.o slasd2.f -gfortran -O2 -frecursive -c -o slasd3.o slasd3.f -gfortran -O2 -frecursive -c -o slasd4.o slasd4.f -gfortran -O2 -frecursive -c -o slasd5.o slasd5.f -gfortran -O2 -frecursive -c -o slasd6.o slasd6.f -gfortran -O2 -frecursive -c -o slasd7.o slasd7.f -gfortran -O2 -frecursive -c -o slasd8.o slasd8.f -gfortran -O2 -frecursive -c -o slasda.o slasda.f -gfortran -O2 -frecursive -c -o slasdq.o slasdq.f -gfortran -O2 -frecursive -c -o slasdt.o slasdt.f -gfortran -O2 -frecursive -c -o slaset.o slaset.f -gfortran -O2 -frecursive -c -o slasq1.o slasq1.f -gfortran -O2 -frecursive -c -o slasq2.o slasq2.f -gfortran -O2 -frecursive -c -o slasq3.o slasq3.f -gfortran -O2 -frecursive -c -o slasq4.o slasq4.f -gfortran -O2 -frecursive -c -o slasq5.o slasq5.f -gfortran -O2 -frecursive -c -o slasq6.o slasq6.f -gfortran -O2 -frecursive -c -o slasr.o slasr.f -gfortran -O2 -frecursive -c -o slasrt.o slasrt.f -gfortran -O2 -frecursive -c -o slasv2.o slasv2.f -gfortran -O2 -frecursive -c -o spttrf.o spttrf.f -gfortran -O2 -frecursive -c -o sstebz.o sstebz.f -gfortran -O2 -frecursive -c -o sstedc.o sstedc.f -gfortran -O2 -frecursive -c -o ssteqr.o ssteqr.f -gfortran -O2 -frecursive -c -o ssterf.o ssterf.f -gfortran -O2 -frecursive -c -o slaisnan.o slaisnan.f -gfortran -O2 -frecursive -c -o sisnan.o sisnan.f -gfortran -O2 -frecursive -c -o slartgp.o slartgp.f -gfortran -O2 -frecursive -c -o slartgs.o slartgs.f -gfortran -O2 -frecursive -c -o ../INSTALL/sroundup_lwork.o ../INSTALL/sroundup_lwork.f -gfortran -O2 -frecursive -c -o ../INSTALL/second_INT_ETIME.o ../INSTALL/second_INT_ETIME.f -gfortran -O2 -frecursive -c -o dbdsdc.o dbdsdc.f -gfortran -O2 -frecursive -c -o dbdsqr.o dbdsqr.f -gfortran -O2 -frecursive -c -o ddisna.o ddisna.f -gfortran -O2 -frecursive -c -o dlabad.o dlabad.f -gfortran -O2 -frecursive -c -o dlacpy.o dlacpy.f -gfortran -O2 -frecursive -c -o dladiv.o dladiv.f -gfortran -O2 -frecursive -c -o dlae2.o dlae2.f -gfortran -O2 -frecursive -c -o dlaebz.o dlaebz.f -gfortran -O2 -frecursive -c -o dlaed0.o dlaed0.f -gfortran -O2 -frecursive -c -o dlaed1.o dlaed1.f -gfortran -O2 -frecursive -c -o dlaed2.o dlaed2.f -gfortran -O2 -frecursive -c -o dlaed3.o dlaed3.f -gfortran -O2 -frecursive -c -o dlaed4.o dlaed4.f -gfortran -O2 -frecursive -c -o dlaed5.o dlaed5.f -gfortran -O2 -frecursive -c -o dlaed6.o dlaed6.f -gfortran -O2 -frecursive -c -o dlaed7.o dlaed7.f -gfortran -O2 -frecursive -c -o dlaed8.o dlaed8.f -gfortran -O2 -frecursive -c -o dlaed9.o dlaed9.f -gfortran -O2 -frecursive -c -o dlaeda.o dlaeda.f -gfortran -O2 -frecursive -c -o dlaev2.o dlaev2.f -gfortran -O2 -frecursive -c -o dlagtf.o dlagtf.f -gfortran -O2 -frecursive -c -o dlagts.o dlagts.f -gfortran -O2 -frecursive -c -o dlamrg.o dlamrg.f -gfortran -O2 -frecursive -c -o dlanst.o dlanst.f -gfortran -O2 -frecursive -c -o dlapy2.o dlapy2.f -gfortran -O2 -frecursive -c -o dlapy3.o dlapy3.f -gfortran -O2 -frecursive -c -o dlarnv.o dlarnv.f -gfortran -O2 -frecursive -c -o dlarra.o dlarra.f -gfortran -O2 -frecursive -c -o dlarrb.o dlarrb.f -gfortran -O2 -frecursive -c -o dlarrc.o dlarrc.f -gfortran -O2 -frecursive -c -o dlarrd.o dlarrd.f -gfortran -O2 -frecursive -c -o dlarre.o dlarre.f -gfortran -O2 -frecursive -c -o dlarrf.o dlarrf.f -gfortran -O2 -frecursive -c -o dlarrj.o dlarrj.f -gfortran -O2 -frecursive -c -o dlarrk.o dlarrk.f -gfortran -O2 -frecursive -c -o dlarrr.o dlarrr.f -gfortran -O2 -frecursive -c -o dlaneg.o dlaneg.f -gfortran -O0 -frecursive -c -o dlaruv.o dlaruv.f -gfortran -O2 -frecursive -c -o dlas2.o dlas2.f -gfortran -O2 -frecursive -c -o dlascl.o dlascl.f -gfortran -O2 -frecursive -c -o dlasd0.o dlasd0.f -gfortran -O2 -frecursive -c -o dlasd1.o dlasd1.f -gfortran -O2 -frecursive -c -o dlasd2.o dlasd2.f -gfortran -O2 -frecursive -c -o dlasd3.o dlasd3.f -gfortran -O2 -frecursive -c -o dlasd4.o dlasd4.f -gfortran -O2 -frecursive -c -o dlasd5.o dlasd5.f -gfortran -O2 -frecursive -c -o dlasd6.o dlasd6.f -gfortran -O2 -frecursive -c -o dlasd7.o dlasd7.f -gfortran -O2 -frecursive -c -o dlasd8.o dlasd8.f -gfortran -O2 -frecursive -c -o dlasda.o dlasda.f -gfortran -O2 -frecursive -c -o dlasdq.o dlasdq.f -gfortran -O2 -frecursive -c -o dlasdt.o dlasdt.f -gfortran -O2 -frecursive -c -o dlaset.o dlaset.f -gfortran -O2 -frecursive -c -o dlasq1.o dlasq1.f -gfortran -O2 -frecursive -c -o dlasq2.o dlasq2.f -gfortran -O2 -frecursive -c -o dlasq3.o dlasq3.f -gfortran -O2 -frecursive -c -o dlasq4.o dlasq4.f -gfortran -O2 -frecursive -c -o dlasq5.o dlasq5.f -gfortran -O2 -frecursive -c -o dlasq6.o dlasq6.f -gfortran -O2 -frecursive -c -o dlasr.o dlasr.f -gfortran -O2 -frecursive -c -o dlasrt.o dlasrt.f -gfortran -O2 -frecursive -c -o dlasv2.o dlasv2.f -gfortran -O2 -frecursive -c -o dpttrf.o dpttrf.f -gfortran -O2 -frecursive -c -o dstebz.o dstebz.f -gfortran -O2 -frecursive -c -o dstedc.o dstedc.f -gfortran -O2 -frecursive -c -o dsteqr.o dsteqr.f -gfortran -O2 -frecursive -c -o dsterf.o dsterf.f -gfortran -O2 -frecursive -c -o dlaisnan.o dlaisnan.f -gfortran -O2 -frecursive -c -o disnan.o disnan.f -gfortran -O2 -frecursive -c -o dlartgp.o dlartgp.f -gfortran -O2 -frecursive -c -o dlartgs.o dlartgs.f -gfortran -O2 -frecursive -c -o ../INSTALL/droundup_lwork.o ../INSTALL/droundup_lwork.f -gfortran -O2 -frecursive -c -o ../INSTALL/dlamch.o ../INSTALL/dlamch.f -gfortran -O2 -frecursive -c -o ../INSTALL/dsecnd_INT_ETIME.o ../INSTALL/dsecnd_INT_ETIME.f -gfortran -O2 -frecursive -c -o ilaenv.o ilaenv.f -gfortran -O2 -frecursive -c -o ilaenv2stage.o ilaenv2stage.f -gfortran -O2 -frecursive -c -o ieeeck.o ieeeck.f -gfortran -O2 -frecursive -c -o lsamen.o lsamen.f -gfortran -O2 -frecursive -c -o xerbla.o xerbla.f -gfortran -O2 -frecursive -c -o xerbla_array.o xerbla_array.f -gfortran -O2 -frecursive -c -o iparmq.o iparmq.f -gfortran -O2 -frecursive -c -o ilaprec.o ilaprec.f -gfortran -O2 -frecursive -c -o ilatrans.o ilatrans.f -gfortran -O2 -frecursive -c -o ilauplo.o ilauplo.f -gfortran -O2 -frecursive -c -o iladiag.o iladiag.f -gfortran -O2 -frecursive -c -o chla_transtype.o chla_transtype.f -gfortran -O2 -frecursive -c -o ../INSTALL/ilaver.o ../INSTALL/ilaver.f -gfortran -O2 -frecursive -c -o ../INSTALL/lsame.o ../INSTALL/lsame.f -gfortran -O2 -frecursive -c -o ../INSTALL/slamch.o ../INSTALL/slamch.f -gfortran -O2 -frecursive -c -o la_xisnan.o la_xisnan.F90 -gfortran -O2 -frecursive -c -o sgedmd.o sgedmd.f90 -gfortran -O2 -frecursive -c -o sgedmdq.o sgedmdq.f90 -gfortran -O2 -frecursive -c -o dsytrd_sb2st.o dsytrd_sb2st.F -gfortran -O2 -frecursive -c -o dgedmd.o dgedmd.f90 -gfortran -O2 -frecursive -c -o dgedmdq.o dgedmdq.f90 -gfortran -O2 -frecursive -c -o clartg.o clartg.f90 -gfortran -O2 -frecursive -c -o classq.o classq.f90 -gfortran -O2 -frecursive -c -o chetrd_hb2st.o chetrd_hb2st.F -gfortran -O2 -frecursive -c -o cgedmd.o cgedmd.f90 -gfortran -O2 -frecursive -c -o cgedmdq.o cgedmdq.f90 -gfortran -O2 -frecursive -c -o zlartg.o zlartg.f90 -gfortran -O2 -frecursive -c -o zlassq.o zlassq.f90 -gfortran -O2 -frecursive -c -o zhetrd_hb2st.o zhetrd_hb2st.F -gfortran -O2 -frecursive -c -o zgedmd.o zgedmd.f90 -gfortran -O2 -frecursive -c -o zgedmdq.o zgedmdq.f90 -gfortran -O2 -frecursive -c -o slartg.o slartg.f90 -gfortran -O2 -frecursive -c -o slassq.o slassq.f90 -gfortran -O2 -frecursive -c -o dlartg.o dlartg.f90 -gfortran -O2 -frecursive -c -o dlassq.o dlassq.f90 -gfortran -O2 -frecursive -c -o iparam2stage.o iparam2stage.F -ar cr ../liblapack.a sbdsvdx.o spotrf2.o sgetrf2.o sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o sgels.o sgelst.o sgelsd.o sgelss.o sgelsy.o sgeql2.o sgeqlf.o sgeqp3.o sgeqp3rk.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvdx.o sgesvx.o sgetc2.o sgetf2.o sgetri.o sggbak.o sggbal.o sgges.o sgges3.o sggesx.o sggev.o sggev3.o sggevx.o sggglm.o sgghrd.o sgghd3.o sgglse.o sggqrf.o sggrqf.o sggsvd3.o sggsvp3.o sgtcon.o sgtrfs.o sgtsv.o sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o slaqz0.o slaqz1.o slaqz2.o slaqz3.o slaqz4.o shsein.o shseqr.o slabrd.o slacon.o slacn2.o slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o slansy.o slantb.o slantp.o slantr.o slanv2.o slapll.o slapmt.o slaqgb.o slaqge.o slaqp2.o slaqps.o slaqp2rk.o slaqp3rk.o slaqsb.o slaqsp.o slaqsy.o slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o slaqtr.o slar1v.o slar2v.o ilaslr.o ilaslc.o slarf.o slarfb.o slarfb_gett.o slarfg.o slarfgp.o slarft.o slarfx.o slarfy.o slargv.o slarmm.o slarrv.o slartv.o slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o slasyf_rook.o slasyf_rk.o slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrs3.o slatrz.o slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o sorgrq.o sorgtr.o sorgtsqr.o sorgtsqr_row.o sorm2l.o sorm2r.o sorm22.o sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o spbstf.o spbsv.o spbsvx.o spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o sposvx.o spotf2.o spotri.o spstrf.o spstf2.o sppcon.o sppequ.o spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o sstevx.o ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytri2.o ssytri2x.o ssyswapr.o ssytrs.o ssytrs2.o ssyconv.o ssyconvf.o ssyconvf_rook.o ssytf2_rook.o ssytrf_rook.o ssytrs_rook.o ssytri_rook.o ssycon_rook.o ssysv_rook.o ssytf2_rk.o ssytrf_rk.o ssytrs_3.o ssytri_3.o ssytri_3x.o ssycon_3.o ssysv_rk.o slasyf_aa.o ssysv_aa.o ssytrf_aa.o ssytrs_aa.o ssysv_aa_2stage.o ssytrf_aa_2stage.o ssytrs_aa_2stage.o stbcon.o stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o stptrs.o strcon.o strevc.o strevc3.o strexc.o strrfs.o strsen.o strsna.o strsyl.o strsyl3.o strti2.o strtri.o strtrs.o stzrzf.o sstemr.o slansf.o spftrf.o spftri.o spftrs.o ssfrk.o stfsm.o stftri.o stfttp.o stfttr.o stpttf.o stpttr.o strttf.o strttp.o sgejsv.o sgesvj.o sgsvj0.o sgsvj1.o sgeequb.o ssyequb.o spoequb.o sgbequb.o sbbcsd.o slapmr.o sorbdb.o sorbdb1.o sorbdb2.o sorbdb3.o sorbdb4.o sorbdb5.o sorbdb6.o sorcsd.o sorcsd2by1.o sgeqrt.o sgeqrt2.o sgeqrt3.o sgemqrt.o stpqrt.o stpqrt2.o stpmqrt.o stprfb.o sgelqt.o sgelqt3.o sgemlqt.o sgetsls.o sgetsqrhrt.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o sgelq.o slaswlq.o slamswlq.o sgemlq.o stplqt.o stplqt2.o stpmlqt.o sorhr_col.o slaorhr_col_getrfnp.o slaorhr_col_getrfnp2.o ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o sgesvdq.o sgedmd.o sgedmdq.o dpotrf2.o dgetrf2.o dbdsvdx.o dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o dgels.o dgelst.o dgelsd.o dgelss.o dgelsy.o dgeql2.o dgeqlf.o dgeqp3.o dgeqp3rk.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvdx.o dgesvx.o dgetc2.o dgetf2.o dgetrf.o dgetri.o dgetrs.o dggbak.o dggbal.o dgges.o dgges3.o dggesx.o dggev.o dggev3.o dggevx.o dggglm.o dgghrd.o dgghd3.o dgglse.o dggqrf.o dggrqf.o dggsvd3.o dggsvp3.o dgtcon.o dgtrfs.o dgtsv.o dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o dlaqz0.o dlaqz1.o dlaqz2.o dlaqz3.o dlaqz4.o dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o dlapll.o dlapmt.o dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqp2rk.o dlaqp3rk.o dlaqsb.o dlaqsp.o dlaqsy.o dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o dlarf.o dlarf1.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o dlargv.o dlarmm.o dlarrv.o dlartv.o dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o dlasyf_rook.o dlasyf_rk.o dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrs3.o dlatrz.o dlauu2.o dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o dorgrq.o dorgtr.o dorgtsqr.o dorgtsqr_row.o dorm2l.o dorm2r.o dorm22.o dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o dpbstf.o dpbsv.o dpbsvx.o dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dpstrf.o dpstf2.o dppcon.o dppequ.o dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o dstevx.o dsycon.o dsyev.o dsyevd.o dsyevr.o dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o dsysv.o dsysvx.o dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytri2.o dsytri2x.o dsyswapr.o dsytrs.o dsytrs2.o dsyconv.o dsyconvf.o dsyconvf_rook.o dsytf2_rook.o dsytrf_rook.o dsytrs_rook.o dsytri_rook.o dsycon_rook.o dsysv_rook.o dsytf2_rk.o dsytrf_rk.o dsytrs_3.o dsytri_3.o dsytri_3x.o dsycon_3.o dsysv_rk.o dlasyf_aa.o dsysv_aa.o dsytrf_aa.o dsytrs_aa.o dsysv_aa_2stage.o dsytrf_aa_2stage.o dsytrs_aa_2stage.o dtbcon.o dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o dtptrs.o dtrcon.o dtrevc.o dtrevc3.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o dtrsyl3.o dtrti2.o dtrtri.o dtrtrs.o dtzrzf.o dstemr.o dsgesv.o dsposv.o dlag2s.o slag2d.o dlat2s.o dlansf.o dpftrf.o dpftri.o dpftrs.o dsfrk.o dtfsm.o dtftri.o dtfttp.o dtfttr.o dtpttf.o dtpttr.o dtrttf.o dtrttp.o dgejsv.o dgesvj.o dgsvj0.o dgsvj1.o dgeequb.o dsyequb.o dpoequb.o dgbequb.o dbbcsd.o dlapmr.o dorbdb.o dorbdb1.o dorbdb2.o dorbdb3.o dorbdb4.o dorbdb5.o dorbdb6.o dorcsd.o dorcsd2by1.o dgeqrt.o dgeqrt2.o dgeqrt3.o dgemqrt.o dtpqrt.o dtpqrt2.o dtpmqrt.o dtprfb.o dgelqt.o dgelqt3.o dgemlqt.o dgetsls.o dgetsqrhrt.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o dgelq.o dlaswlq.o dlamswlq.o dgemlq.o dtplqt.o dtplqt2.o dtpmlqt.o dorhr_col.o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp2.o dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o dgesvdq.o dgedmd.o dgedmdq.o spotrs.o sgetrs.o spotrf.o sgetrf.o cpotrf2.o cgetrf2.o cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o cgels.o cgelst.o cgelsd.o cgelss.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o cgeqp3rk.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o cgesvdx.o cgesvj.o cgejsv.o cgsvj0.o cgsvj1.o cgesvx.o cgetc2.o cgetf2.o cgetri.o cggbak.o cggbal.o cgges.o cgges3.o cggesx.o cggev.o cggev3.o cggevx.o cggglm.o cgghrd.o cgghd3.o cgglse.o cggqrf.o cggrqf.o cggsvd3.o cggsvp3.o cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o chetf2.o chetrd.o chetrf.o chetri.o chetri2.o chetri2x.o cheswapr.o chetrs.o chetrs2.o chetf2_rook.o chetrf_rook.o chetri_rook.o chetrs_rook.o checon_rook.o chesv_rook.o chetf2_rk.o chetrf_rk.o chetri_3.o chetri_3x.o chetrs_3.o checon_3.o chesv_rk.o chesv_aa.o chetrf_aa.o chetrs_aa.o clahef_aa.o chesv_aa_2stage.o chetrf_aa_2stage.o chetrs_aa_2stage.o chgeqz.o chpcon.o chpev.o chpevd.o claqz0.o claqz1.o claqz2.o claqz3.o chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o chpsvx.o chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o claed0.o claed7.o claed8.o claein.o claesy.o claev2.o clags2.o clagtm.o clahef.o clahef_rook.o clahef_rk.o clahqr.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o clanhb.o clanhe.o clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqp2rk.o claqp3rk.o claqsb.o claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o claqsp.o claqsy.o clar1v.o clar2v.o ilaclr.o ilaclc.o clarf.o clarfb.o clarfb_gett.o clarfg.o clarft.o clarfgp.o clarfx.o clarfy.o clargv.o clarnv.o clarrv.o clartg.o clartv.o clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o claswp.o clasyf.o clasyf_rook.o clasyf_rk.o clasyf_aa.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrs3.o clatrz.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o cposv.o cposvx.o cpotf2.o cpotri.o cpstrf.o cpstf2.o cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o crscl.o cstedc.o cstegr.o cstein.o csteqr.o csycon.o csymv.o csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o csyswapr.o csytrs.o csytrs2.o csyconv.o csyconvf.o csyconvf_rook.o csytf2_rook.o csytrf_rook.o csytrs_rook.o csytri_rook.o csycon_rook.o csysv_rook.o csytf2_rk.o csytrf_rk.o csytrf_aa.o csytrs_3.o csytrs_aa.o csytri_3.o csytri_3x.o csycon_3.o csysv_rk.o csysv_aa.o csysv_aa_2stage.o csytrf_aa_2stage.o csytrs_aa_2stage.o ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o ctprfs.o ctptri.o ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o ctrsyl.o ctrsyl3.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o cungrq.o cungtr.o cungtsqr.o cungtsqr_row.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o ctfttr.o ctpttf.o ctpttr.o ctrttf.o ctrttp.o cgeequb.o cgbequb.o csyequb.o cpoequb.o cheequb.o cbbcsd.o clapmr.o cunbdb.o cunbdb1.o cunbdb2.o cunbdb3.o cunbdb4.o cunbdb5.o cunbdb6.o cuncsd.o cuncsd2by1.o cgeqrt.o cgeqrt2.o cgeqrt3.o cgemqrt.o ctpqrt.o ctpqrt2.o ctpmqrt.o ctprfb.o cgelqt.o cgelqt3.o cgemlqt.o cgetsls.o cgetsqrhrt.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o cgelq.o claswlq.o clamswlq.o cgemlq.o ctplqt.o ctplqt2.o ctpmlqt.o cunhr_col.o claunhr_col_getrfnp.o claunhr_col_getrfnp2.o chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o cgesvdq.o cgedmd.o cgedmdq.o zpotrf2.o zgetrf2.o zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o zgels.o zgelst.o zgelsd.o zgelss.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o zgeqp3rk.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvdx.o zgesvj.o zgejsv.o zgsvj0.o zgsvj1.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o zgetri.o zgetrs.o zggbak.o zggbal.o zgges.o zgges3.o zggesx.o zggev.o zggev3.o zggevx.o zggglm.o zgghrd.o zgghd3.o zgglse.o zggqrf.o zggrqf.o zggsvd3.o zggsvp3.o zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o zhetf2.o zhetrd.o zhetrf.o zhetri.o zhetri2.o zhetri2x.o zheswapr.o zhetrs.o zhetrs2.o zhetf2_rook.o zhetrf_rook.o zhetri_rook.o zhetrs_rook.o zhecon_rook.o zhesv_rook.o zhetf2_rk.o zhetrf_rk.o zhetri_3.o zhetri_3x.o zhetrs_3.o zhecon_3.o zhesv_rk.o zhesv_aa.o zhetrf_aa.o zhetrs_aa.o zlahef_aa.o zhesv_aa_2stage.o zhetrf_aa_2stage.o zhetrs_aa_2stage.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o zlaqz0.o zlaqz1.o zlaqz2.o zlaqz3.o zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o zhpsvx.o zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o zlaed0.o zlaed7.o zlaed8.o zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o zlahef.o zlahef_rook.o zlahef_rk.o zlahqr.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o zlangt.o zlanhb.o zlanhe.o zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqp2rk.o zlaqp3rk.o zlaqsb.o zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o zlarcm.o zlarf.o zlarfb.o zlarfb_gett.o zlarfg.o zlarft.o zlarfgp.o zlarfx.o zlarfy.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o zlassq.o zlaswp.o zlasyf.o zlasyf_rook.o zlasyf_rk.o zlasyf_aa.o zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrs3.o zlatrz.o zlauu2.o zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zpstrf.o zpstf2.o zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zrscl.o zstedc.o zstegr.o zstein.o zsteqr.o zsycon.o zsymv.o zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o zsyconvf.o zsyconvf_rook.o zsytf2_rook.o zsytrf_rook.o zsytrs_rook.o zsytrs_aa.o zsytri_rook.o zsycon_rook.o zsysv_rook.o zsysv_aa_2stage.o zsytrf_aa_2stage.o zsytrs_aa_2stage.o zsytf2_rk.o zsytrf_rk.o zsytrf_aa.o zsytrs_3.o zsytri_3.o zsytri_3x.o zsycon_3.o zsysv_rk.o zsysv_aa.o ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o ztprfs.o ztptri.o ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o ztrsyl.o ztrsyl3.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o zungrq.o zungtr.o zungtsqr.o zungtsqr_row.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o zunmtr.o zupgtr.o zupmtr.o izmax1.o dzsum1.o zstemr.o zcgesv.o zcposv.o zlag2c.o clag2z.o zlat2c.o zhfrk.o ztfttp.o zlanhf.o zpftrf.o zpftri.o zpftrs.o ztfsm.o ztftri.o ztfttr.o ztpttf.o ztpttr.o ztrttf.o ztrttp.o zgeequb.o zgbequb.o zsyequb.o zpoequb.o zheequb.o zbbcsd.o zlapmr.o zunbdb.o zunbdb1.o zunbdb2.o zunbdb3.o zunbdb4.o zunbdb5.o zunbdb6.o zuncsd.o zuncsd2by1.o zgeqrt.o zgeqrt2.o zgeqrt3.o zgemqrt.o ztpqrt.o ztpqrt2.o ztpmqrt.o ztprfb.o ztplqt.o ztplqt2.o ztpmlqt.o zgelqt.o zgelqt3.o zgemlqt.o zgetsls.o zgetsqrhrt.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o zgelq.o zlaswlq.o zlamswlq.o zgemlq.o zunhr_col.o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp2.o zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o zgesvdq.o zgedmd.o zgedmdq.o cpotrs.o cgetrs.o cpotrf.o cgetrf.o la_constants.o sbdsdc.o sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o slagts.o slamrg.o slanst.o slapy2.o slapy3.o slarnv.o slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o slarrk.o slarrr.o slaneg.o slartg.o slaruv.o slas2.o slascl.o slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o slasd7.o slasd8.o slasda.o slasdq.o slasdt.o slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o ssteqr.o ssterf.o slaisnan.o sisnan.o slartgp.o slartgs.o ../INSTALL/sroundup_lwork.o ../INSTALL/second_INT_ETIME.o dbdsdc.o dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o dlagts.o dlamrg.o dlanst.o dlapy2.o dlapy3.o dlarnv.o dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o dlarrk.o dlarrr.o dlaneg.o dlartg.o dlaruv.o dlas2.o dlascl.o dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o dlaset.o dlasq1.o dlasq2.o dlasq3.o dlasq4.o dlasq5.o dlasq6.o dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o dsteqr.o dsterf.o dlaisnan.o disnan.o dlartgp.o dlartgs.o ../INSTALL/droundup_lwork.o ../INSTALL/dlamch.o ../INSTALL/dsecnd_INT_ETIME.o ilaenv.o ilaenv2stage.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o iparam2stage.o la_xisnan.o ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o -ranlib ../liblapack.a -make[1]: Leaving directory '/home/lidesia/Documents/CUDenver/RAShip/gitRepos/lapack/SRC' From af491a4d35175caa7fe7e9986b725ff42315c5a8 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 28 May 2024 01:05:35 -0400 Subject: [PATCH 05/28] fixed dlarf1f and dorm2r implementation --- SRC/Makefile | 2 +- SRC/{dlarf1.f => dlarf1f.f} | 90 +++++++++++++++++++++---------------- SRC/dorm2r.f | 10 ++--- 3 files changed, 57 insertions(+), 45 deletions(-) rename SRC/{dlarf1.f => dlarf1f.f} (68%) diff --git a/SRC/Makefile b/SRC/Makefile index 106943b9ec..ae3a7d3f42 100644 --- a/SRC/Makefile +++ b/SRC/Makefile @@ -339,7 +339,7 @@ DLASRC = \ dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqp2rk.o dlaqp3rk.o dlaqsb.o dlaqsp.o dlaqsy.o \ dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \ - dlarf.o dlarf1.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o \ + dlarf.o dlarf1f.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o \ dlargv.o dlarmm.o dlarrv.o dlartv.o \ dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o \ dlasyf.o dlasyf_rook.o dlasyf_rk.o \ diff --git a/SRC/dlarf1.f b/SRC/dlarf1f.f similarity index 68% rename from SRC/dlarf1.f rename to SRC/dlarf1f.f index 20e7f91ca7..ead75fdf78 100644 --- a/SRC/dlarf1.f +++ b/SRC/dlarf1f.f @@ -1,4 +1,5 @@ -*> \brief \b DLARF applies an elementary reflector to a general rectangular matrix. +*> \brief \b DLARF1F applies an elementary reflector to a general rectangular +* matrix assuming v(1) = 1. * * =========== DOCUMENTATION =========== * @@ -18,7 +19,7 @@ * Definition: * =========== * -* SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * .. Scalar Arguments .. * CHARACTER SIDE @@ -120,7 +121,7 @@ *> \ingroup larf * * ===================================================================== - SUBROUTINE DLARF1( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) + SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * -- LAPACK auxiliary routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- @@ -192,48 +193,59 @@ SUBROUTINE DLARF1( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * Form H * C * - IF( LASTV.GT.0 .AND. LASTC.GT.0) THEN -* -* w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) -* -! CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), LDC, -! $ V(1+INCV), INCV, ZERO, WORK, 1 ) -! DO I = 1, LASTC -! WORK(I) = ZERO -! DO J = 2, LASTV -! WORK(I) = WORK(I) + V(1 + (J-1)*INCV) * C(J,I) -! END DO -! END DO - CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(2,1), LDC, - $ v(1+INCV), INCV, ZERO, WORK, 1) -* -* w(1:lastc,1) := w(1:lastc,1) + C(1,1:lastc)**T * v(1,1) -* = w(1:lastc,1) + C(1,1:lastc)**T -* - ! Now, do w(1:lastc,1) += C(1,1:lastc)**T -! DO I = 1, LASTC -! WORK(I) = WORK(I) + C(1,I) -! END DO - CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) -* -* C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)**T -* - CALL DGER( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) + IF( LASTV.GT.0 ) THEN + ! Check if m = 1. This means v = 1, So we just need to compute + ! C := HC = (1-\tau)C. + IF( M.EQ.1 ) THEN + CALL DSCAL(LASTC, ONE - TAU, C, LDC) + ELSE +* +* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) +* + ! w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) + CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), + $ LDC, V(1+INCV), INCV, ZERO, WORK, 1) + ! w(1:lastc,1) += C(1,1:lastc)**T * v(1,1) = C(1,1:lastc)**T + CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) +* +* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T +* + ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T + ! = C(...) - tau * w(1:lastc,1)**T + CALL DAXPY(LASTC, -TAU, WORK, 1, C, LDC) + ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T + CALL DGER(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, 1, + $ C(1+1,1), LDC) + END IF END IF ELSE * * Form C * H * IF( LASTV.GT.0 ) THEN -* -* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) -* - CALL DGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, - $ V, INCV, ZERO, WORK, 1 ) -* -* C(1:lastc,1:lastv) := C(...) - w(1:lastc,1) * v(1:lastv,1)**T -* - CALL DGER( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) + ! Check if n = 1. This means v = 1, so we just need to compute + ! C := CH = C(1-\tau). + IF( N.EQ.1 ) THEN + CALL DSCAL(LASTC, ONE - TAU, C, 1) + ELSE +* +* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) +* + ! w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1) + CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, + $ C(1,1+1), LDC, V(1+INCV), INCV, ZERO, WORK, 1 ) + ! w(1:lastc,1) += C(1:lastc,1) v(1,1) = C(1:lastc,1) + CALL DAXPY(LASTC, ONE, C, 1, WORK, 1) +* +* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T +* + ! C(1:lastc,1) := C(...) - tau * w(1:lastc,1) * v(1,1)**T + ! = C(...) - tau * w(1:lastc,1) + CALL DAXPY(LASTC, -TAU, WORK, 1, C, 1) + ! C(1:lastc,2:lastv) := C(...) - tau * w(1:lastc,1) * v(2:lastv)**T + CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), + $ INCV, C(1,1+1), LDC ) + END IF END IF END IF RETURN diff --git a/SRC/dorm2r.f b/SRC/dorm2r.f index ebf9c39e00..f6592e7838 100644 --- a/SRC/dorm2r.f +++ b/SRC/dorm2r.f @@ -185,7 +185,7 @@ SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL DLARF, XERBLA, DLARF1 + EXTERNAL XERBLA, DLARF1F * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -266,12 +266,12 @@ SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * * Apply H(i) * - AII = A( I, I ) - A( I, I ) = ONE - CALL DLARF1( SIDE, MI, NI, A( I, I ), 1, TAU( I ), C( IC, +! AII = A( I, I ) +! A( I, I ) = ONE + CALL DLARF1F( SIDE, MI, NI, A( I, I ), 1, TAU( I ), C( IC, $ JC ), $ LDC, WORK ) - A( I, I ) = AII +! A( I, I ) = AII 10 CONTINUE RETURN * From 559a7e9a6264ae18cc3188ff5737cea02b7e39a6 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 28 May 2024 01:06:26 -0400 Subject: [PATCH 06/28] fixed dlarf1f and dorm2r implementation --- SRC/dlarf1f.f | 2 -- 1 file changed, 2 deletions(-) diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index ead75fdf78..9bcd929b00 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -141,8 +141,6 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) - INTEGER IONE - PARAMETER ( IONE = 1 ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT From 3267d4143c2181e1716748579e0198ce08b34be8 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 29 May 2024 17:30:20 -0400 Subject: [PATCH 07/28] small change for tau --- SRC/dlarf1f.f | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index 9bcd929b00..d3541674e8 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -159,6 +159,9 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) APPLYLEFT = LSAME( SIDE, 'L' ) LASTV = 0 LASTC = 0 + IF( TAU.EQ.ZERO ) THEN + RETURN + END IF IF( TAU.NE.ZERO ) THEN ! Set up variables for scanning V. LASTV begins pointing to the end ! of V. From 648d221026b2fd46d065173ed532b1d3ff49e75c Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Thu, 30 May 2024 08:57:31 -0400 Subject: [PATCH 08/28] updated check for if we are a trivial case from m/n=1 to lastv=1 --- SRC/dlarf1f.f | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index d3541674e8..d3458fd274 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -159,9 +159,6 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) APPLYLEFT = LSAME( SIDE, 'L' ) LASTV = 0 LASTC = 0 - IF( TAU.EQ.ZERO ) THEN - RETURN - END IF IF( TAU.NE.ZERO ) THEN ! Set up variables for scanning V. LASTV begins pointing to the end ! of V. @@ -188,8 +185,9 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) LASTC = ILADLR(M, LASTV, C, LDC) END IF END IF -! Note that lastc.eq.0 renders the BLAS operations null; no special -! case is needed at this level. + IF( LASTC.EQ.0 .OR. LASTV.EQ.0 ) THEN + RETURN + END IF IF( APPLYLEFT ) THEN * * Form H * C @@ -197,7 +195,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) IF( LASTV.GT.0 ) THEN ! Check if m = 1. This means v = 1, So we just need to compute ! C := HC = (1-\tau)C. - IF( M.EQ.1 ) THEN + IF(LASTV.EQ.1) THEN CALL DSCAL(LASTC, ONE - TAU, C, LDC) ELSE * @@ -226,7 +224,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) IF( LASTV.GT.0 ) THEN ! Check if n = 1. This means v = 1, so we just need to compute ! C := CH = C(1-\tau). - IF( N.EQ.1 ) THEN + IF(LASTV.EQ.1) THEN CALL DSCAL(LASTC, ONE - TAU, C, 1) ELSE * From 2a8775845d4de570e991434be541f6909ae97466 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Thu, 30 May 2024 09:04:33 -0400 Subject: [PATCH 09/28] updated CMakeLists and added dlarf1l.f --- SRC/CMakeLists.txt | 2 +- SRC/Makefile | 2 +- SRC/dlarf1l.f | 256 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 258 insertions(+), 2 deletions(-) create mode 100644 SRC/dlarf1l.f diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt index a2f396bae2..166aed8645 100644 --- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt @@ -307,7 +307,7 @@ set(DLASRC dlaqgb.f dlaqge.f dlaqp2.f dlaqps.f dlaqp2rk.f dlaqp3rk.f dlaqsb.f dlaqsp.f dlaqsy.f dlaqr0.f dlaqr1.f dlaqr2.f dlaqr3.f dlaqr4.f dlaqr5.f dlaqtr.f dlar1v.f dlar2v.f iladlr.f iladlc.f - dlarf.f dlarfb.f dlarfb_gett.f dlarfg.f dlarfgp.f dlarft.f dlarfx.f dlarfy.f + dlarf.f dlarfb.f dlarfb_gett.f dlarfg.f dlarfgp.f dlarft.f dlarfx.f dlarfy.f dlarf1f.f dlarf1l.f dlargv.f dlarmm.f dlarrv.f dlartv.f dlarz.f dlarzb.f dlarzt.f dlaswp.f dlasy2.f dlasyf.f dlasyf_rook.f dlasyf_rk.f dlasyf_aa.f diff --git a/SRC/Makefile b/SRC/Makefile index ae3a7d3f42..673fa99d32 100644 --- a/SRC/Makefile +++ b/SRC/Makefile @@ -339,7 +339,7 @@ DLASRC = \ dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqp2rk.o dlaqp3rk.o dlaqsb.o dlaqsp.o dlaqsy.o \ dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \ - dlarf.o dlarf1f.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o \ + dlarf.o dlarfb.o dlarfb_gett.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o dlarfy.o dlarf1f.o dlarf1l.o\ dlargv.o dlarmm.o dlarrv.o dlartv.o \ dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o \ dlasyf.o dlasyf_rook.o dlasyf_rk.o \ diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f new file mode 100644 index 0000000000..9b5483da6c --- /dev/null +++ b/SRC/dlarf1l.f @@ -0,0 +1,256 @@ +*> \brief \b DLARF1L applies an elementary reflector to a general rectangular +* matrix assuming v(lastv) = 1 where lastv is the last non-zero +* element +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLARF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* .. Scalar Arguments .. +* CHARACTER SIDE +* INTEGER INCV, LDC, M, N +* DOUBLE PRECISION TAU +* .. +* .. Array Arguments .. +* DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLARF1L applies a real elementary reflector H to a real m by n matrix +*> C, from either the left or the right. H is represented in the form +*> +*> H = I - tau * v * v**T +*> +*> where tau is a real scalar and v is a real vector. +*> +*> If tau = 0, then H is taken to be the unit matrix. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] SIDE +*> \verbatim +*> SIDE is CHARACTER*1 +*> = 'L': form H * C +*> = 'R': form C * H +*> \endverbatim +*> +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix C. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix C. +*> \endverbatim +*> +*> \param[in] V +*> \verbatim +*> V is DOUBLE PRECISION array, dimension +*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' +*> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' +*> The vector v in the representation of H. V is not used if +*> TAU = 0. +*> \endverbatim +*> +*> \param[in] INCV +*> \verbatim +*> INCV is INTEGER +*> The increment between elements of v. INCV <> 0. +*> \endverbatim +*> +*> \param[in] TAU +*> \verbatim +*> TAU is DOUBLE PRECISION +*> The value tau in the representation of H. +*> \endverbatim +*> +*> \param[in,out] C +*> \verbatim +*> C is DOUBLE PRECISION array, dimension (LDC,N) +*> On entry, the m by n matrix C. +*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', +*> or C * H if SIDE = 'R'. +*> \endverbatim +*> +*> \param[in] LDC +*> \verbatim +*> LDC is INTEGER +*> The leading dimension of the array C. LDC >= max(1,M). +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is DOUBLE PRECISION array, dimension +*> (N) if SIDE = 'L' +*> or (M) if SIDE = 'R' +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup larf +* +* ===================================================================== + SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* -- LAPACK auxiliary routine -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* +* .. Scalar Arguments .. + CHARACTER SIDE + INTEGER INCV, LDC, M, N + DOUBLE PRECISION TAU +* .. +* .. Array Arguments .. + DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) +* .. +* +* ===================================================================== +* +* .. Parameters .. + DOUBLE PRECISION ONE, ZERO + PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) + INTEGER IONE + PARAMETER ( IONE = 1 ) +* .. +* .. Local Scalars .. + LOGICAL APPLYLEFT + INTEGER I, LASTV, LASTC, J +* .. +* .. External Subroutines .. + EXTERNAL DGEMV, DGER +* .. +* .. External Functions .. + LOGICAL LSAME + INTEGER ILADLR, ILADLC + EXTERNAL LSAME, ILADLR, ILADLC +* .. +* .. Executable Statements .. +* + APPLYLEFT = LSAME( SIDE, 'L' ) + LASTV = 0 + LASTC = 0 + IF( TAU.NE.ZERO ) THEN +! Set up variables for scanning V. LASTV begins pointing to the end +! of V. + IF( APPLYLEFT ) THEN + LASTV = M + ELSE + LASTV = N + END IF + IF( INCV.GT.0 ) THEN + I = 1 + (LASTV-1) * INCV + ELSE + I = 1 + END IF +! Look for the last non-zero row in V. + DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) + LASTV = LASTV - 1 + I = I - INCV + END DO + IF( APPLYLEFT ) THEN +! Scan for the last non-zero column in C(1:lastv,:). + LASTC = ILADLC(LASTV, N, C, LDC) + ELSE +! Scan for the last non-zero row in C(:,1:lastv). + LASTC = ILADLR(M, LASTV, C, LDC) + END IF + END IF +! Note that lastc.eq.0 renders the BLAS operations null; no special +! case is needed at this level. + IF( APPLYLEFT ) THEN +* +* Form H * C +* + IF( LASTV.GT.0 ) THEN + ! Check if m = 1. This means v = 1, So we just need to compute + ! C := HC = (1-\tau)C. + IF( LASTV.EQ.1 ) THEN + CALL DSCAL(LASTC, ONE - TAU, C, LDC) + ELSE +* +* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) +* + ! w(1:lastc,1) := C(1:lastv-1,1:lastc)**T * v(1:lastv-1,1) + CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1,1), + $ LDC, V(1), INCV, ZERO, WORK, 1) + ! w(1:lastc,1) += C(lastv,1:lastc)**T * v(lastv,1) = C(lastv,1:lastc)**T + CALL DAXPY(LASTC, ONE, C(LASTV,1), LDC, WORK, 1) +* +* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T +* + ! C(lastv, 1:lastc) := C(...) - tau * v(lastv,1) * w(1:lastc,1)**T + ! = C(...) - tau * w(1:lastc,1)**T + CALL DAXPY(LASTC, -TAU, WORK, 1, C(LASTV,1), LDC) + ! C(1:lastv-1,1:lastc) := C(...) - tau * v(1:lastv-1,1)*w(1:lastc,1)**T + CALL DGER(LASTV-1, LASTC, -TAU, V(1), INCV, WORK, 1, + $ C(1,1), LDC) + END IF + END IF + ELSE +* +* Form C * H +* + IF( LASTV.GT.0 ) THEN + ! Check if n = 1. This means v = 1, so we just need to compute + ! C := CH = C(1-\tau). + IF( LASTV.EQ.1 ) THEN + CALL DSCAL(LASTC, ONE - TAU, C, 1) + ELSE +* +* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) +* + ! w(1:lastc,1) := C(1:lastc,1:lastv-1) * v(1:lastv-1,1) + CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, + $ C(1,1), LDC, V(1), INCV, ZERO, WORK, 1 ) + ! w(1:lastc,1) += C(1:lastc,lastv) * v(lastv,1) = C(1:lastc,lastv) + CALL DAXPY(LASTC, ONE, C(1,LASTV), 1, WORK, 1) +* +* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T +* + ! C(1:lastc,lastv) := C(...) - tau * w(1:lastc,1) * v(lastv,1)**T + ! = C(...) - tau * w(1:lastc,1) + CALL DAXPY(LASTC, -TAU, WORK, 1, C(1,LASTV), 1) + ! C(1:lastc,1:lastv-1) := C(...) - tau * w(1:lastc,1) * v(1:lastv-1)**T + CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1), + $ INCV, C(1,1), LDC ) + END IF + END IF + END IF + RETURN +* +* End of DLARF +* + END From 0be01da03e569ce557a4be448eb127933e3fbcc3 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Fri, 31 May 2024 08:54:09 -0400 Subject: [PATCH 10/28] implementing into dorm2l.f --- SRC/dlarf1f.f | 254 -------------------------------------------------- SRC/dorm2l.f | 8 +- 2 files changed, 4 insertions(+), 258 deletions(-) delete mode 100644 SRC/dlarf1f.f diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f deleted file mode 100644 index d3458fd274..0000000000 --- a/SRC/dlarf1f.f +++ /dev/null @@ -1,254 +0,0 @@ -*> \brief \b DLARF1F applies an elementary reflector to a general rectangular -* matrix assuming v(1) = 1. -* -* =========== DOCUMENTATION =========== -* -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ -* -*> \htmlonly -*> Download DLARF + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> -*> [TXT] -*> \endhtmlonly -* -* Definition: -* =========== -* -* SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) -* -* .. Scalar Arguments .. -* CHARACTER SIDE -* INTEGER INCV, LDC, M, N -* DOUBLE PRECISION TAU -* .. -* .. Array Arguments .. -* DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) -* .. -* -* -*> \par Purpose: -* ============= -*> -*> \verbatim -*> -*> DLARF applies a real elementary reflector H to a real m by n matrix -*> C, from either the left or the right. H is represented in the form -*> -*> H = I - tau * v * v**T -*> -*> where tau is a real scalar and v is a real vector. -*> -*> If tau = 0, then H is taken to be the unit matrix. -*> \endverbatim -* -* Arguments: -* ========== -* -*> \param[in] SIDE -*> \verbatim -*> SIDE is CHARACTER*1 -*> = 'L': form H * C -*> = 'R': form C * H -*> \endverbatim -*> -*> \param[in] M -*> \verbatim -*> M is INTEGER -*> The number of rows of the matrix C. -*> \endverbatim -*> -*> \param[in] N -*> \verbatim -*> N is INTEGER -*> The number of columns of the matrix C. -*> \endverbatim -*> -*> \param[in] V -*> \verbatim -*> V is DOUBLE PRECISION array, dimension -*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' -*> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' -*> The vector v in the representation of H. V is not used if -*> TAU = 0. -*> \endverbatim -*> -*> \param[in] INCV -*> \verbatim -*> INCV is INTEGER -*> The increment between elements of v. INCV <> 0. -*> \endverbatim -*> -*> \param[in] TAU -*> \verbatim -*> TAU is DOUBLE PRECISION -*> The value tau in the representation of H. -*> \endverbatim -*> -*> \param[in,out] C -*> \verbatim -*> C is DOUBLE PRECISION array, dimension (LDC,N) -*> On entry, the m by n matrix C. -*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', -*> or C * H if SIDE = 'R'. -*> \endverbatim -*> -*> \param[in] LDC -*> \verbatim -*> LDC is INTEGER -*> The leading dimension of the array C. LDC >= max(1,M). -*> \endverbatim -*> -*> \param[out] WORK -*> \verbatim -*> WORK is DOUBLE PRECISION array, dimension -*> (N) if SIDE = 'L' -*> or (M) if SIDE = 'R' -*> \endverbatim -* -* Authors: -* ======== -* -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \ingroup larf -* -* ===================================================================== - SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) -* -* -- LAPACK auxiliary routine -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* -* .. Scalar Arguments .. - CHARACTER SIDE - INTEGER INCV, LDC, M, N - DOUBLE PRECISION TAU -* .. -* .. Array Arguments .. - DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) -* .. -* -* ===================================================================== -* -* .. Parameters .. - DOUBLE PRECISION ONE, ZERO - PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) -* .. -* .. Local Scalars .. - LOGICAL APPLYLEFT - INTEGER I, LASTV, LASTC, J -* .. -* .. External Subroutines .. - EXTERNAL DGEMV, DGER -* .. -* .. External Functions .. - LOGICAL LSAME - INTEGER ILADLR, ILADLC - EXTERNAL LSAME, ILADLR, ILADLC -* .. -* .. Executable Statements .. -* - APPLYLEFT = LSAME( SIDE, 'L' ) - LASTV = 0 - LASTC = 0 - IF( TAU.NE.ZERO ) THEN -! Set up variables for scanning V. LASTV begins pointing to the end -! of V. - IF( APPLYLEFT ) THEN - LASTV = M - ELSE - LASTV = N - END IF - IF( INCV.GT.0 ) THEN - I = 1 + (LASTV-1) * INCV - ELSE - I = 1 - END IF -! Look for the last non-zero row in V. - DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) - LASTV = LASTV - 1 - I = I - INCV - END DO - IF( APPLYLEFT ) THEN -! Scan for the last non-zero column in C(1:lastv,:). - LASTC = ILADLC(LASTV, N, C, LDC) - ELSE -! Scan for the last non-zero row in C(:,1:lastv). - LASTC = ILADLR(M, LASTV, C, LDC) - END IF - END IF - IF( LASTC.EQ.0 .OR. LASTV.EQ.0 ) THEN - RETURN - END IF - IF( APPLYLEFT ) THEN -* -* Form H * C -* - IF( LASTV.GT.0 ) THEN - ! Check if m = 1. This means v = 1, So we just need to compute - ! C := HC = (1-\tau)C. - IF(LASTV.EQ.1) THEN - CALL DSCAL(LASTC, ONE - TAU, C, LDC) - ELSE -* -* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) -* - ! w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) - CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), - $ LDC, V(1+INCV), INCV, ZERO, WORK, 1) - ! w(1:lastc,1) += C(1,1:lastc)**T * v(1,1) = C(1,1:lastc)**T - CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) -* -* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T -* - ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T - ! = C(...) - tau * w(1:lastc,1)**T - CALL DAXPY(LASTC, -TAU, WORK, 1, C, LDC) - ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T - CALL DGER(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, 1, - $ C(1+1,1), LDC) - END IF - END IF - ELSE -* -* Form C * H -* - IF( LASTV.GT.0 ) THEN - ! Check if n = 1. This means v = 1, so we just need to compute - ! C := CH = C(1-\tau). - IF(LASTV.EQ.1) THEN - CALL DSCAL(LASTC, ONE - TAU, C, 1) - ELSE -* -* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) -* - ! w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1) - CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, - $ C(1,1+1), LDC, V(1+INCV), INCV, ZERO, WORK, 1 ) - ! w(1:lastc,1) += C(1:lastc,1) v(1,1) = C(1:lastc,1) - CALL DAXPY(LASTC, ONE, C, 1, WORK, 1) -* -* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T -* - ! C(1:lastc,1) := C(...) - tau * w(1:lastc,1) * v(1,1)**T - ! = C(...) - tau * w(1:lastc,1) - CALL DAXPY(LASTC, -TAU, WORK, 1, C, 1) - ! C(1:lastc,2:lastv) := C(...) - tau * w(1:lastc,1) * v(2:lastv)**T - CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), - $ INCV, C(1,1+1), LDC ) - END IF - END IF - END IF - RETURN -* -* End of DLARF -* - END diff --git a/SRC/dorm2l.f b/SRC/dorm2l.f index b1a27ab21b..694b1a62ba 100644 --- a/SRC/dorm2l.f +++ b/SRC/dorm2l.f @@ -262,11 +262,11 @@ SUBROUTINE DORM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * * Apply H(i) * - AII = A( NQ-K+I, I ) - A( NQ-K+I, I ) = ONE - CALL DLARF( SIDE, MI, NI, A( 1, I ), 1, TAU( I ), C, LDC, + !AII = A( NQ-K+I, I ) + !A( NQ-K+I, I ) = ONE + CALL DLARF1L( SIDE, MI, NI, A( 1, I ), 1, TAU( I ), C, LDC, $ WORK ) - A( NQ-K+I, I ) = AII + !A( NQ-K+I, I ) = AII 10 CONTINUE RETURN * From 2d8314f59ec9bdfb9f681387f495b5d48c5c8ace Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Mon, 3 Jun 2024 04:30:08 -0400 Subject: [PATCH 11/28] updating double precision routines to use dlarf1f and dlarf1l. Still developing zlarf1f.f --- SRC/CMakeLists.txt | 2 +- SRC/Makefile | 2 +- SRC/dgebd2.f | 18 +-- SRC/dgehd2.f | 10 +- SRC/dgelq2.f | 8 +- SRC/dgeql2.f | 8 +- SRC/dgeqr2.f | 8 +- SRC/dgeqr2p.f | 8 +- SRC/dgerq2.f | 8 +- SRC/dlaqp2.f | 7 +- SRC/dlaqp2rk.f | 7 +- SRC/dlaqr2.f | 9 +- SRC/dlaqr3.f | 9 +- SRC/dlarf1f.f | 256 +++++++++++++++++++++++++++++++++++++++++++ SRC/dopmtr.f | 5 +- SRC/dorbdb.f | 58 ++++------ SRC/dorbdb1.f | 13 +-- SRC/dorbdb2.f | 16 +-- SRC/dorbdb3.f | 16 +-- SRC/dorbdb4.f | 25 ++--- SRC/dorg2l.f | 4 +- SRC/dorg2r.f | 5 +- SRC/dorgl2.f | 5 +- SRC/dorgr2.f | 4 +- SRC/dorm2l.f | 7 +- SRC/dorm2r.f | 5 - SRC/dorml2.f | 9 +- SRC/zlarf1f.f | 265 +++++++++++++++++++++++++++++++++++++++++++++ 28 files changed, 614 insertions(+), 183 deletions(-) create mode 100644 SRC/dlarf1f.f create mode 100644 SRC/zlarf1f.f diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt index 166aed8645..c3a1889a0b 100644 --- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt @@ -418,7 +418,7 @@ set(ZLASRC zlaqhb.f zlaqhe.f zlaqhp.f zlaqp2.f zlaqps.f zlaqp2rk.f zlaqp3rk.f zlaqsb.f zlaqr0.f zlaqr1.f zlaqr2.f zlaqr3.f zlaqr4.f zlaqr5.f zlaqsp.f zlaqsy.f zlar1v.f zlar2v.f ilazlr.f ilazlc.f - zlarcm.f zlarf.f zlarfb.f zlarfb_gett.f + zlarcm.f zlarf.f zlarfb.f zlarfb_gett.f zlarf1f.f zlarfg.f zlarfgp.f zlarft.f zlarfx.f zlarfy.f zlargv.f zlarnv.f zlarrv.f zlartg.f90 zlartv.f zlarz.f zlarzb.f zlarzt.f zlascl.f zlaset.f zlasr.f diff --git a/SRC/Makefile b/SRC/Makefile index 673fa99d32..ddf26f46f3 100644 --- a/SRC/Makefile +++ b/SRC/Makefile @@ -453,7 +453,7 @@ ZLASRC = \ zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqp2rk.o zlaqp3rk.o zlaqsb.o \ zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \ zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o \ - zlarcm.o zlarf.o zlarfb.o zlarfb_gett.o \ + zlarcm.o zlarf.o zlarfb.o zlarfb_gett.o zlarf1f.o\ zlarfg.o zlarft.o zlarfgp.o \ zlarfx.o zlarfy.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \ zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \ diff --git a/SRC/dgebd2.f b/SRC/dgebd2.f index 98559fadee..5677ef382b 100644 --- a/SRC/dgebd2.f +++ b/SRC/dgebd2.f @@ -209,7 +209,7 @@ SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) INTEGER I * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, XERBLA + EXTERNAL DLARF1F, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -242,15 +242,13 @@ SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) CALL DLARFG( M-I+1, A( I, I ), A( MIN( I+1, M ), I ), 1, $ TAUQ( I ) ) D( I ) = A( I, I ) - A( I, I ) = ONE * * Apply H(i) to A(i:m,i+1:n) from the left * IF( I.LT.N ) - $ CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, + $ CALL DLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, $ TAUQ( I ), $ A( I, I+1 ), LDA, WORK ) - A( I, I ) = D( I ) * IF( I.LT.N ) THEN * @@ -260,13 +258,11 @@ SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) CALL DLARFG( N-I, A( I, I+1 ), A( I, MIN( I+2, N ) ), $ LDA, TAUP( I ) ) E( I ) = A( I, I+1 ) - A( I, I+1 ) = ONE * * Apply G(i) to A(i+1:m,i+1:n) from the right * - CALL DLARF( 'Right', M-I, N-I, A( I, I+1 ), LDA, + CALL DLARF1F( 'Right', M-I, N-I, A( I, I+1 ), LDA, $ TAUP( I ), A( I+1, I+1 ), LDA, WORK ) - A( I, I+1 ) = E( I ) ELSE TAUP( I ) = ZERO END IF @@ -283,14 +279,12 @@ SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) $ LDA, $ TAUP( I ) ) D( I ) = A( I, I ) - A( I, I ) = ONE * * Apply G(i) to A(i+1:m,i:n) from the right * IF( I.LT.M ) - $ CALL DLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, + $ CALL DLARF1F( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAUP( I ), A( I+1, I ), LDA, WORK ) - A( I, I ) = D( I ) * IF( I.LT.M ) THEN * @@ -301,14 +295,12 @@ SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) $ 1, $ TAUQ( I ) ) E( I ) = A( I+1, I ) - A( I+1, I ) = ONE * * Apply H(i) to A(i+1:m,i+1:n) from the left * - CALL DLARF( 'Left', M-I, N-I, A( I+1, I ), 1, + CALL DLARF1F( 'Left', M-I, N-I, A( I+1, I ), 1, $ TAUQ( I ), $ A( I+1, I+1 ), LDA, WORK ) - A( I+1, I ) = E( I ) ELSE TAUQ( I ) = ZERO END IF diff --git a/SRC/dgehd2.f b/SRC/dgehd2.f index 62417aa8c1..4b18455a5c 100644 --- a/SRC/dgehd2.f +++ b/SRC/dgehd2.f @@ -166,10 +166,9 @@ SUBROUTINE DGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I - DOUBLE PRECISION AII * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, XERBLA + EXTERNAL DLARF1F, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -199,20 +198,17 @@ SUBROUTINE DGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) * CALL DLARFG( IHI-I, A( I+1, I ), A( MIN( I+2, N ), I ), 1, $ TAU( I ) ) - AII = A( I+1, I ) - A( I+1, I ) = ONE * * Apply H(i) to A(1:ihi,i+1:ihi) from the right * - CALL DLARF( 'Right', IHI, IHI-I, A( I+1, I ), 1, TAU( I ), + CALL DLARF1F( 'Right', IHI, IHI-I, A( I+1, I ), 1, TAU( I ), $ A( 1, I+1 ), LDA, WORK ) * * Apply H(i) to A(i+1:ihi,i+1:n) from the left * - CALL DLARF( 'Left', IHI-I, N-I, A( I+1, I ), 1, TAU( I ), + CALL DLARF1F( 'Left', IHI-I, N-I, A( I+1, I ), 1, TAU( I ), $ A( I+1, I+1 ), LDA, WORK ) * - A( I+1, I ) = AII 10 CONTINUE * RETURN diff --git a/SRC/dgelq2.f b/SRC/dgelq2.f index 31dfc07a1d..79af37b4ee 100644 --- a/SRC/dgelq2.f +++ b/SRC/dgelq2.f @@ -146,10 +146,9 @@ SUBROUTINE DGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - DOUBLE PRECISION AII * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, XERBLA + EXTERNAL DLARF1F, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -183,12 +182,9 @@ SUBROUTINE DGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(i+1:m,i:n) from the right * - AII = A( I, I ) - A( I, I ) = ONE - CALL DLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, + CALL DLARF1F( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAU( I ), $ A( I+1, I ), LDA, WORK ) - A( I, I ) = AII END IF 10 CONTINUE RETURN diff --git a/SRC/dgeql2.f b/SRC/dgeql2.f index dfb08ff316..18c14618fb 100644 --- a/SRC/dgeql2.f +++ b/SRC/dgeql2.f @@ -140,10 +140,9 @@ SUBROUTINE DGEQL2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - DOUBLE PRECISION AII * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, XERBLA + EXTERNAL DLARF1L, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -177,12 +176,9 @@ SUBROUTINE DGEQL2( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(1:m-k+i,1:n-k+i-1) from the left * - AII = A( M-K+I, N-K+I ) - A( M-K+I, N-K+I ) = ONE - CALL DLARF( 'Left', M-K+I, N-K+I-1, A( 1, N-K+I ), 1, + CALL DLARF1L( 'Left', M-K+I, N-K+I-1, A( 1, N-K+I ), 1, $ TAU( I ), $ A, LDA, WORK ) - A( M-K+I, N-K+I ) = AII 10 CONTINUE RETURN * diff --git a/SRC/dgeqr2.f b/SRC/dgeqr2.f index bd4facfce7..f42f8decb3 100644 --- a/SRC/dgeqr2.f +++ b/SRC/dgeqr2.f @@ -147,10 +147,9 @@ SUBROUTINE DGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - DOUBLE PRECISION AII * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, XERBLA + EXTERNAL DLARF1F, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -184,11 +183,8 @@ SUBROUTINE DGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(i:m,i+1:n) from the left * - AII = A( I, I ) - A( I, I ) = ONE - CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), + CALL DLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), $ A( I, I+1 ), LDA, WORK ) - A( I, I ) = AII END IF 10 CONTINUE RETURN diff --git a/SRC/dgeqr2p.f b/SRC/dgeqr2p.f index b2f3188f3f..b6f910f507 100644 --- a/SRC/dgeqr2p.f +++ b/SRC/dgeqr2p.f @@ -151,10 +151,9 @@ SUBROUTINE DGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - DOUBLE PRECISION AII * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFGP, XERBLA + EXTERNAL DLARF1F, DLARFGP, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -188,11 +187,8 @@ SUBROUTINE DGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(i:m,i+1:n) from the left * - AII = A( I, I ) - A( I, I ) = ONE - CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), + CALL DLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), $ A( I, I+1 ), LDA, WORK ) - A( I, I ) = AII END IF 10 CONTINUE RETURN diff --git a/SRC/dgerq2.f b/SRC/dgerq2.f index a4ef46d854..7106fe0293 100644 --- a/SRC/dgerq2.f +++ b/SRC/dgerq2.f @@ -140,10 +140,9 @@ SUBROUTINE DGERQ2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - DOUBLE PRECISION AII * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, XERBLA + EXTERNAL DLARF1L, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -177,11 +176,8 @@ SUBROUTINE DGERQ2( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(1:m-k+i-1,1:n-k+i) from the right * - AII = A( M-K+I, N-K+I ) - A( M-K+I, N-K+I ) = ONE - CALL DLARF( 'Right', M-K+I-1, N-K+I, A( M-K+I, 1 ), LDA, + CALL DLARF1L( 'Right', M-K+I-1, N-K+I, A( M-K+I, 1 ), LDA, $ TAU( I ), A, LDA, WORK ) - A( M-K+I, N-K+I ) = AII 10 CONTINUE RETURN * diff --git a/SRC/dlaqp2.f b/SRC/dlaqp2.f index 5bfa967ee9..a4edebf64e 100644 --- a/SRC/dlaqp2.f +++ b/SRC/dlaqp2.f @@ -168,7 +168,7 @@ SUBROUTINE DLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2, * .. * .. Local Scalars .. INTEGER I, ITEMP, J, MN, OFFPI, PVT - DOUBLE PRECISION AII, TEMP, TEMP2, TOL3Z + DOUBLE PRECISION TEMP, TEMP2, TOL3Z * .. * .. External Subroutines .. EXTERNAL DLARF, DLARFG, DSWAP @@ -219,11 +219,8 @@ SUBROUTINE DLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2, * * Apply H(i)**T to A(offset+i:m,i+1:n) from the left. * - AII = A( OFFPI, I ) - A( OFFPI, I ) = ONE - CALL DLARF( 'Left', M-OFFPI+1, N-I, A( OFFPI, I ), 1, + CALL DLARF1F( 'Left', M-OFFPI+1, N-I, A( OFFPI, I ), 1, $ TAU( I ), A( OFFPI, I+1 ), LDA, WORK( 1 ) ) - A( OFFPI, I ) = AII END IF * * Update partial column norms. diff --git a/SRC/dlaqp2rk.f b/SRC/dlaqp2rk.f index aecd6bb69c..8b834aca4e 100644 --- a/SRC/dlaqp2rk.f +++ b/SRC/dlaqp2rk.f @@ -367,7 +367,7 @@ SUBROUTINE DLAQP2RK( M, N, NRHS, IOFFSET, KMAX, ABSTOL, RELTOL, * .. Local Scalars .. INTEGER I, ITEMP, J, JMAXC2NRM, KK, KP, MINMNFACT, $ MINMNUPDT - DOUBLE PRECISION AIKK, HUGEVAL, TEMP, TEMP2, TOL3Z + DOUBLE PRECISION HUGEVAL, TEMP, TEMP2, TOL3Z * .. * .. External Subroutines .. EXTERNAL DLARF, DLARFG, DSWAP @@ -621,11 +621,8 @@ SUBROUTINE DLAQP2RK( M, N, NRHS, IOFFSET, KMAX, ABSTOL, RELTOL, * condition is satisfied, not only KK < N+NRHS ) * IF( KK.LT.MINMNUPDT ) THEN - AIKK = A( I, KK ) - A( I, KK ) = ONE - CALL DLARF( 'Left', M-I+1, N+NRHS-KK, A( I, KK ), 1, + CALL DLARF1F( 'Left', M-I+1, N+NRHS-KK, A( I, KK ), 1, $ TAU( KK ), A( I, KK+1 ), LDA, WORK( 1 ) ) - A( I, KK ) = AIKK END IF * IF( KK.LT.MINMNFACT ) THEN diff --git a/SRC/dlaqr2.f b/SRC/dlaqr2.f index 8591d5d3be..a7a8392d15 100644 --- a/SRC/dlaqr2.f +++ b/SRC/dlaqr2.f @@ -312,7 +312,7 @@ SUBROUTINE DLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, * .. External Subroutines .. EXTERNAL DCOPY, DGEHRD, DGEMM, DLACPY, $ DLAHQR, - $ DLANV2, DLARF, DLARFG, DLASET, DORMHR, DTREXC + $ DLANV2, DLARF1F, DLARFG, DLASET, DORMHR, DTREXC * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, INT, MAX, MIN, SQRT @@ -597,16 +597,15 @@ SUBROUTINE DLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, CALL DCOPY( NS, V, LDV, WORK, 1 ) BETA = WORK( 1 ) CALL DLARFG( NS, BETA, WORK( 2 ), 1, TAU ) - WORK( 1 ) = ONE * CALL DLASET( 'L', JW-2, JW-2, ZERO, ZERO, T( 3, 1 ), $ LDT ) * - CALL DLARF( 'L', NS, JW, WORK, 1, TAU, T, LDT, + CALL DLARF1F( 'L', NS, JW, WORK, 1, TAU, T, LDT, $ WORK( JW+1 ) ) - CALL DLARF( 'R', NS, NS, WORK, 1, TAU, T, LDT, + CALL DLARF1F( 'R', NS, NS, WORK, 1, TAU, T, LDT, $ WORK( JW+1 ) ) - CALL DLARF( 'R', JW, NS, WORK, 1, TAU, V, LDV, + CALL DLARF1F( 'R', JW, NS, WORK, 1, TAU, V, LDV, $ WORK( JW+1 ) ) * CALL DGEHRD( JW, 1, NS, T, LDT, WORK, WORK( JW+1 ), diff --git a/SRC/dlaqr3.f b/SRC/dlaqr3.f index f8b0bc2665..5ec2351341 100644 --- a/SRC/dlaqr3.f +++ b/SRC/dlaqr3.f @@ -310,7 +310,7 @@ SUBROUTINE DLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, * .. External Subroutines .. EXTERNAL DCOPY, DGEHRD, DGEMM, DLACPY, DLAHQR, $ DLANV2, - $ DLAQR4, DLARF, DLARFG, DLASET, DORMHR, DTREXC + $ DLAQR4, DLARF1F, DLARFG, DLASET, DORMHR, DTREXC * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, INT, MAX, MIN, SQRT @@ -608,16 +608,15 @@ SUBROUTINE DLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, CALL DCOPY( NS, V, LDV, WORK, 1 ) BETA = WORK( 1 ) CALL DLARFG( NS, BETA, WORK( 2 ), 1, TAU ) - WORK( 1 ) = ONE * CALL DLASET( 'L', JW-2, JW-2, ZERO, ZERO, T( 3, 1 ), $ LDT ) * - CALL DLARF( 'L', NS, JW, WORK, 1, TAU, T, LDT, + CALL DLARF1F( 'L', NS, JW, WORK, 1, TAU, T, LDT, $ WORK( JW+1 ) ) - CALL DLARF( 'R', NS, NS, WORK, 1, TAU, T, LDT, + CALL DLARF1F( 'R', NS, NS, WORK, 1, TAU, T, LDT, $ WORK( JW+1 ) ) - CALL DLARF( 'R', JW, NS, WORK, 1, TAU, V, LDV, + CALL DLARF1F( 'R', JW, NS, WORK, 1, TAU, V, LDV, $ WORK( JW+1 ) ) * CALL DGEHRD( JW, 1, NS, T, LDT, WORK, WORK( JW+1 ), diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f new file mode 100644 index 0000000000..8a27526dd8 --- /dev/null +++ b/SRC/dlarf1f.f @@ -0,0 +1,256 @@ +*> \brief \b DLARF1F applies an elementary reflector to a general rectangular +* matrix assuming v(1) = 1. +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLARF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* .. Scalar Arguments .. +* CHARACTER SIDE +* INTEGER INCV, LDC, M, N +* DOUBLE PRECISION TAU +* .. +* .. Array Arguments .. +* DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLARF applies a real elementary reflector H to a real m by n matrix +*> C, from either the left or the right. H is represented in the form +*> +*> H = I - tau * v * v**T +*> +*> where tau is a real scalar and v is a real vector. +*> +*> If tau = 0, then H is taken to be the unit matrix. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] SIDE +*> \verbatim +*> SIDE is CHARACTER*1 +*> = 'L': form H * C +*> = 'R': form C * H +*> \endverbatim +*> +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix C. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix C. +*> \endverbatim +*> +*> \param[in] V +*> \verbatim +*> V is DOUBLE PRECISION array, dimension +*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' +*> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' +*> The vector v in the representation of H. V is not used if +*> TAU = 0. +*> \endverbatim +*> +*> \param[in] INCV +*> \verbatim +*> INCV is INTEGER +*> The increment between elements of v. INCV <> 0. +*> \endverbatim +*> +*> \param[in] TAU +*> \verbatim +*> TAU is DOUBLE PRECISION +*> The value tau in the representation of H. +*> \endverbatim +*> +*> \param[in,out] C +*> \verbatim +*> C is DOUBLE PRECISION array, dimension (LDC,N) +*> On entry, the m by n matrix C. +*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', +*> or C * H if SIDE = 'R'. +*> \endverbatim +*> +*> \param[in] LDC +*> \verbatim +*> LDC is INTEGER +*> The leading dimension of the array C. LDC >= max(1,M). +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is DOUBLE PRECISION array, dimension +*> (N) if SIDE = 'L' +*> or (M) if SIDE = 'R' +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup larf +* +* ===================================================================== + SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* -- LAPACK auxiliary routine -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* +* .. Scalar Arguments .. + CHARACTER SIDE + INTEGER INCV, LDC, M, N + DOUBLE PRECISION TAU +* .. +* .. Array Arguments .. + DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) +* .. +* +* ===================================================================== +* +* .. Parameters .. + DOUBLE PRECISION ONE, ZERO + PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) + INTEGER IONE + PARAMETER ( IONE = 1 ) +* .. +* .. Local Scalars .. + LOGICAL APPLYLEFT + INTEGER I, LASTV, LASTC, J +* .. +* .. External Subroutines .. + EXTERNAL DGEMV, DGER +* .. +* .. External Functions .. + LOGICAL LSAME + INTEGER ILADLR, ILADLC + EXTERNAL LSAME, ILADLR, ILADLC +* .. +* .. Executable Statements .. +* + APPLYLEFT = LSAME( SIDE, 'L' ) + LASTV = 0 + LASTC = 0 + IF( TAU.NE.ZERO ) THEN +! Set up variables for scanning V. LASTV begins pointing to the end +! of V. + IF( APPLYLEFT ) THEN + LASTV = M + ELSE + LASTV = N + END IF + IF( INCV.GT.0 ) THEN + I = 1 + (LASTV-1) * INCV + ELSE + I = 1 + END IF +! Look for the last non-zero row in V. + DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) + LASTV = LASTV - 1 + I = I - INCV + END DO + IF( APPLYLEFT ) THEN +! Scan for the last non-zero column in C(1:lastv,:). + LASTC = ILADLC(LASTV, N, C, LDC) + ELSE +! Scan for the last non-zero row in C(:,1:lastv). + LASTC = ILADLR(M, LASTV, C, LDC) + END IF + END IF + IF( LASTC.EQ.0 .OR. LASTV.EQ.0 ) THEN + RETURN + END IF + IF( APPLYLEFT ) THEN +* +* Form H * C +* + IF( LASTV.GT.0 ) THEN + ! Check if m = 1. This means v = 1, So we just need to compute + ! C := HC = (1-\tau)C. + IF( M.EQ.1 .OR. LASTV.EQ.1) THEN + CALL DSCAL(LASTC, ONE - TAU, C, LDC) + ELSE +* +* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) +* + ! w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) + CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), + $ LDC, V(1+INCV), INCV, ZERO, WORK, 1) + ! w(1:lastc,1) += C(1,1:lastc)**T * v(1,1) = C(1,1:lastc)**T + CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) +* +* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T +* + ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T + ! = C(...) - tau * w(1:lastc,1)**T + CALL DAXPY(LASTC, -TAU, WORK, 1, C, LDC) + ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T + CALL DGER(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, 1, + $ C(1+1,1), LDC) + END IF + END IF + ELSE +* +* Form C * H +* + IF( LASTV.GT.0 ) THEN + ! Check if n = 1. This means v = 1, so we just need to compute + ! C := CH = C(1-\tau). + IF( N.EQ.1 .OR. LASTV.EQ.1) THEN + CALL DSCAL(LASTC, ONE - TAU, C, 1) + ELSE +* +* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) +* + ! w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1) + CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, + $ C(1,1+1), LDC, V(1+INCV), INCV, ZERO, WORK, 1 ) + ! w(1:lastc,1) += C(1:lastc,1) v(1,1) = C(1:lastc,1) + CALL DAXPY(LASTC, ONE, C, 1, WORK, 1) +* +* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T +* + ! C(1:lastc,1) := C(...) - tau * w(1:lastc,1) * v(1,1)**T + ! = C(...) - tau * w(1:lastc,1) + CALL DAXPY(LASTC, -TAU, WORK, 1, C, 1) + ! C(1:lastc,2:lastv) := C(...) - tau * w(1:lastc,1) * v(2:lastv)**T + CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), + $ INCV, C(1,1+1), LDC ) + END IF + END IF + END IF + RETURN +* +* End of DLARF +* + END diff --git a/SRC/dopmtr.f b/SRC/dopmtr.f index fd2fd9c239..6289a2daea 100644 --- a/SRC/dopmtr.f +++ b/SRC/dopmtr.f @@ -261,12 +261,9 @@ SUBROUTINE DOPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, * * Apply H(i) * - AII = AP( II ) - AP( II ) = ONE - CALL DLARF( SIDE, MI, NI, AP( II-I+1 ), 1, TAU( I ), C, + CALL DLARF1L( SIDE, MI, NI, AP( II-I+1 ), 1, TAU( I ), C, $ LDC, $ WORK ) - AP( II ) = AII * IF( FORWRD ) THEN II = II + I + 2 diff --git a/SRC/dorbdb.f b/SRC/dorbdb.f index f70813bdb3..2def0a5147 100644 --- a/SRC/dorbdb.f +++ b/SRC/dorbdb.f @@ -316,7 +316,7 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, DOUBLE PRECISION Z1, Z2, Z3, Z4 * .. * .. External Subroutines .. - EXTERNAL DAXPY, DLARF, DLARFGP, DSCAL, + EXTERNAL DAXPY, DLARF1F, DLARFGP, DSCAL, $ XERBLA * .. * .. External Functions .. @@ -422,7 +422,6 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, ELSE IF( P .EQ. I ) THEN CALL DLARFGP( P-I+1, X11(I,I), X11(I,I), 1, TAUP1(I) ) END IF - X11(I,I) = ONE IF ( M-P .GT. I ) THEN CALL DLARFGP( M-P-I+1, X21(I,I), X21(I+1,I), 1, $ TAUP2(I) ) @@ -430,23 +429,22 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-P-I+1, X21(I,I), X21(I,I), 1, $ TAUP2(I) ) END IF - X21(I,I) = ONE * IF ( Q .GT. I ) THEN - CALL DLARF( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), + CALL DLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), $ X11(I,I+1), LDX11, WORK ) END IF IF ( M-Q+1 .GT. I ) THEN - CALL DLARF( 'L', P-I+1, M-Q-I+1, X11(I,I), 1, + CALL DLARF1F( 'L', P-I+1, M-Q-I+1, X11(I,I), 1, $ TAUP1(I), $ X12(I,I), LDX12, WORK ) END IF IF ( Q .GT. I ) THEN - CALL DLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), + CALL DLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), $ X21(I,I+1), LDX21, WORK ) END IF IF ( M-Q+1 .GT. I ) THEN - CALL DLARF( 'L', M-P-I+1, M-Q-I+1, X21(I,I), 1, + CALL DLARF1F( 'L', M-P-I+1, M-Q-I+1, X21(I,I), 1, $ TAUP2(I), $ X22(I,I), LDX22, WORK ) END IF @@ -476,7 +474,6 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( Q-I, X11(I,I+1), X11(I,I+2), LDX11, $ TAUQ1(I) ) END IF - X11(I,I+1) = ONE END IF IF ( Q+I-1 .LT. M ) THEN IF ( M-Q .EQ. I ) THEN @@ -487,23 +484,22 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, $ TAUQ2(I) ) END IF END IF - X12(I,I) = ONE * IF( I .LT. Q ) THEN - CALL DLARF( 'R', P-I, Q-I, X11(I,I+1), LDX11, + CALL DLARF1F( 'R', P-I, Q-I, X11(I,I+1), LDX11, $ TAUQ1(I), $ X11(I+1,I+1), LDX11, WORK ) - CALL DLARF( 'R', M-P-I, Q-I, X11(I,I+1), LDX11, + CALL DLARF1F( 'R', M-P-I, Q-I, X11(I,I+1), LDX11, $ TAUQ1(I), $ X21(I+1,I+1), LDX21, WORK ) END IF IF ( P .GT. I ) THEN - CALL DLARF( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, + CALL DLARF1F( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, $ TAUQ2(I), $ X12(I+1,I), LDX12, WORK ) END IF IF ( M-P .GT. I ) THEN - CALL DLARF( 'R', M-P-I, M-Q-I+1, X12(I,I), LDX12, + CALL DLARF1F( 'R', M-P-I, M-Q-I+1, X12(I,I), LDX12, $ TAUQ2(I), X22(I+1,I), LDX22, WORK ) END IF * @@ -521,15 +517,14 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-Q-I+1, X12(I,I), X12(I,I+1), LDX12, $ TAUQ2(I) ) END IF - X12(I,I) = ONE * IF ( P .GT. I ) THEN - CALL DLARF( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, + CALL DLARF1F( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, $ TAUQ2(I), $ X12(I+1,I), LDX12, WORK ) END IF IF( M-P-Q .GE. 1 ) - $ CALL DLARF( 'R', M-P-Q, M-Q-I+1, X12(I,I), LDX12, + $ CALL DLARF1F( 'R', M-P-Q, M-Q-I+1, X12(I,I), LDX12, $ TAUQ2(I), X22(Q+1,I), LDX22, WORK ) * END DO @@ -546,9 +541,8 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-P-Q-I+1, X22(Q+I,P+I), X22(Q+I,P+I+1), $ LDX22, TAUQ2(P+I) ) END IF - X22(Q+I,P+I) = ONE IF ( I .LT. M-P-Q ) THEN - CALL DLARF( 'R', M-P-Q-I, M-P-Q-I+1, X22(Q+I,P+I), + CALL DLARF1F( 'R', M-P-Q-I, M-P-Q-I+1, X22(Q+I,P+I), $ LDX22, $ TAUQ2(P+I), X22(Q+I+1,P+I), LDX22, WORK ) END IF @@ -584,7 +578,6 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, * CALL DLARFGP( P-I+1, X11(I,I), X11(I,I+1), LDX11, $ TAUP1(I) ) - X11(I,I) = ONE IF ( I .EQ. M-P ) THEN CALL DLARFGP( M-P-I+1, X21(I,I), X21(I,I), LDX21, $ TAUP2(I) ) @@ -592,24 +585,23 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-P-I+1, X21(I,I), X21(I,I+1), LDX21, $ TAUP2(I) ) END IF - X21(I,I) = ONE * IF ( Q .GT. I ) THEN - CALL DLARF( 'R', Q-I, P-I+1, X11(I,I), LDX11, + CALL DLARF1F( 'R', Q-I, P-I+1, X11(I,I), LDX11, $ TAUP1(I), $ X11(I+1,I), LDX11, WORK ) END IF IF ( M-Q+1 .GT. I ) THEN - CALL DLARF( 'R', M-Q-I+1, P-I+1, X11(I,I), LDX11, + CALL DLARF1F( 'R', M-Q-I+1, P-I+1, X11(I,I), LDX11, $ TAUP1(I), X12(I,I), LDX12, WORK ) END IF IF ( Q .GT. I ) THEN - CALL DLARF( 'R', Q-I, M-P-I+1, X21(I,I), LDX21, + CALL DLARF1F( 'R', Q-I, M-P-I+1, X21(I,I), LDX21, $ TAUP2(I), $ X21(I+1,I), LDX21, WORK ) END IF IF ( M-Q+1 .GT. I ) THEN - CALL DLARF( 'R', M-Q-I+1, M-P-I+1, X21(I,I), LDX21, + CALL DLARF1F( 'R', M-Q-I+1, M-P-I+1, X21(I,I), LDX21, $ TAUP2(I), X22(I,I), LDX22, WORK ) END IF * @@ -634,7 +626,6 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( Q-I, X11(I+1,I), X11(I+2,I), 1, $ TAUQ1(I) ) END IF - X11(I+1,I) = ONE END IF IF ( M-Q .GT. I ) THEN CALL DLARFGP( M-Q-I+1, X12(I,I), X12(I+1,I), 1, @@ -643,18 +634,17 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-Q-I+1, X12(I,I), X12(I,I), 1, $ TAUQ2(I) ) END IF - X12(I,I) = ONE * IF( I .LT. Q ) THEN - CALL DLARF( 'L', Q-I, P-I, X11(I+1,I), 1, TAUQ1(I), + CALL DLARF1F( 'L', Q-I, P-I, X11(I+1,I), 1, TAUQ1(I), $ X11(I+1,I+1), LDX11, WORK ) - CALL DLARF( 'L', Q-I, M-P-I, X11(I+1,I), 1, TAUQ1(I), + CALL DLARF1F( 'L', Q-I, M-P-I, X11(I+1,I), 1, TAUQ1(I), $ X21(I+1,I+1), LDX21, WORK ) END IF - CALL DLARF( 'L', M-Q-I+1, P-I, X12(I,I), 1, TAUQ2(I), + CALL DLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, TAUQ2(I), $ X12(I,I+1), LDX12, WORK ) IF ( M-P-I .GT. 0 ) THEN - CALL DLARF( 'L', M-Q-I+1, M-P-I, X12(I,I), 1, + CALL DLARF1F( 'L', M-Q-I+1, M-P-I, X12(I,I), 1, $ TAUQ2(I), $ X22(I,I+1), LDX22, WORK ) END IF @@ -668,14 +658,13 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DSCAL( M-Q-I+1, -Z1*Z4, X12(I,I), 1 ) CALL DLARFGP( M-Q-I+1, X12(I,I), X12(I+1,I), 1, $ TAUQ2(I) ) - X12(I,I) = ONE * IF ( P .GT. I ) THEN - CALL DLARF( 'L', M-Q-I+1, P-I, X12(I,I), 1, TAUQ2(I), + CALL DLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, TAUQ2(I), $ X12(I,I+1), LDX12, WORK ) END IF IF( M-P-Q .GE. 1 ) - $ CALL DLARF( 'L', M-Q-I+1, M-P-Q, X12(I,I), 1, + $ CALL DLARF1F( 'L', M-Q-I+1, M-P-Q, X12(I,I), 1, $ TAUQ2(I), $ X22(I,Q+1), LDX22, WORK ) * @@ -694,10 +683,9 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-P-Q-I+1, X22(P+I,Q+I), X22(P+I+1,Q+I), $ 1, $ TAUQ2(P+I) ) - CALL DLARF( 'L', M-P-Q-I+1, M-P-Q-I, X22(P+I,Q+I), 1, + CALL DLARF1F( 'L', M-P-Q-I+1, M-P-Q-I, X22(P+I,Q+I), 1, $ TAUQ2(P+I), X22(P+I,Q+I+1), LDX22, WORK ) END IF - X22(P+I,Q+I) = ONE * END DO * diff --git a/SRC/dorbdb1.f b/SRC/dorbdb1.f index 7dceca9bc1..a4095e9096 100644 --- a/SRC/dorbdb1.f +++ b/SRC/dorbdb1.f @@ -228,7 +228,7 @@ SUBROUTINE DORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFGP, DORBDB5, DROT, + EXTERNAL DLARF1F, DLARFGP, DORBDB5, DROT, $ XERBLA * .. * .. External Functions .. @@ -287,12 +287,10 @@ SUBROUTINE DORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, THETA(I) = ATAN2( X21(I,I), X11(I,I) ) C = COS( THETA(I) ) S = SIN( THETA(I) ) - X11(I,I) = ONE - X21(I,I) = ONE - CALL DLARF( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), X11(I, + CALL DLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), X11(I, $ I+1), $ LDX11, WORK(ILARF) ) - CALL DLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), + CALL DLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), $ X21(I,I+1), LDX21, WORK(ILARF) ) * IF( I .LT. Q ) THEN @@ -301,10 +299,9 @@ SUBROUTINE DORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, CALL DLARFGP( Q-I, X21(I,I+1), X21(I,I+2), LDX21, $ TAUQ1(I) ) S = X21(I,I+1) - X21(I,I+1) = ONE - CALL DLARF( 'R', P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), + CALL DLARF1F( 'R', P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), $ X11(I+1,I+1), LDX11, WORK(ILARF) ) - CALL DLARF( 'R', M-P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), + CALL DLARF1F( 'R', M-P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), $ X21(I+1,I+1), LDX21, WORK(ILARF) ) C = SQRT( DNRM2( P-I, X11(I+1,I+1), 1 )**2 $ + DNRM2( M-P-I, X21(I+1,I+1), 1 )**2 ) diff --git a/SRC/dorbdb2.f b/SRC/dorbdb2.f index e6b1b97107..56204a0b6c 100644 --- a/SRC/dorbdb2.f +++ b/SRC/dorbdb2.f @@ -227,7 +227,7 @@ SUBROUTINE DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFGP, DORBDB5, DROT, DSCAL, + EXTERNAL DLARF1F, DLARFGP, DORBDB5, DROT, DSCAL, $ XERBLA * .. * .. External Functions .. @@ -287,10 +287,9 @@ SUBROUTINE DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, END IF CALL DLARFGP( Q-I+1, X11(I,I), X11(I,I+1), LDX11, TAUQ1(I) ) C = X11(I,I) - X11(I,I) = ONE - CALL DLARF( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + CALL DLARF1F( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL DLARF( 'R', M-P-I+1, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + CALL DLARF1F( 'R', M-P-I+1, Q-I+1, X11(I,I), LDX11, TAUQ1(I), $ X21(I,I), LDX21, WORK(ILARF) ) S = SQRT( DNRM2( P-I, X11(I+1,I), 1 )**2 $ + DNRM2( M-P-I+1, X21(I,I), 1 )**2 ) @@ -306,12 +305,10 @@ SUBROUTINE DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI(I) = ATAN2( X11(I+1,I), X21(I,I) ) C = COS( PHI(I) ) S = SIN( PHI(I) ) - X11(I+1,I) = ONE - CALL DLARF( 'L', P-I, Q-I, X11(I+1,I), 1, TAUP1(I), + CALL DLARF1F( 'L', P-I, Q-I, X11(I+1,I), 1, TAUP1(I), $ X11(I+1,I+1), LDX11, WORK(ILARF) ) END IF - X21(I,I) = ONE - CALL DLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), + CALL DLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), $ X21(I,I+1), LDX21, WORK(ILARF) ) * END DO @@ -320,8 +317,7 @@ SUBROUTINE DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, * DO I = P + 1, Q CALL DLARFGP( M-P-I+1, X21(I,I), X21(I+1,I), 1, TAUP2(I) ) - X21(I,I) = ONE - CALL DLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), + CALL DLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), $ X21(I,I+1), LDX21, WORK(ILARF) ) END DO * diff --git a/SRC/dorbdb3.f b/SRC/dorbdb3.f index 1914ce496a..3c64d52265 100644 --- a/SRC/dorbdb3.f +++ b/SRC/dorbdb3.f @@ -226,7 +226,7 @@ SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFGP, DORBDB5, DROT, + EXTERNAL DLARF1F, DLARFGP, DORBDB5, DROT, $ XERBLA * .. * .. External Functions .. @@ -287,10 +287,9 @@ SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, * CALL DLARFGP( Q-I+1, X21(I,I), X21(I,I+1), LDX21, TAUQ1(I) ) S = X21(I,I) - X21(I,I) = ONE - CALL DLARF( 'R', P-I+1, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + CALL DLARF1F( 'R', P-I+1, Q-I+1, X21(I,I), LDX21, TAUQ1(I), $ X11(I,I), LDX11, WORK(ILARF) ) - CALL DLARF( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + CALL DLARF1F( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), $ X21(I+1,I), LDX21, WORK(ILARF) ) C = SQRT( DNRM2( P-I+1, X11(I,I), 1 )**2 $ + DNRM2( M-P-I, X21(I+1,I), 1 )**2 ) @@ -306,12 +305,10 @@ SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI(I) = ATAN2( X21(I+1,I), X11(I,I) ) C = COS( PHI(I) ) S = SIN( PHI(I) ) - X21(I+1,I) = ONE - CALL DLARF( 'L', M-P-I, Q-I, X21(I+1,I), 1, TAUP2(I), + CALL DLARF1F( 'L', M-P-I, Q-I, X21(I+1,I), 1, TAUP2(I), $ X21(I+1,I+1), LDX21, WORK(ILARF) ) END IF - X11(I,I) = ONE - CALL DLARF( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), X11(I, + CALL DLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), X11(I, $ I+1), $ LDX11, WORK(ILARF) ) * @@ -321,8 +318,7 @@ SUBROUTINE DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, * DO I = M-P + 1, Q CALL DLARFGP( P-I+1, X11(I,I), X11(I+1,I), 1, TAUP1(I) ) - X11(I,I) = ONE - CALL DLARF( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), X11(I, + CALL DLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, TAUP1(I), X11(I, $ I+1), $ LDX11, WORK(ILARF) ) END DO diff --git a/SRC/dorbdb4.f b/SRC/dorbdb4.f index c0150cb967..14dca198ea 100644 --- a/SRC/dorbdb4.f +++ b/SRC/dorbdb4.f @@ -307,12 +307,10 @@ SUBROUTINE DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, THETA(I) = ATAN2( PHANTOM(1), PHANTOM(P+1) ) C = COS( THETA(I) ) S = SIN( THETA(I) ) - PHANTOM(1) = ONE - PHANTOM(P+1) = ONE - CALL DLARF( 'L', P, Q, PHANTOM(1), 1, TAUP1(1), X11, + CALL DLARF1F( 'L', P, Q, PHANTOM(1), 1, TAUP1(1), X11, $ LDX11, $ WORK(ILARF) ) - CALL DLARF( 'L', M-P, Q, PHANTOM(P+1), 1, TAUP2(1), X21, + CALL DLARF1F( 'L', M-P, Q, PHANTOM(P+1), 1, TAUP2(1), X21, $ LDX21, WORK(ILARF) ) ELSE CALL DORBDB5( P-I+1, M-P-I+1, Q-I+1, X11(I,I-1), 1, @@ -326,21 +324,18 @@ SUBROUTINE DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, THETA(I) = ATAN2( X11(I,I-1), X21(I,I-1) ) C = COS( THETA(I) ) S = SIN( THETA(I) ) - X11(I,I-1) = ONE - X21(I,I-1) = ONE - CALL DLARF( 'L', P-I+1, Q-I+1, X11(I,I-1), 1, TAUP1(I), + CALL DLARF1F( 'L', P-I+1, Q-I+1, X11(I,I-1), 1, TAUP1(I), $ X11(I,I), LDX11, WORK(ILARF) ) - CALL DLARF( 'L', M-P-I+1, Q-I+1, X21(I,I-1), 1, TAUP2(I), + CALL DLARF1F( 'L', M-P-I+1, Q-I+1, X21(I,I-1), 1, TAUP2(I), $ X21(I,I), LDX21, WORK(ILARF) ) END IF * CALL DROT( Q-I+1, X11(I,I), LDX11, X21(I,I), LDX21, S, -C ) CALL DLARFGP( Q-I+1, X21(I,I), X21(I,I+1), LDX21, TAUQ1(I) ) C = X21(I,I) - X21(I,I) = ONE - CALL DLARF( 'R', P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + CALL DLARF1F( 'R', P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL DLARF( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + CALL DLARF1F( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), $ X21(I+1,I), LDX21, WORK(ILARF) ) IF( I .LT. M-Q ) THEN S = SQRT( DNRM2( P-I, X11(I+1,I), 1 )**2 @@ -354,10 +349,9 @@ SUBROUTINE DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, * DO I = M - Q + 1, P CALL DLARFGP( Q-I+1, X11(I,I), X11(I,I+1), LDX11, TAUQ1(I) ) - X11(I,I) = ONE - CALL DLARF( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + CALL DLARF1F( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL DLARF( 'R', Q-P, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + CALL DLARF1F( 'R', Q-P, Q-I+1, X11(I,I), LDX11, TAUQ1(I), $ X21(M-Q+1,I), LDX21, WORK(ILARF) ) END DO * @@ -367,8 +361,7 @@ SUBROUTINE DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, CALL DLARFGP( Q-I+1, X21(M-Q+I-P,I), X21(M-Q+I-P,I+1), $ LDX21, $ TAUQ1(I) ) - X21(M-Q+I-P,I) = ONE - CALL DLARF( 'R', Q-I, Q-I+1, X21(M-Q+I-P,I), LDX21, + CALL DLARF1F( 'R', Q-I, Q-I+1, X21(M-Q+I-P,I), LDX21, $ TAUQ1(I), $ X21(M-Q+I-P+1,I), LDX21, WORK(ILARF) ) END DO diff --git a/SRC/dorg2l.f b/SRC/dorg2l.f index af8831085b..d5106b53d0 100644 --- a/SRC/dorg2l.f +++ b/SRC/dorg2l.f @@ -133,7 +133,7 @@ SUBROUTINE DORG2L( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, II, J, L * .. * .. External Subroutines .. - EXTERNAL DLARF, DSCAL, XERBLA + EXTERNAL DLARF1L, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -177,7 +177,7 @@ SUBROUTINE DORG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * Apply H(i) to A(1:m-k+i,1:n-k+i) from the left * A( M-N+II, II ) = ONE - CALL DLARF( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), + CALL DLARF1L( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), $ A, $ LDA, WORK ) CALL DSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 ) diff --git a/SRC/dorg2r.f b/SRC/dorg2r.f index 221b52bb8c..0d293486f1 100644 --- a/SRC/dorg2r.f +++ b/SRC/dorg2r.f @@ -133,7 +133,7 @@ SUBROUTINE DORG2R( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, J, L * .. * .. External Subroutines .. - EXTERNAL DLARF, DSCAL, XERBLA + EXTERNAL DLARF1F, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -176,8 +176,7 @@ SUBROUTINE DORG2R( M, N, K, A, LDA, TAU, WORK, INFO ) * Apply H(i) to A(i:m,i:n) from the left * IF( I.LT.N ) THEN - A( I, I ) = ONE - CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), + CALL DLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), $ A( I, I+1 ), LDA, WORK ) END IF IF( I.LT.M ) diff --git a/SRC/dorgl2.f b/SRC/dorgl2.f index 98128b25d5..3d71e33266 100644 --- a/SRC/dorgl2.f +++ b/SRC/dorgl2.f @@ -132,7 +132,7 @@ SUBROUTINE DORGL2( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, J, L * .. * .. External Subroutines .. - EXTERNAL DLARF, DSCAL, XERBLA + EXTERNAL DLARF1F, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -180,8 +180,7 @@ SUBROUTINE DORGL2( M, N, K, A, LDA, TAU, WORK, INFO ) * IF( I.LT.N ) THEN IF( I.LT.M ) THEN - A( I, I ) = ONE - CALL DLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, + CALL DLARF1F( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAU( I ), A( I+1, I ), LDA, WORK ) END IF CALL DSCAL( N-I, -TAU( I ), A( I, I+1 ), LDA ) diff --git a/SRC/dorgr2.f b/SRC/dorgr2.f index 211db4f8db..ae317489b2 100644 --- a/SRC/dorgr2.f +++ b/SRC/dorgr2.f @@ -180,8 +180,8 @@ SUBROUTINE DORGR2( M, N, K, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(1:m-k+i,1:n-k+i) from the right * - A( II, N-M+II ) = ONE - CALL DLARF( 'Right', II-1, N-M+II, A( II, 1 ), LDA, + !A( II, N-M+II ) = ONE + CALL DLARF1L( 'Right', II-1, N-M+II, A( II, 1 ), LDA, $ TAU( I ), $ A, LDA, WORK ) CALL DSCAL( N-M+II-1, -TAU( I ), A( II, 1 ), LDA ) diff --git a/SRC/dorm2l.f b/SRC/dorm2l.f index 694b1a62ba..37866ed0cf 100644 --- a/SRC/dorm2l.f +++ b/SRC/dorm2l.f @@ -98,7 +98,6 @@ *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGEQLF in the last k columns of its array argument A. -*> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA @@ -178,14 +177,13 @@ SUBROUTINE DORM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, MI, NI, NQ - DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL DLARF, XERBLA + EXTERNAL DLARF1L, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -262,11 +260,8 @@ SUBROUTINE DORM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * * Apply H(i) * - !AII = A( NQ-K+I, I ) - !A( NQ-K+I, I ) = ONE CALL DLARF1L( SIDE, MI, NI, A( 1, I ), 1, TAU( I ), C, LDC, $ WORK ) - !A( NQ-K+I, I ) = AII 10 CONTINUE RETURN * diff --git a/SRC/dorm2r.f b/SRC/dorm2r.f index f6592e7838..e6e40a718c 100644 --- a/SRC/dorm2r.f +++ b/SRC/dorm2r.f @@ -98,7 +98,6 @@ *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGEQRF in the first k columns of its array argument A. -*> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA @@ -178,7 +177,6 @@ SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ - DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME @@ -266,12 +264,9 @@ SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * * Apply H(i) * -! AII = A( I, I ) -! A( I, I ) = ONE CALL DLARF1F( SIDE, MI, NI, A( I, I ), 1, TAU( I ), C( IC, $ JC ), $ LDC, WORK ) -! A( I, I ) = AII 10 CONTINUE RETURN * diff --git a/SRC/dorml2.f b/SRC/dorml2.f index fcdf5b1b13..dfdab973cc 100644 --- a/SRC/dorml2.f +++ b/SRC/dorml2.f @@ -100,7 +100,6 @@ *> The i-th row must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGELQF in the first k rows of its array argument A. -*> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA @@ -178,14 +177,13 @@ SUBROUTINE DORML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ - DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL DLARF, XERBLA + EXTERNAL DLARF1F, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -266,11 +264,8 @@ SUBROUTINE DORML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * * Apply H(i) * - AII = A( I, I ) - A( I, I ) = ONE - CALL DLARF( SIDE, MI, NI, A( I, I ), LDA, TAU( I ), + CALL DLARF1F( SIDE, MI, NI, A( I, I ), LDA, TAU( I ), $ C( IC, JC ), LDC, WORK ) - A( I, I ) = AII 10 CONTINUE RETURN * diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f new file mode 100644 index 0000000000..d0515a037e --- /dev/null +++ b/SRC/zlarf1f.f @@ -0,0 +1,265 @@ +*> \brief \b ZLARF1F applies an elementary reflector to a general rectangular +* matrix assuming v(1) = 1. +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLARF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* .. Scalar Arguments .. +* CHARACTER SIDE +* INTEGER INCV, LDC, M, N +* COMPLEX*16 TAU +* .. +* .. Array Arguments .. +* COMPLEX*16 C( LDC, * ), V( * ), WORK( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> ZLARF1F applies a complex elementary reflector H to a real m by n matrix +*> C, from either the left or the right. H is represented in the form +*> +*> H = I - tau * v * v**T +*> +*> where tau is a complex scalar and v is a complex vector. +*> +*> If tau = 0, then H is taken to be the unit matrix. +*> +*> To apply H**H, supply conjg(tau) instead +*> tau. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] SIDE +*> \verbatim +*> SIDE is CHARACTER*1 +*> = 'L': form H * C +*> = 'R': form C * H +*> \endverbatim +*> +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix C. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix C. +*> \endverbatim +*> +*> \param[in] V +*> \verbatim +*> V is COMPLEX*16 array, dimension +*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' +*> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' +*> The vector v in the representation of H. V is not used if +*> TAU = 0. +*> \endverbatim +*> +*> \param[in] INCV +*> \verbatim +*> INCV is INTEGER +*> The increment between elements of v. INCV <> 0. +*> \endverbatim +*> +*> \param[in] TAU +*> \verbatim +*> TAU is COMPLEX*16 +*> The value tau in the representation of H. +*> \endverbatim +*> +*> \param[in,out] C +*> \verbatim +*> C is COMPLEX*16 array, dimension (LDC,N) +*> On entry, the m by n matrix C. +*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', +*> or C * H if SIDE = 'R'. +*> \endverbatim +*> +*> \param[in] LDC +*> \verbatim +*> LDC is INTEGER +*> The leading dimension of the array C. LDC >= max(1,M). +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is COMPLEX*16 array, dimension +*> (N) if SIDE = 'L' +*> or (M) if SIDE = 'R' +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup larf +* +* ===================================================================== + SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* -- LAPACK auxiliary routine -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* +* .. Scalar Arguments .. + CHARACTER SIDE + INTEGER INCV, LDC, M, N + COMPLEX*16 TAU +* .. +* .. Array Arguments .. + COMPLEX*16 C( LDC, * ), V( * ), WORK( * ) +* .. +* +* ===================================================================== +* +* .. Parameters .. + COMPLEX*16 ONE, ZERO + PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), + $ ZERO = ( 0.0D+0, 0.0D+0 ) ) + INTEGER IONE + PARAMETER ( IONE = 1 ) +* .. +* .. Local Scalars .. + LOGICAL APPLYLEFT + INTEGER I, LASTV, LASTC, J +* .. +* .. External Subroutines .. + EXTERNAL ZGEMV, ZGERC +* .. +* .. External Functions .. + LOGICAL LSAME + INTEGER ILADLR, ILADLC + EXTERNAL LSAME, ILADLR, ILADLC +* .. +* .. Intrinsic Functions .. + INTRINSIC DCONJG +* .. +* .. Executable Statements .. +* + APPLYLEFT = LSAME( SIDE, 'L' ) + LASTV = 0 + LASTC = 0 + IF( TAU.NE.ZERO ) THEN +! Set up variables for scanning V. LASTV begins pointing to the end +! of V. + IF( APPLYLEFT ) THEN + LASTV = M + ELSE + LASTV = N + END IF + IF( INCV.GT.0 ) THEN + I = 1 + (LASTV-1) * INCV + ELSE + I = 1 + END IF +! Look for the last non-zero row in V. + DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) + LASTV = LASTV - 1 + I = I - INCV + END DO + IF( APPLYLEFT ) THEN +! Scan for the last non-zero column in C(1:lastv,:). + LASTC = ILADLC(LASTV, N, C, LDC) + ELSE +! Scan for the last non-zero row in C(:,1:lastv). + LASTC = ILADLR(M, LASTV, C, LDC) + END IF + END IF + IF( LASTC.EQ.0 .OR. LASTV.EQ.0 ) THEN + RETURN + END IF + IF( APPLYLEFT ) THEN +* +* Form H * C +* + IF( LASTV.GT.0 ) THEN + ! Check if m = 1. This means v = 1, So we just need to compute + ! C := HC = (1-\tau)C. + IF( M.EQ.1 .OR. LASTV.EQ.1) THEN + CALL ZSCAL(LASTC, ONE - TAU, C, LDC) + ELSE +* +* w(1:lastc,1) := C(1:lastv,1:lastc)**H * v(1:lastv,1) +* + ! w(1:lastc,1) := C(2:lastv,1:lastc)**H * v(2:lastv,1) + CALL ZGEMV( 'Conj', LASTV-1, LASTC, ONE, C(1+1,1), LDC, + $ V(1+INCV), INCV, ZERO, WORK, 1) + ! w(1:lastc,1) += C(1,1:lastc) * v(1,1) = C(1,1:lastc) + DO I = 1, LASTC + WORK(I) = WORK(I) + DCONJG(C(1,I)) + END DO +* +* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T +* + ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T + ! = C(...) - tau * w(1:lastc,1) + CALL ZAXPY(LASTC, -TAU, WORK, 1, C, LDC) + ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T + CALL ZGERC(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, + $ 1, C(1+1,1), LDC) + END IF + END IF + ELSE +* +* Form C * H +* + IF( LASTV.GT.0 ) THEN + ! Check if n = 1. This means v = 1, so we just need to compute + ! C := CH = C(1-\tau). + IF( N.EQ.1 .OR. LASTV.EQ.1) THEN + CALL ZSCAL(LASTC, ONE - TAU, C, 1) + ELSE +* +* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) +* + ! w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1) + CALL ZGEMV( 'No transpose', LASTC, LASTV-1, ONE, + $ C(1,1+1), LDC, V(1+INCV), INCV, ZERO, WORK, 1 ) + ! w(1:lastc,1) += C(1:lastc,1) v(1,1) = C(1:lastc,1) + CALL ZAXPY(LASTC, ONE, C, 1, WORK, 1) +* +* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T +* + ! C(1:lastc,1) := C(...) - tau * w(1:lastc,1) * v(1,1)**T + ! = C(...) - tau * w(1:lastc,1) + CALL ZAXPY(LASTC, -TAU, WORK, 1, C, 1) + ! C(1:lastc,2:lastv) := C(...) - tau * w(1:lastc,1) * v(2:lastv)**T + CALL ZGERC( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), + $ INCV, C(1,1+1), LDC ) + END IF + END IF + END IF + RETURN +* +* End of DLARF +* + END From 491c0cf770725268199dc98dd06ad2c3f511584f Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 4 Jun 2024 03:20:42 -0400 Subject: [PATCH 12/28] updating zlarf1f.f --- SRC/zlarf1f.f | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index d0515a037e..133dd1db58 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -39,7 +39,7 @@ *> ZLARF1F applies a complex elementary reflector H to a real m by n matrix *> C, from either the left or the right. H is represented in the form *> -*> H = I - tau * v * v**T +*> H = I - tau * v * v**H *> *> where tau is a complex scalar and v is a complex vector. *> @@ -56,8 +56,6 @@ *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': form H * C -*> = 'R': form C * H -*> \endverbatim *> *> \param[in] M *> \verbatim @@ -160,9 +158,6 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) INTEGER ILADLR, ILADLC EXTERNAL LSAME, ILADLR, ILADLC * .. -* .. Intrinsic Functions .. - INTRINSIC DCONJG -* .. * .. Executable Statements .. * APPLYLEFT = LSAME( SIDE, 'L' ) @@ -210,20 +205,26 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * w(1:lastc,1) := C(1:lastv,1:lastc)**H * v(1:lastv,1) * - ! w(1:lastc,1) := C(2:lastv,1:lastc)**H * v(2:lastv,1) - CALL ZGEMV( 'Conj', LASTV-1, LASTC, ONE, C(1+1,1), LDC, - $ V(1+INCV), INCV, ZERO, WORK, 1) - ! w(1:lastc,1) += C(1,1:lastc) * v(1,1) = C(1,1:lastc) - DO I = 1, LASTC - WORK(I) = WORK(I) + DCONJG(C(1,I)) + ! (I - tvv**H)C = C - tvv**H C + ! First compute w**H = v**H c -> w = C**H v + ! C = [ C_1 C_2 ]**T, v = [1 v_2]**T + ! w = C_1**H + C_2**Hv_2 + ! w = C_1**H + DO I = 1, LASTC + WORK(I) = DCONJG(C(1,I)) END DO + ! w += C_2**Hv_2 + CALL ZGEMV( 'Conj', LASTV-1, LASTC, ONE, C(1+1,1), LDC, + $ V(1+INCV), INCV, ONE, WORK, 1) * -* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T +* C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**H * ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T - ! = C(...) - tau * w(1:lastc,1) - CALL ZAXPY(LASTC, -TAU, WORK, 1, C, LDC) - ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T + ! = C(...) - tau * Conj(w(1:lastc,1)) + DO I = 1, LASTC + C(1,I) = C(1,I) - TAU * DCONJG(WORK(I)) + END DO + ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**H CALL ZGERC(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, $ 1, C(1+1,1), LDC) END IF From 15ec3327ec85de49a7a24943b1dd9ab2e0138453 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 4 Jun 2024 03:21:36 -0400 Subject: [PATCH 13/28] updating comment on zlarf1f.f --- SRC/zlarf1f.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index 133dd1db58..d4e50567c0 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -219,7 +219,7 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**H * - ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T + ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**H ! = C(...) - tau * Conj(w(1:lastc,1)) DO I = 1, LASTC C(1,I) = C(1,I) - TAU * DCONJG(WORK(I)) From 468cb59c9be54195f1cc237b4564f096e908c7a6 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 4 Jun 2024 03:39:05 -0400 Subject: [PATCH 14/28] alternative formulation more similar to dlarf1f.f --- SRC/zlarf1f.f | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index d4e50567c0..da3dd305ec 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -209,18 +209,20 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! First compute w**H = v**H c -> w = C**H v ! C = [ C_1 C_2 ]**T, v = [1 v_2]**T ! w = C_1**H + C_2**Hv_2 - ! w = C_1**H + ! w = C_2**Hv_2 + CALL ZGEMV( 'Conj', LASTV-1, LASTC, ONE, C(1+1,1), LDC, + $ V(1+INCV), INCV, ZERO, WORK, 1) + ! w += C_1**H + ! This is essentially a zaxpyc DO I = 1, LASTC - WORK(I) = DCONJG(C(1,I)) + WORK(I) = WORK(I) + DCONJG(C(1,I)) END DO - ! w += C_2**Hv_2 - CALL ZGEMV( 'Conj', LASTV-1, LASTC, ONE, C(1+1,1), LDC, - $ V(1+INCV), INCV, ONE, WORK, 1) * * C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**H * ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**H ! = C(...) - tau * Conj(w(1:lastc,1)) + ! This is essentially a zaxpyc DO I = 1, LASTC C(1,I) = C(1,I) - TAU * DCONJG(WORK(I)) END DO From 7708f1e9c885bffa48917e167852a2a90062b9f5 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Thu, 6 Jun 2024 07:57:41 -0400 Subject: [PATCH 15/28] update dlarf1f.f and zlarf1f.f to not reference v(1) --- SRC/dlarf1f.f | 122 +++++++++++++++++++++++++++++++------------------- SRC/dorg2l.f | 1 - SRC/zlarf1f.f | 47 +++++++++++++++---- 3 files changed, 116 insertions(+), 54 deletions(-) diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index 8a27526dd8..8f0830f7ff 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -74,7 +74,7 @@ *> (1 + (M-1)*abs(INCV)) if SIDE = 'L' *> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' *> The vector v in the representation of H. V is not used if -*> TAU = 0. +*> TAU = 0. V(1) is not referenced or modified. *> \endverbatim *> *> \param[in] INCV @@ -110,6 +110,40 @@ *> or (M) if SIDE = 'R' *> \endverbatim * +* To take advantage of the fact that v(1) = 1, we do the following +* v = [ 1 v_2 ]**T +* If SIDE='L' +* |-----| +* | C_1 | +* C =| C_2 | +* |-----| +* C_1\in\mathbb{R}^{1\times n}, C_2\in\mathbb{R}^{m-1\times n} +* So we compute: +* C = HC = (I - \tau vv**T)C +* = C - \tau vv**T C +* w = C**T v = [ C_1**T C_2**T ] [ 1 v_2 ]**T +* = C_1**T + C_2**T v ( DGEMM then DAXPY ) +* C = C - \tau vv**T C +* = C - \tau vw**T +* Giving us C_1 = C_1 - \tau w**T ( DAXPY ) +* and +* C_2 = C_2 - \tau v_2w**T ( DGER ) +* If SIDE='R' +* +* C = [ C_1 C_2 ] +* C_1\in\mathbb{R}^{m\times 1}, C_2\in\mathbb{R}^{m\times n-1} +* So we compute: +* C = CH = C(I - \tau vv**T) +* = C - \tau Cvv**T +* +* w = Cv = [ C_1 C_2 ] [ 1 v_2 ]**T +* = C_1 + C_2v_2 ( DGEMM then DAXPY ) +* C = C - \tau Cvv**T +* = C - \tau wv**T +* Giving us C_1 = C_1 - \tau w ( DAXPY ) +* and +* C_2 = C_2 - \tau wv_2**T ( DGER ) +* * Authors: * ======== * @@ -175,7 +209,9 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) I = 1 END IF ! Look for the last non-zero row in V. - DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) +! Since we are assuming that V(1) = 1, and it is not stored, so we +! shouldn't access it. + DO WHILE( LASTV.GT.1 .AND. V( I ).EQ.ZERO ) LASTV = LASTV - 1 I = I - INCV END DO @@ -186,67 +222,63 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Scan for the last non-zero row in C(:,1:lastv). LASTC = ILADLR(M, LASTV, C, LDC) END IF - END IF - IF( LASTC.EQ.0 .OR. LASTV.EQ.0 ) THEN + ELSE +! TAU is 0, so H = I. Meaning HC = C = CH. RETURN END IF IF( APPLYLEFT ) THEN * * Form H * C * - IF( LASTV.GT.0 ) THEN - ! Check if m = 1. This means v = 1, So we just need to compute - ! C := HC = (1-\tau)C. - IF( M.EQ.1 .OR. LASTV.EQ.1) THEN - CALL DSCAL(LASTC, ONE - TAU, C, LDC) - ELSE + ! Check if lastv = 1. This means v = 1, So we just need to compute + ! C := HC = (1-\tau)C. + IF( LASTV.EQ.1 ) THEN + CALL DSCAL(LASTC, ONE - TAU, C, LDC) + ELSE * -* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) +* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) * - ! w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) - CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), - $ LDC, V(1+INCV), INCV, ZERO, WORK, 1) - ! w(1:lastc,1) += C(1,1:lastc)**T * v(1,1) = C(1,1:lastc)**T - CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) + ! w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1) + CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1+1,1), + $ LDC, V(1+INCV), INCV, ZERO, WORK, 1) + ! w(1:lastc,1) += C(1,1:lastc)**T * v(1,1) = C(1,1:lastc)**T + CALL DAXPY(LASTC, ONE, C, LDC, WORK, 1) * * C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**T * ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**T ! = C(...) - tau * w(1:lastc,1)**T - CALL DAXPY(LASTC, -TAU, WORK, 1, C, LDC) - ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T - CALL DGER(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, 1, - $ C(1+1,1), LDC) - END IF + CALL DAXPY(LASTC, -TAU, WORK, 1, C, LDC) + ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**T + CALL DGER(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, 1, + $ C(1+1,1), LDC) END IF ELSE * * Form C * H * - IF( LASTV.GT.0 ) THEN - ! Check if n = 1. This means v = 1, so we just need to compute - ! C := CH = C(1-\tau). - IF( N.EQ.1 .OR. LASTV.EQ.1) THEN - CALL DSCAL(LASTC, ONE - TAU, C, 1) - ELSE -* -* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) -* - ! w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1) - CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, - $ C(1,1+1), LDC, V(1+INCV), INCV, ZERO, WORK, 1 ) - ! w(1:lastc,1) += C(1:lastc,1) v(1,1) = C(1:lastc,1) - CALL DAXPY(LASTC, ONE, C, 1, WORK, 1) -* -* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T -* - ! C(1:lastc,1) := C(...) - tau * w(1:lastc,1) * v(1,1)**T - ! = C(...) - tau * w(1:lastc,1) - CALL DAXPY(LASTC, -TAU, WORK, 1, C, 1) - ! C(1:lastc,2:lastv) := C(...) - tau * w(1:lastc,1) * v(2:lastv)**T - CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), - $ INCV, C(1,1+1), LDC ) - END IF + ! Check if n = 1. This means v = 1, so we just need to compute + ! C := CH = C(1-\tau). + IF( LASTV.EQ.1 ) THEN + CALL DSCAL(LASTC, ONE - TAU, C, 1) + ELSE +* +* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) +* + ! w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1) + CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, + $ C(1,1+1), LDC, V(1+INCV), INCV, ZERO, WORK, 1 ) + ! w(1:lastc,1) += C(1:lastc,1) v(1,1) = C(1:lastc,1) + CALL DAXPY(LASTC, ONE, C, 1, WORK, 1) +* +* C(1:lastc,1:lastv) := C(...) - tau * w(1:lastc,1) * v(1:lastv,1)**T +* + ! C(1:lastc,1) := C(...) - tau * w(1:lastc,1) * v(1,1)**T + ! = C(...) - tau * w(1:lastc,1) + CALL DAXPY(LASTC, -TAU, WORK, 1, C, 1) + ! C(1:lastc,2:lastv) := C(...) - tau * w(1:lastc,1) * v(2:lastv)**T + CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), + $ INCV, C(1,1+1), LDC ) END IF END IF RETURN diff --git a/SRC/dorg2l.f b/SRC/dorg2l.f index d5106b53d0..5345142924 100644 --- a/SRC/dorg2l.f +++ b/SRC/dorg2l.f @@ -176,7 +176,6 @@ SUBROUTINE DORG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(1:m-k+i,1:n-k+i) from the left * - A( M-N+II, II ) = ONE CALL DLARF1L( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), $ A, $ LDA, WORK ) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index da3dd305ec..2e859e1390 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -75,7 +75,7 @@ *> (1 + (M-1)*abs(INCV)) if SIDE = 'L' *> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' *> The vector v in the representation of H. V is not used if -*> TAU = 0. +*> TAU = 0. V(1) is not referenced or modified. *> \endverbatim *> *> \param[in] INCV @@ -110,6 +110,39 @@ *> (N) if SIDE = 'L' *> or (M) if SIDE = 'R' *> \endverbatim +* To take advantage of the fact that v(1) = 1, we do the following +* v = [ 1 v_2 ]**T +* If SIDE='L' +* |-----| +* | C_1 | +* C =| C_2 | +* |-----| +* C_1\in\mathbb{C}^{1\times n}, C_2\in\mathbb{C}^{m-1\times n} +* So we compute: +* C = HC = (I - \tau vv**T)C +* = C - \tau vv**T C +* w = C**T v = [ C_1**T C_2**T ] [ 1 v_2 ]**T +* = C_1**T + C_2**T v ( ZGEMM then ZAXPYC-like ) +* C = C - \tau vv**T C +* = C - \tau vw**T +* Giving us C_1 = C_1 - \tau w**T ( ZAXPYC-like ) +* and +* C_2 = C_2 - \tau v_2w**T ( ZGERC ) +* If SIDE='R' +* +* C = [ C_1 C_2 ] +* C_1\in\mathbb{C}^{m\times 1}, C_2\in\mathbb{C}^{m\times n-1} +* So we compute: +* C = CH = C(I - \tau vv**T) +* = C - \tau Cvv**T +* +* w = Cv = [ C_1 C_2 ] [ 1 v_2 ]**T +* = C_1 + C_2v_2 ( ZGEMM then ZAXPYC-like ) +* C = C - \tau Cvv**T +* = C - \tau wv**T +* Giving us C_1 = C_1 - \tau w ( ZAXPYC-like ) +* and +* C_2 = C_2 - \tau wv_2**T ( ZGERC ) * * Authors: * ======== @@ -177,7 +210,9 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) I = 1 END IF ! Look for the last non-zero row in V. - DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) +! Since we are assuming that V(1) = 1, and it is not stored, so we +! shouldn't access it. + DO WHILE( LASTV.GT.1 .AND. V( I ).EQ.ZERO ) LASTV = LASTV - 1 I = I - INCV END DO @@ -196,10 +231,9 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * Form H * C * - IF( LASTV.GT.0 ) THEN ! Check if m = 1. This means v = 1, So we just need to compute ! C := HC = (1-\tau)C. - IF( M.EQ.1 .OR. LASTV.EQ.1) THEN + IF( LASTV.EQ.1 ) THEN CALL ZSCAL(LASTC, ONE - TAU, C, LDC) ELSE * @@ -230,15 +264,13 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) CALL ZGERC(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, $ 1, C(1+1,1), LDC) END IF - END IF ELSE * * Form C * H * - IF( LASTV.GT.0 ) THEN ! Check if n = 1. This means v = 1, so we just need to compute ! C := CH = C(1-\tau). - IF( N.EQ.1 .OR. LASTV.EQ.1) THEN + IF( LASTV.EQ.1 ) THEN CALL ZSCAL(LASTC, ONE - TAU, C, 1) ELSE * @@ -259,7 +291,6 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) CALL ZGERC( LASTC, LASTV-1, -TAU, WORK, 1, V(1+INCV), $ INCV, C(1,1+1), LDC ) END IF - END IF END IF RETURN * From 741907cae0facf748afe0894ac390500428fa21c Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Mon, 10 Jun 2024 00:49:40 -0400 Subject: [PATCH 16/28] updating dlarf1f and dlarf1l to fix a bug found within dorg2l --- SRC/dlarf1f.f | 4 ++-- SRC/dlarf1l.f | 11 ++--------- SRC/dorg2l.f | 1 + 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index 8f0830f7ff..bb30807932 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -211,7 +211,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Look for the last non-zero row in V. ! Since we are assuming that V(1) = 1, and it is not stored, so we ! shouldn't access it. - DO WHILE( LASTV.GT.1 .AND. V( I ).EQ.ZERO ) + DO WHILE( LASTV.GE.2 .AND. V( I ).EQ.ZERO ) LASTV = LASTV - 1 I = I - INCV END DO @@ -232,7 +232,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * ! Check if lastv = 1. This means v = 1, So we just need to compute ! C := HC = (1-\tau)C. - IF( LASTV.EQ.1 ) THEN + IF( LASTV.LE.1 ) THEN CALL DSCAL(LASTC, ONE - TAU, C, LDC) ELSE * diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f index 9b5483da6c..4983ae2d3d 100644 --- a/SRC/dlarf1l.f +++ b/SRC/dlarf1l.f @@ -170,16 +170,7 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ELSE LASTV = N END IF - IF( INCV.GT.0 ) THEN - I = 1 + (LASTV-1) * INCV - ELSE - I = 1 - END IF ! Look for the last non-zero row in V. - DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) - LASTV = LASTV - 1 - I = I - INCV - END DO IF( APPLYLEFT ) THEN ! Scan for the last non-zero column in C(1:lastv,:). LASTC = ILADLC(LASTV, N, C, LDC) @@ -187,6 +178,8 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Scan for the last non-zero row in C(:,1:lastv). LASTC = ILADLR(M, LASTV, C, LDC) END IF + ELSE + RETURN END IF ! Note that lastc.eq.0 renders the BLAS operations null; no special ! case is needed at this level. diff --git a/SRC/dorg2l.f b/SRC/dorg2l.f index 5345142924..b954302396 100644 --- a/SRC/dorg2l.f +++ b/SRC/dorg2l.f @@ -176,6 +176,7 @@ SUBROUTINE DORG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * * Apply H(i) to A(1:m-k+i,1:n-k+i) from the left * + !A(M-N+II, II) = ONE CALL DLARF1L( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), $ A, $ LDA, WORK ) From c744ebe3c4958cfceb065e3bcbc630bae3b06200 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 12 Jun 2024 07:23:31 -0400 Subject: [PATCH 17/28] updating dlarf1l to use firstv scanner properly --- SRC/dlarf1l.f | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f index 4983ae2d3d..2995bc79dd 100644 --- a/SRC/dlarf1l.f +++ b/SRC/dlarf1l.f @@ -147,7 +147,7 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT - INTEGER I, LASTV, LASTC, J + INTEGER I, LASTV, LASTC, J, FIRSTV * .. * .. External Subroutines .. EXTERNAL DGEMV, DGER @@ -160,7 +160,7 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. Executable Statements .. * APPLYLEFT = LSAME( SIDE, 'L' ) - LASTV = 0 + FIRSTV = 1 LASTC = 0 IF( TAU.NE.ZERO ) THEN ! Set up variables for scanning V. LASTV begins pointing to the end @@ -170,7 +170,12 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ELSE LASTV = N END IF + I = 1 ! Look for the last non-zero row in V. + DO WHILE( LASTV.GT.FIRSTV .AND. V( I ).EQ.ZERO ) + FIRSTV = FIRSTV + 1 + I = I + INCV + END DO IF( APPLYLEFT ) THEN ! Scan for the last non-zero column in C(1:lastv,:). LASTC = ILADLC(LASTV, N, C, LDC) @@ -190,15 +195,16 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) IF( LASTV.GT.0 ) THEN ! Check if m = 1. This means v = 1, So we just need to compute ! C := HC = (1-\tau)C. - IF( LASTV.EQ.1 ) THEN - CALL DSCAL(LASTC, ONE - TAU, C, LDC) + IF( LASTV.EQ.FIRSTV ) THEN + CALL DSCAL(LASTC, ONE - TAU, C( FIRSTV, 1), LDC) ELSE * * w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) * ! w(1:lastc,1) := C(1:lastv-1,1:lastc)**T * v(1:lastv-1,1) - CALL DGEMV( 'Transpose', LASTV-1, LASTC, ONE, C(1,1), - $ LDC, V(1), INCV, ZERO, WORK, 1) + CALL DGEMV( 'Transpose', LASTV-FIRSTV, LASTC, ONE, + $ C(FIRSTV,1), LDC, V(I), INCV, ZERO, + $ WORK, 1) ! w(1:lastc,1) += C(lastv,1:lastc)**T * v(lastv,1) = C(lastv,1:lastc)**T CALL DAXPY(LASTC, ONE, C(LASTV,1), LDC, WORK, 1) * @@ -208,8 +214,8 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! = C(...) - tau * w(1:lastc,1)**T CALL DAXPY(LASTC, -TAU, WORK, 1, C(LASTV,1), LDC) ! C(1:lastv-1,1:lastc) := C(...) - tau * v(1:lastv-1,1)*w(1:lastc,1)**T - CALL DGER(LASTV-1, LASTC, -TAU, V(1), INCV, WORK, 1, - $ C(1,1), LDC) + CALL DGER(LASTV-FIRSTV, LASTC, -TAU, V(I), INCV, + $ WORK, 1, C(FIRSTV,1), LDC) END IF END IF ELSE @@ -219,15 +225,15 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) IF( LASTV.GT.0 ) THEN ! Check if n = 1. This means v = 1, so we just need to compute ! C := CH = C(1-\tau). - IF( LASTV.EQ.1 ) THEN + IF( LASTV.EQ.FIRSTV ) THEN CALL DSCAL(LASTC, ONE - TAU, C, 1) ELSE * * w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) * ! w(1:lastc,1) := C(1:lastc,1:lastv-1) * v(1:lastv-1,1) - CALL DGEMV( 'No transpose', LASTC, LASTV-1, ONE, - $ C(1,1), LDC, V(1), INCV, ZERO, WORK, 1 ) + CALL DGEMV( 'No transpose', LASTC, LASTV-FIRSTV, + $ ONE, C(1,FIRSTV), LDC, V(I), INCV, ZERO, WORK, 1 ) ! w(1:lastc,1) += C(1:lastc,lastv) * v(lastv,1) = C(1:lastc,lastv) CALL DAXPY(LASTC, ONE, C(1,LASTV), 1, WORK, 1) * @@ -237,8 +243,8 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! = C(...) - tau * w(1:lastc,1) CALL DAXPY(LASTC, -TAU, WORK, 1, C(1,LASTV), 1) ! C(1:lastc,1:lastv-1) := C(...) - tau * w(1:lastc,1) * v(1:lastv-1)**T - CALL DGER( LASTC, LASTV-1, -TAU, WORK, 1, V(1), - $ INCV, C(1,1), LDC ) + CALL DGER( LASTC, LASTV-FIRSTV, -TAU, WORK, 1, V(I), + $ INCV, C(1,FIRSTV), LDC ) END IF END IF END IF From b69186b1bdc4a122a99739e33110bfc3c4f97840 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 12 Jun 2024 08:02:00 -0400 Subject: [PATCH 18/28] updating dlarf1l.f --- SRC/dlarf1l.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f index 2995bc79dd..8c6670727f 100644 --- a/SRC/dlarf1l.f +++ b/SRC/dlarf1l.f @@ -147,7 +147,7 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT - INTEGER I, LASTV, LASTC, J, FIRSTV + INTEGER I, J, FIRSTV, LASTV, LASTC * .. * .. External Subroutines .. EXTERNAL DGEMV, DGER From 35b375866235495d1c95d43e0d48d7afa1edc418 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Fri, 14 Jun 2024 08:42:10 -0400 Subject: [PATCH 19/28] implement zlarf1l and use it in relevant routines. TODO: update comments and cleanup --- SRC/CMakeLists.txt | 2 +- SRC/Makefile | 2 +- SRC/zgebd2.f | 20 ++-- SRC/zgehd2.f | 15 +-- SRC/zgelq2.f | 13 +-- SRC/zgeql2.f | 10 +- SRC/zgeqr2.f | 9 +- SRC/zgeqr2p.f | 9 +- SRC/zgerq2.f | 12 +- SRC/zlaqp2.f | 11 +- SRC/zlaqp2rk.f | 13 +-- SRC/zlaqr2.f | 20 ++-- SRC/zlaqr3.f | 18 ++- SRC/zlarf1f.f | 20 ++-- SRC/zlarf1l.f | 268 +++++++++++++++++++++++++++++++++++++++++++++ SRC/zunbdb.f | 127 +++++++++++---------- SRC/zunbdb1.f | 28 ++--- SRC/zunbdb2.f | 32 +++--- SRC/zunbdb3.f | 30 ++--- SRC/zunbdb4.f | 53 ++++----- SRC/zung2l.f | 8 +- SRC/zung2r.f | 7 +- SRC/zungl2.f | 8 +- SRC/zungr2.f | 7 +- SRC/zunm2l.f | 10 +- SRC/zunm2r.f | 7 +- SRC/zunml2.f | 11 +- SRC/zunmr2.f | 9 +- SRC/zupmtr.f | 18 +-- err | 18 +++ 30 files changed, 516 insertions(+), 299 deletions(-) create mode 100644 SRC/zlarf1l.f create mode 100644 err diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt index c3a1889a0b..c6b393b44d 100644 --- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt @@ -418,7 +418,7 @@ set(ZLASRC zlaqhb.f zlaqhe.f zlaqhp.f zlaqp2.f zlaqps.f zlaqp2rk.f zlaqp3rk.f zlaqsb.f zlaqr0.f zlaqr1.f zlaqr2.f zlaqr3.f zlaqr4.f zlaqr5.f zlaqsp.f zlaqsy.f zlar1v.f zlar2v.f ilazlr.f ilazlc.f - zlarcm.f zlarf.f zlarfb.f zlarfb_gett.f zlarf1f.f + zlarcm.f zlarf.f zlarfb.f zlarfb_gett.f zlarf1f.f zlarf1l.f zlarfg.f zlarfgp.f zlarft.f zlarfx.f zlarfy.f zlargv.f zlarnv.f zlarrv.f zlartg.f90 zlartv.f zlarz.f zlarzb.f zlarzt.f zlascl.f zlaset.f zlasr.f diff --git a/SRC/Makefile b/SRC/Makefile index ddf26f46f3..50faed428a 100644 --- a/SRC/Makefile +++ b/SRC/Makefile @@ -453,7 +453,7 @@ ZLASRC = \ zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqp2rk.o zlaqp3rk.o zlaqsb.o \ zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \ zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o \ - zlarcm.o zlarf.o zlarfb.o zlarfb_gett.o zlarf1f.o\ + zlarcm.o zlarf.o zlarfb.o zlarfb_gett.o zlarf1f.o zlarf1l.o \ zlarfg.o zlarft.o zlarfgp.o \ zlarfx.o zlarfy.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \ zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \ diff --git a/SRC/zgebd2.f b/SRC/zgebd2.f index ec1142954b..510ab849be 100644 --- a/SRC/zgebd2.f +++ b/SRC/zgebd2.f @@ -202,16 +202,14 @@ SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) * ===================================================================== * * .. Parameters .. - COMPLEX*16 ZERO, ONE - PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), - $ ONE = ( 1.0D+0, 0.0D+0 ) ) -* .. + COMPLEX*16 ZERO + PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. Local Scalars .. INTEGER I COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF, ZLARFG + EXTERNAL XERBLA, ZLACGV, ZLARF1F, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN @@ -245,12 +243,11 @@ SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) CALL ZLARFG( M-I+1, ALPHA, A( MIN( I+1, M ), I ), 1, $ TAUQ( I ) ) D( I ) = DBLE( ALPHA ) - A( I, I ) = ONE * * Apply H(i)**H to A(i:m,i+1:n) from the left * IF( I.LT.N ) - $ CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, + $ CALL ZLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, $ DCONJG( TAUQ( I ) ), A( I, I+1 ), LDA, WORK ) A( I, I ) = D( I ) * @@ -264,11 +261,10 @@ SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) CALL ZLARFG( N-I, ALPHA, A( I, MIN( I+2, N ) ), LDA, $ TAUP( I ) ) E( I ) = DBLE( ALPHA ) - A( I, I+1 ) = ONE * * Apply G(i) to A(i+1:m,i+1:n) from the right * - CALL ZLARF( 'Right', M-I, N-I, A( I, I+1 ), LDA, + CALL ZLARF1F( 'Right', M-I, N-I, A( I, I+1 ), LDA, $ TAUP( I ), A( I+1, I+1 ), LDA, WORK ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) A( I, I+1 ) = E( I ) @@ -289,12 +285,11 @@ SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) CALL ZLARFG( N-I+1, ALPHA, A( I, MIN( I+1, N ) ), LDA, $ TAUP( I ) ) D( I ) = DBLE( ALPHA ) - A( I, I ) = ONE * * Apply G(i) to A(i+1:m,i:n) from the right * IF( I.LT.M ) - $ CALL ZLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, + $ CALL ZLARF1F( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAUP( I ), A( I+1, I ), LDA, WORK ) CALL ZLACGV( N-I+1, A( I, I ), LDA ) A( I, I ) = D( I ) @@ -308,11 +303,10 @@ SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) CALL ZLARFG( M-I, ALPHA, A( MIN( I+2, M ), I ), 1, $ TAUQ( I ) ) E( I ) = DBLE( ALPHA ) - A( I+1, I ) = ONE * * Apply H(i)**H to A(i+1:m,i+1:n) from the left * - CALL ZLARF( 'Left', M-I, N-I, A( I+1, I ), 1, + CALL ZLARF1F( 'Left', M-I, N-I, A( I+1, I ), 1, $ DCONJG( TAUQ( I ) ), A( I+1, I+1 ), LDA, $ WORK ) A( I+1, I ) = E( I ) diff --git a/SRC/zgehd2.f b/SRC/zgehd2.f index 63c9fce1c8..98e6a6945d 100644 --- a/SRC/zgehd2.f +++ b/SRC/zgehd2.f @@ -169,7 +169,7 @@ SUBROUTINE ZGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF, ZLARFG + EXTERNAL XERBLA, ZLARF1F, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN @@ -197,22 +197,19 @@ SUBROUTINE ZGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) * * Compute elementary reflector H(i) to annihilate A(i+2:ihi,i) * - ALPHA = A( I+1, I ) - CALL ZLARFG( IHI-I, ALPHA, A( MIN( I+2, N ), I ), 1, + CALL ZLARFG( IHI-I, A( I+1, I ), A( MIN( I+2, N ), I ), 1, $ TAU( I ) ) - A( I+1, I ) = ONE * * Apply H(i) to A(1:ihi,i+1:ihi) from the right * - CALL ZLARF( 'Right', IHI, IHI-I, A( I+1, I ), 1, TAU( I ), - $ A( 1, I+1 ), LDA, WORK ) + CALL ZLARF1F( 'Right', IHI, IHI-I, A( I+1, I ), 1, TAU( I ), + $ A( 1, I+1 ), LDA, WORK ) * * Apply H(i)**H to A(i+1:ihi,i+1:n) from the left * - CALL ZLARF( 'Left', IHI-I, N-I, A( I+1, I ), 1, - $ DCONJG( TAU( I ) ), A( I+1, I+1 ), LDA, WORK ) + CALL ZLARF1F( 'Left', IHI-I, N-I, A( I+1, I ), 1, + $ CONJG( TAU( I ) ), A( I+1, I+1 ), LDA, WORK ) * - A( I+1, I ) = ALPHA 10 CONTINUE * RETURN diff --git a/SRC/zgelq2.f b/SRC/zgelq2.f index bd3521caa3..402378ea7b 100644 --- a/SRC/zgelq2.f +++ b/SRC/zgelq2.f @@ -149,7 +149,7 @@ SUBROUTINE ZGELQ2( M, N, A, LDA, TAU, WORK, INFO ) COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF, ZLARFG + EXTERNAL XERBLA, ZLACGV, ZLARF1F, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -178,19 +178,16 @@ SUBROUTINE ZGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * Generate elementary reflector H(i) to annihilate A(i,i+1:n) * CALL ZLACGV( N-I+1, A( I, I ), LDA ) - ALPHA = A( I, I ) - CALL ZLARFG( N-I+1, ALPHA, A( I, MIN( I+1, N ) ), LDA, + CALL ZLARFG( N-I+1, A( I, I ), A( I, MIN( I+1, N ) ), LDA, $ TAU( I ) ) IF( I.LT.M ) THEN * * Apply H(i) to A(i+1:m,i:n) from the right * - A( I, I ) = ONE - CALL ZLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, - $ TAU( I ), - $ A( I+1, I ), LDA, WORK ) + CALL ZLARF1F( 'Right', M-I, N-I+1, A( I, I ), LDA, + $ TAU( I ), + $ A( I+1, I ), LDA, WORK ) END IF - A( I, I ) = ALPHA CALL ZLACGV( N-I+1, A( I, I ), LDA ) 10 CONTINUE RETURN diff --git a/SRC/zgeql2.f b/SRC/zgeql2.f index cdac186e98..e1933c1a6e 100644 --- a/SRC/zgeql2.f +++ b/SRC/zgeql2.f @@ -172,15 +172,13 @@ SUBROUTINE ZGEQL2( M, N, A, LDA, TAU, WORK, INFO ) * Generate elementary reflector H(i) to annihilate * A(1:m-k+i-1,n-k+i) * - ALPHA = A( M-K+I, N-K+I ) - CALL ZLARFG( M-K+I, ALPHA, A( 1, N-K+I ), 1, TAU( I ) ) + CALL ZLARFG( M-K+I, A( M-K+I, N-K+I ), A( 1, N-K+I ), 1, + $ TAU( I ) ) * * Apply H(i)**H to A(1:m-k+i,1:n-k+i-1) from the left * - A( M-K+I, N-K+I ) = ONE - CALL ZLARF( 'Left', M-K+I, N-K+I-1, A( 1, N-K+I ), 1, - $ DCONJG( TAU( I ) ), A, LDA, WORK ) - A( M-K+I, N-K+I ) = ALPHA + CALL ZLARF1L( 'Left', M-K+I, N-K+I-1, A( 1, N-K+I ), 1, + $ CONJG( TAU( I ) ), A, LDA, WORK ) 10 CONTINUE RETURN * diff --git a/SRC/zgeqr2.f b/SRC/zgeqr2.f index 457404ad91..8e648eaabf 100644 --- a/SRC/zgeqr2.f +++ b/SRC/zgeqr2.f @@ -150,7 +150,7 @@ SUBROUTINE ZGEQR2( M, N, A, LDA, TAU, WORK, INFO ) COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF, ZLARFG + EXTERNAL XERBLA, ZLARF1F, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN @@ -184,11 +184,8 @@ SUBROUTINE ZGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i)**H to A(i:m,i+1:n) from the left * - ALPHA = A( I, I ) - A( I, I ) = ONE - CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, - $ DCONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) - A( I, I ) = ALPHA + CALL ZLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, + $ CONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) END IF 10 CONTINUE RETURN diff --git a/SRC/zgeqr2p.f b/SRC/zgeqr2p.f index 93451faec8..fcfd008337 100644 --- a/SRC/zgeqr2p.f +++ b/SRC/zgeqr2p.f @@ -154,7 +154,7 @@ SUBROUTINE ZGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF, ZLARFGP + EXTERNAL XERBLA, ZLARF1F, ZLARFGP * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN @@ -188,11 +188,8 @@ SUBROUTINE ZGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) * * Apply H(i)**H to A(i:m,i+1:n) from the left * - ALPHA = A( I, I ) - A( I, I ) = ONE - CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, - $ DCONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) - A( I, I ) = ALPHA + CALL ZLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, + $ CONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) END IF 10 CONTINUE RETURN diff --git a/SRC/zgerq2.f b/SRC/zgerq2.f index f7bac6d570..4d84c87990 100644 --- a/SRC/zgerq2.f +++ b/SRC/zgerq2.f @@ -143,7 +143,7 @@ SUBROUTINE ZGERQ2( M, N, A, LDA, TAU, WORK, INFO ) COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF, ZLARFG + EXTERNAL XERBLA, ZLACGV, ZLARF1L, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -173,15 +173,13 @@ SUBROUTINE ZGERQ2( M, N, A, LDA, TAU, WORK, INFO ) * A(m-k+i,1:n-k+i-1) * CALL ZLACGV( N-K+I, A( M-K+I, 1 ), LDA ) - ALPHA = A( M-K+I, N-K+I ) - CALL ZLARFG( N-K+I, ALPHA, A( M-K+I, 1 ), LDA, TAU( I ) ) + CALL ZLARFG( N-K+I, A( M-K+I, N-K+I ), A( M-K+I, 1 ), LDA, + $ TAU( I ) ) * * Apply H(i) to A(1:m-k+i-1,1:n-k+i) from the right * - A( M-K+I, N-K+I ) = ONE - CALL ZLARF( 'Right', M-K+I-1, N-K+I, A( M-K+I, 1 ), LDA, - $ TAU( I ), A, LDA, WORK ) - A( M-K+I, N-K+I ) = ALPHA + CALL ZLARF1L( 'Right', M-K+I-1, N-K+I, A( M-K+I, 1 ), LDA, + $ TAU( I ), A, LDA, WORK ) CALL ZLACGV( N-K+I-1, A( M-K+I, 1 ), LDA ) 10 CONTINUE RETURN diff --git a/SRC/zlaqp2.f b/SRC/zlaqp2.f index ee47f5119b..dd6b56739f 100644 --- a/SRC/zlaqp2.f +++ b/SRC/zlaqp2.f @@ -174,7 +174,7 @@ SUBROUTINE ZLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2, COMPLEX*16 AII * .. * .. External Subroutines .. - EXTERNAL ZLARF, ZLARFG, ZSWAP + EXTERNAL ZLARF1F, ZLARFG, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, DCONJG, MAX, MIN, SQRT @@ -222,12 +222,9 @@ SUBROUTINE ZLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2, * * Apply H(i)**H to A(offset+i:m,i+1:n) from the left. * - AII = A( OFFPI, I ) - A( OFFPI, I ) = CONE - CALL ZLARF( 'Left', M-OFFPI+1, N-I, A( OFFPI, I ), 1, - $ DCONJG( TAU( I ) ), A( OFFPI, I+1 ), LDA, - $ WORK( 1 ) ) - A( OFFPI, I ) = AII + CALL ZLARF1F( 'Left', M-OFFPI+1, N-I, A( OFFPI, I ), 1, + $ CONJG( TAU( I ) ), A( OFFPI, I+1 ), LDA, + $ WORK( 1 ) ) END IF * * Update partial column norms. diff --git a/SRC/zlaqp2rk.f b/SRC/zlaqp2rk.f index f6bf555c26..ffe29ebe8a 100644 --- a/SRC/zlaqp2rk.f +++ b/SRC/zlaqp2rk.f @@ -254,7 +254,7 @@ *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (N-1) -*> Used in ZLARF subroutine to apply an elementary +*> Used in ZLARF1F subroutine to apply an elementary *> reflector from the left. *> \endverbatim *> @@ -375,7 +375,7 @@ SUBROUTINE ZLAQP2RK( M, N, NRHS, IOFFSET, KMAX, ABSTOL, RELTOL, COMPLEX*16 AIKK * .. * .. External Subroutines .. - EXTERNAL ZLARF, ZLARFG, ZSWAP + EXTERNAL ZLARF1F, ZLARFG, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCONJG, DIMAG, MAX, MIN, SQRT @@ -633,12 +633,9 @@ SUBROUTINE ZLAQP2RK( M, N, NRHS, IOFFSET, KMAX, ABSTOL, RELTOL, * condition is satisfied, not only KK < N+NRHS ) * IF( KK.LT.MINMNUPDT ) THEN - AIKK = A( I, KK ) - A( I, KK ) = CONE - CALL ZLARF( 'Left', M-I+1, N+NRHS-KK, A( I, KK ), 1, - $ DCONJG( TAU( KK ) ), A( I, KK+1 ), LDA, - $ WORK( 1 ) ) - A( I, KK ) = AIKK + CALL ZLARF1F( 'Left', M-I+1, N+NRHS-KK, A( I, KK ), 1, + $ CONJG( TAU( KK ) ), A( I, KK+1 ), LDA, + $ WORK( 1 ) ) END IF * IF( KK.LT.MINMNFACT ) THEN diff --git a/SRC/zlaqr2.f b/SRC/zlaqr2.f index e29c3875a8..a107e2a411 100644 --- a/SRC/zlaqr2.f +++ b/SRC/zlaqr2.f @@ -293,7 +293,7 @@ SUBROUTINE ZLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, PARAMETER ( RZERO = 0.0d0, RONE = 1.0d0 ) * .. * .. Local Scalars .. - COMPLEX*16 BETA, CDUM, S, TAU + COMPLEX*16 CDUM, S, TAU DOUBLE PRECISION FOO, SAFMAX, SAFMIN, SMLNUM, ULP INTEGER I, IFST, ILST, INFO, INFQR, J, JW, KCOL, KLN, $ KNT, KROW, KWTOP, LTOP, LWK1, LWK2, LWKOPT @@ -305,7 +305,7 @@ SUBROUTINE ZLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, * .. External Subroutines .. EXTERNAL ZCOPY, ZGEHRD, ZGEMM, ZLACPY, $ ZLAHQR, - $ ZLARF, ZLARFG, ZLASET, ZTREXC, ZUNMHR + $ ZLARF1F, ZLARFG, ZLASET, ZTREXC, ZUNMHR * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, INT, MAX, MIN @@ -476,19 +476,17 @@ SUBROUTINE ZLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, DO 50 I = 1, NS WORK( I ) = DCONJG( WORK( I ) ) 50 CONTINUE - BETA = WORK( 1 ) - CALL ZLARFG( NS, BETA, WORK( 2 ), 1, TAU ) - WORK( 1 ) = ONE + CALL ZLARFG( NS, WORK( 1 ), WORK( 2 ), 1, TAU ) * CALL ZLASET( 'L', JW-2, JW-2, ZERO, ZERO, T( 3, 1 ), $ LDT ) * - CALL ZLARF( 'L', NS, JW, WORK, 1, DCONJG( TAU ), T, LDT, - $ WORK( JW+1 ) ) - CALL ZLARF( 'R', NS, NS, WORK, 1, TAU, T, LDT, - $ WORK( JW+1 ) ) - CALL ZLARF( 'R', JW, NS, WORK, 1, TAU, V, LDV, - $ WORK( JW+1 ) ) + CALL ZLARF1F( 'L', NS, JW, WORK, 1, CONJG( TAU ), T, LDT, + $ WORK( JW+1 ) ) + CALL ZLARF1F( 'R', NS, NS, WORK, 1, TAU, T, LDT, + $ WORK( JW+1 ) ) + CALL ZLARF1F( 'R', JW, NS, WORK, 1, TAU, V, LDV, + $ WORK( JW+1 ) ) * CALL ZGEHRD( JW, 1, NS, T, LDT, WORK, WORK( JW+1 ), $ LWORK-JW, INFO ) diff --git a/SRC/zlaqr3.f b/SRC/zlaqr3.f index a6f962611c..18f7df87a5 100644 --- a/SRC/zlaqr3.f +++ b/SRC/zlaqr3.f @@ -304,7 +304,7 @@ SUBROUTINE ZLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, * .. External Subroutines .. EXTERNAL ZCOPY, ZGEHRD, ZGEMM, ZLACPY, ZLAHQR, $ ZLAQR4, - $ ZLARF, ZLARFG, ZLASET, ZTREXC, ZUNMHR + $ ZLARF1F, ZLARFG, ZLASET, ZTREXC, ZUNMHR * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, INT, MAX, MIN @@ -490,19 +490,17 @@ SUBROUTINE ZLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, DO 50 I = 1, NS WORK( I ) = DCONJG( WORK( I ) ) 50 CONTINUE - BETA = WORK( 1 ) - CALL ZLARFG( NS, BETA, WORK( 2 ), 1, TAU ) - WORK( 1 ) = ONE + CALL ZLARFG( NS, WORK( 1 ), WORK( 2 ), 1, TAU ) * CALL ZLASET( 'L', JW-2, JW-2, ZERO, ZERO, T( 3, 1 ), $ LDT ) * - CALL ZLARF( 'L', NS, JW, WORK, 1, DCONJG( TAU ), T, LDT, - $ WORK( JW+1 ) ) - CALL ZLARF( 'R', NS, NS, WORK, 1, TAU, T, LDT, - $ WORK( JW+1 ) ) - CALL ZLARF( 'R', JW, NS, WORK, 1, TAU, V, LDV, - $ WORK( JW+1 ) ) + CALL ZLARF1F( 'L', NS, JW, WORK, 1, CONJG( TAU ), T, LDT, + $ WORK( JW+1 ) ) + CALL ZLARF1F( 'R', NS, NS, WORK, 1, TAU, T, LDT, + $ WORK( JW+1 ) ) + CALL ZLARF1F( 'R', JW, NS, WORK, 1, TAU, V, LDV, + $ WORK( JW+1 ) ) * CALL ZGEHRD( JW, 1, NS, T, LDT, WORK, WORK( JW+1 ), $ LWORK-JW, INFO ) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index 2e859e1390..caf64593d5 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -184,17 +184,17 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) INTEGER I, LASTV, LASTC, J * .. * .. External Subroutines .. - EXTERNAL ZGEMV, ZGERC + EXTERNAL ZGEMV, ZGERC, ZSCAL * .. * .. External Functions .. LOGICAL LSAME - INTEGER ILADLR, ILADLC - EXTERNAL LSAME, ILADLR, ILADLC + INTEGER ILAZLR, ILAZLC + EXTERNAL LSAME, ILAZLR, ILAZLC * .. * .. Executable Statements .. * APPLYLEFT = LSAME( SIDE, 'L' ) - LASTV = 0 + LASTV = 1 LASTC = 0 IF( TAU.NE.ZERO ) THEN ! Set up variables for scanning V. LASTV begins pointing to the end @@ -218,13 +218,13 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) END DO IF( APPLYLEFT ) THEN ! Scan for the last non-zero column in C(1:lastv,:). - LASTC = ILADLC(LASTV, N, C, LDC) + LASTC = ILAZLC(LASTV, N, C, LDC) ELSE ! Scan for the last non-zero row in C(:,1:lastv). - LASTC = ILADLR(M, LASTV, C, LDC) + LASTC = ILAZLR(M, LASTV, C, LDC) END IF - END IF - IF( LASTC.EQ.0 .OR. LASTV.EQ.0 ) THEN + ELSE +! TAU is 0, so H = I. Meaning HC = C = CH. RETURN END IF IF( APPLYLEFT ) THEN @@ -249,7 +249,7 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! w += C_1**H ! This is essentially a zaxpyc DO I = 1, LASTC - WORK(I) = WORK(I) + DCONJG(C(1,I)) + WORK(I) = WORK(I) + CONJG(C(1,I)) END DO * * C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**H @@ -258,7 +258,7 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! = C(...) - tau * Conj(w(1:lastc,1)) ! This is essentially a zaxpyc DO I = 1, LASTC - C(1,I) = C(1,I) - TAU * DCONJG(WORK(I)) + C(1,I) = C(1,I) - TAU * CONJG(WORK(I)) END DO ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**H CALL ZGERC(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, diff --git a/SRC/zlarf1l.f b/SRC/zlarf1l.f new file mode 100644 index 0000000000..4ddafcb025 --- /dev/null +++ b/SRC/zlarf1l.f @@ -0,0 +1,268 @@ +*> \brief \b ZLARF1L applies an elementary reflector to a general rectangular +* matrix assuming v(lastv) = 1, where lastv is the last non-zero +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download ZLARF1L + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE ZLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* .. Scalar Arguments .. +* CHARACTER SIDE +* INTEGER INCV, LDC, M, N +* COMPLEX*16 TAU +* .. +* .. Array Arguments .. +* COMPLEX*16 C( LDC, * ), V( * ), WORK( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> ZLARF1L applies a complex elementary reflector H to a complex m by n matrix +*> C, from either the left or the right. H is represented in the form +*> +*> H = I - tau * v * v**H +*> +*> where tau is a real scalar and v is a real vector assuming v(lastv) = 1, +*> where lastv is the last non-zero element. +*> +*> If tau = 0, then H is taken to be the unit matrix. +*> +*> To apply H**H (the conjugate transpose of H), supply conjg(tau) instead +*> tau. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] SIDE +*> \verbatim +*> SIDE is CHARACTER*1 +*> = 'L': form H * C +*> = 'R': form C * H +*> \endverbatim +*> +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix C. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix C. +*> \endverbatim +*> +*> \param[in] V +*> \verbatim +*> V is COMPLEX*16 array, dimension +*> (1 + (M-1)*abs(INCV)) if SIDE = 'L' +*> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' +*> The vector v in the representation of H. V is not used if +*> TAU = 0. +*> \endverbatim +*> +*> \param[in] INCV +*> \verbatim +*> INCV is INTEGER +*> The increment between elements of v. INCV > 0. +*> \endverbatim +*> +*> \param[in] TAU +*> \verbatim +*> TAU is COMPLEX*16 +*> The value tau in the representation of H. +*> \endverbatim +*> +*> \param[in,out] C +*> \verbatim +*> C is COMPLEX*16 array, dimension (LDC,N) +*> On entry, the m by n matrix C. +*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', +*> or C * H if SIDE = 'R'. +*> \endverbatim +*> +*> \param[in] LDC +*> \verbatim +*> LDC is INTEGER +*> The leading dimension of the array C. LDC >= max(1,M). +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is COMPLEX*16 array, dimension +*> (N) if SIDE = 'L' +*> or (M) if SIDE = 'R' +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup larf1f +* +* ===================================================================== + SUBROUTINE ZLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) +* +* -- LAPACK auxiliary routine -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* +* .. Scalar Arguments .. + CHARACTER SIDE + INTEGER INCV, LDC, M, N + COMPLEX*16 TAU +* .. +* .. Array Arguments .. + COMPLEX*16 C( LDC, * ), V( * ), WORK( * ) +* .. +* +* ===================================================================== +* +* .. Parameters .. + COMPLEX*16 ONE, ZERO + PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), + $ ZERO = ( 0.0D+0, 0.0D+0 ) ) +* .. +* .. Local Scalars .. + LOGICAL APPLYLEFT + INTEGER I, J, LASTV, LASTC, FIRSTV +* .. +* .. External Subroutines .. + EXTERNAL ZGEMV, ZGERC, ZSCAL +* .. +* .. Intrinsic Functions .. + INTRINSIC CONJG +* .. +* .. External Functions .. + LOGICAL LSAME + INTEGER ILAZLR, ILAZLC + EXTERNAL LSAME, ILAZLR, ILAZLC +* .. +* .. Executable Statements .. +* + APPLYLEFT = LSAME( SIDE, 'L' ) + FIRSTV = 1 + LASTC = 0 + IF( TAU.NE.ZERO ) THEN +! Set up variables for scanning V. LASTV begins pointing to the end +! of V up to V(1). + IF( APPLYLEFT ) THEN + LASTV = M + ELSE + LASTV = N + END IF + I = 1 +! Look for the last non-zero row in V. + DO WHILE( LASTV.GT.FIRSTV .AND. V( I ).EQ.ZERO ) + FIRSTV = FIRSTV + 1 + I = I + INCV + END DO + IF( APPLYLEFT ) THEN +! Scan for the last non-zero column in C(1:lastv,:). + LASTC = ILAZLC(LASTV, N, C, LDC) + ELSE +! Scan for the last non-zero row in C(:,1:lastv). + LASTC = ILAZLR(M, LASTV, C, LDC) + END IF + END IF + IF( LASTC.EQ.0 ) THEN + RETURN + END IF + IF( APPLYLEFT ) THEN +* +* Form H * C +* + IF( LASTV.EQ.FIRSTV ) THEN +* +* C(lastv,1:lastc) := ( 1 - tau ) * C(lastv,1:lastc) +* + CALL ZSCAL( LASTC, ONE - TAU, C( LASTV, 1 ), LDC ) + ELSE +* +* w(1:lastc,1) := C(firstv:lastv-1,1:lastc)**T * v(firstv:lastv-1,1) +* + CALL ZGEMV( 'Conjugate transpose', LASTV - FIRSTV, LASTC, + $ ONE, C( FIRSTV, 1 ), LDC, V( I ), INCV, ZERO, + $ WORK, 1 ) +* +* w(1:lastc,1) += C(lastv,1:lastc)**H * v(lastv,1) +* + DO J = 1, LASTC + WORK( J ) = WORK( J ) + CONJG( C( LASTV, J ) ) + END DO +* +* C(lastv,1:lastc) += - tau * v(lastv,1) * w(1:lastc,1)**H +* + DO J = 1, LASTC + C( LASTV, J ) = C( LASTV, J ) + $ - TAU * CONJG( WORK( J ) ) + END DO +* +* C(firstv:lastv-1,1:lastc) += - tau * v(firstv:lastv-1,1) * w(1:lastc,1)**H +* + CALL ZGERC( LASTV - FIRSTV, LASTC, -TAU, V( I ), INCV, + $ WORK, 1, C( FIRSTV, 1 ), LDC) + END IF + ELSE +* +* Form C * H +* + IF( LASTV.EQ.FIRSTV ) THEN +* +* C(1:lastc,lastv) := ( 1 - tau ) * C(1:lastc,lastv) +* + CALL ZSCAL( LASTC, ONE - TAU, C( 1, LASTV ), 1 ) + ELSE +* +* w(1:lastc,1) := C(1:lastc,firstv:lastv-1) * v(firstv:lastv-1,1) +* + CALL ZGEMV( 'No transpose', LASTC, LASTV - FIRSTV, ONE, + $ C( 1, FIRSTV ), LDC, V( I ), INCV, ZERO, + $ WORK, 1 ) +* +* w(1:lastc,1) += C(1:lastc,lastv) * v(lastv,1) +* + CALL ZAXPY( LASTC, ONE, C( 1, LASTV ), 1, WORK, 1 ) +* +* C(1:lastc,lastv) += - tau * v(lastv,1) * w(1:lastc,1) +* + CALL ZAXPY( LASTC, -TAU, WORK, 1, C( 1, LASTV ), 1 ) +* +* C(1:lastc,firstv:lastv-1) += - tau * w(1:lastc,1) * v(firstv:lastv-1)**H +* + CALL ZGERC( LASTC, LASTV - FIRSTV, -TAU, WORK, 1, V( I ), + $ INCV, C( 1, FIRSTV ), LDC ) + END IF + END IF + RETURN +* +* End of ZLARF1L +* + END diff --git a/SRC/zunbdb.f b/SRC/zunbdb.f index f05e46e6d7..250ed59ad0 100644 --- a/SRC/zunbdb.f +++ b/SRC/zunbdb.f @@ -316,7 +316,7 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, DOUBLE PRECISION Z1, Z2, Z3, Z4 * .. * .. External Subroutines .. - EXTERNAL ZAXPY, ZLARF, ZLARFGP, ZSCAL, + EXTERNAL ZAXPY, ZLARF1F, ZLARFGP, ZSCAL, $ XERBLA EXTERNAL ZLACGV * @@ -427,7 +427,6 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, ELSE IF ( P .EQ. I ) THEN CALL ZLARFGP( P-I+1, X11(I,I), X11(I,I), 1, TAUP1(I) ) END IF - X11(I,I) = ONE IF ( M-P .GT. I ) THEN CALL ZLARFGP( M-P-I+1, X21(I,I), X21(I+1,I), 1, $ TAUP2(I) ) @@ -435,19 +434,20 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL ZLARFGP( M-P-I+1, X21(I,I), X21(I,I), 1, $ TAUP2(I) ) END IF - X21(I,I) = ONE * IF ( Q .GT. I ) THEN - CALL ZLARF( 'L', P-I+1, Q-I, X11(I,I), 1, - $ DCONJG(TAUP1(I)), X11(I,I+1), LDX11, WORK ) - CALL ZLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, - $ DCONJG(TAUP2(I)), X21(I,I+1), LDX21, WORK ) + CALL ZLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, + $ CONJG(TAUP1(I)), X11(I,I+1), LDX11, + $ WORK ) + CALL ZLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, + $ CONJG(TAUP2(I)), X21(I,I+1), LDX21, + $ WORK ) END IF IF ( M-Q+1 .GT. I ) THEN - CALL ZLARF( 'L', P-I+1, M-Q-I+1, X11(I,I), 1, - $ DCONJG(TAUP1(I)), X12(I,I), LDX12, WORK ) - CALL ZLARF( 'L', M-P-I+1, M-Q-I+1, X21(I,I), 1, - $ DCONJG(TAUP2(I)), X22(I,I), LDX22, WORK ) + CALL ZLARF1F( 'L', P-I+1, M-Q-I+1, X11(I,I), 1, + $ CONJG(TAUP1(I)), X12(I,I), LDX12, WORK ) + CALL ZLARF1F( 'L', M-P-I+1, M-Q-I+1, X21(I,I), 1, + $ CONJG(TAUP2(I)), X22(I,I), LDX22, WORK ) END IF * IF( I .LT. Q ) THEN @@ -477,7 +477,6 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL ZLARFGP( Q-I, X11(I,I+1), X11(I,I+2), LDX11, $ TAUQ1(I) ) END IF - X11(I,I+1) = ONE END IF IF ( M-Q+1 .GT. I ) THEN CALL ZLACGV( M-Q-I+1, X12(I,I), LDX12 ) @@ -489,24 +488,23 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, $ TAUQ2(I) ) END IF END IF - X12(I,I) = ONE * IF( I .LT. Q ) THEN - CALL ZLARF( 'R', P-I, Q-I, X11(I,I+1), LDX11, - $ TAUQ1(I), - $ X11(I+1,I+1), LDX11, WORK ) - CALL ZLARF( 'R', M-P-I, Q-I, X11(I,I+1), LDX11, - $ TAUQ1(I), - $ X21(I+1,I+1), LDX21, WORK ) + CALL ZLARF1F( 'R', P-I, Q-I, X11(I,I+1), LDX11, + $ TAUQ1(I), + $ X11(I+1,I+1), LDX11, WORK ) + CALL ZLARF1F( 'R', M-P-I, Q-I, X11(I,I+1), LDX11, + $ TAUQ1(I), + $ X21(I+1,I+1), LDX21, WORK ) END IF IF ( P .GT. I ) THEN - CALL ZLARF( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, - $ TAUQ2(I), - $ X12(I+1,I), LDX12, WORK ) + CALL ZLARF1F( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, + $ TAUQ2(I), + $ X12(I+1,I), LDX12, WORK ) END IF IF ( M-P .GT. I ) THEN - CALL ZLARF( 'R', M-P-I, M-Q-I+1, X12(I,I), LDX12, - $ TAUQ2(I), X22(I+1,I), LDX22, WORK ) + CALL ZLARF1F( 'R', M-P-I, M-Q-I+1, X12(I,I), LDX12, + $ TAUQ2(I), X22(I+1,I), LDX22, WORK ) END IF * IF( I .LT. Q ) @@ -529,16 +527,15 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL ZLARFGP( M-Q-I+1, X12(I,I), X12(I,I+1), LDX12, $ TAUQ2(I) ) END IF - X12(I,I) = ONE * IF ( P .GT. I ) THEN - CALL ZLARF( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, - $ TAUQ2(I), - $ X12(I+1,I), LDX12, WORK ) + CALL ZLARF1F( 'R', P-I, M-Q-I+1, X12(I,I), LDX12, + $ TAUQ2(I), + $ X12(I+1,I), LDX12, WORK ) END IF IF( M-P-Q .GE. 1 ) - $ CALL ZLARF( 'R', M-P-Q, M-Q-I+1, X12(I,I), LDX12, - $ TAUQ2(I), X22(Q+1,I), LDX22, WORK ) + $ CALL ZLARF1F( 'R', M-P-Q, M-Q-I+1, X12(I,I), LDX12, + $ TAUQ2(I), X22(Q+1,I), LDX22, WORK ) * CALL ZLACGV( M-Q-I+1, X12(I,I), LDX12 ) * @@ -553,9 +550,9 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL ZLACGV( M-P-Q-I+1, X22(Q+I,P+I), LDX22 ) CALL ZLARFGP( M-P-Q-I+1, X22(Q+I,P+I), X22(Q+I,P+I+1), $ LDX22, TAUQ2(P+I) ) - X22(Q+I,P+I) = ONE - CALL ZLARF( 'R', M-P-Q-I, M-P-Q-I+1, X22(Q+I,P+I), LDX22, - $ TAUQ2(P+I), X22(Q+I+1,P+I), LDX22, WORK ) + CALL ZLARF1F( 'R', M-P-Q-I, M-P-Q-I+1, X22(Q+I,P+I), + $ LDX22, TAUQ2(P+I), X22(Q+I+1,P+I), LDX22, + $ WORK ) * CALL ZLACGV( M-P-Q-I+1, X22(Q+I,P+I), LDX22 ) * @@ -595,7 +592,6 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, * CALL ZLARFGP( P-I+1, X11(I,I), X11(I,I+1), LDX11, $ TAUP1(I) ) - X11(I,I) = ONE IF ( I .EQ. M-P ) THEN CALL ZLARFGP( M-P-I+1, X21(I,I), X21(I,I), LDX21, $ TAUP2(I) ) @@ -603,17 +599,16 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL ZLARFGP( M-P-I+1, X21(I,I), X21(I,I+1), LDX21, $ TAUP2(I) ) END IF - X21(I,I) = ONE -* - CALL ZLARF( 'R', Q-I, P-I+1, X11(I,I), LDX11, TAUP1(I), - $ X11(I+1,I), LDX11, WORK ) - CALL ZLARF( 'R', M-Q-I+1, P-I+1, X11(I,I), LDX11, - $ TAUP1(I), - $ X12(I,I), LDX12, WORK ) - CALL ZLARF( 'R', Q-I, M-P-I+1, X21(I,I), LDX21, TAUP2(I), - $ X21(I+1,I), LDX21, WORK ) - CALL ZLARF( 'R', M-Q-I+1, M-P-I+1, X21(I,I), LDX21, - $ TAUP2(I), X22(I,I), LDX22, WORK ) +* + CALL ZLARF1F( 'R', Q-I, P-I+1, X11(I,I), LDX11, TAUP1(I), + $ X11(I+1,I), LDX11, WORK ) + CALL ZLARF1F( 'R', M-Q-I+1, P-I+1, X11(I,I), LDX11, + $ TAUP1(I), + $ X12(I,I), LDX12, WORK ) + CALL ZLARF1F( 'R', Q-I, M-P-I+1, X21(I,I), LDX21, + $ TAUP2(I), X21(I+1,I), LDX21, WORK ) + CALL ZLARF1F( 'R', M-Q-I+1, M-P-I+1, X21(I,I), LDX21, + $ TAUP2(I), X22(I,I), LDX22, WORK ) * CALL ZLACGV( P-I+1, X11(I,I), LDX11 ) CALL ZLACGV( M-P-I+1, X21(I,I), LDX21 ) @@ -639,23 +634,26 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, IF( I .LT. Q ) THEN CALL ZLARFGP( Q-I, X11(I+1,I), X11(I+2,I), 1, $ TAUQ1(I) ) - X11(I+1,I) = ONE END IF CALL ZLARFGP( M-Q-I+1, X12(I,I), X12(I+1,I), 1, $ TAUQ2(I) ) - X12(I,I) = ONE * IF( I .LT. Q ) THEN - CALL ZLARF( 'L', Q-I, P-I, X11(I+1,I), 1, - $ DCONJG(TAUQ1(I)), X11(I+1,I+1), LDX11, WORK ) - CALL ZLARF( 'L', Q-I, M-P-I, X11(I+1,I), 1, - $ DCONJG(TAUQ1(I)), X21(I+1,I+1), LDX21, WORK ) + CALL ZLARF1F( 'L', Q-I, P-I, X11(I+1,I), 1, + $ CONJG(TAUQ1(I)), X11(I+1,I+1), LDX11, + $ WORK ) + CALL ZLARF1F( 'L', Q-I, M-P-I, X11(I+1,I), 1, + $ CONJG(TAUQ1(I)), X21(I+1,I+1), LDX21, + $ WORK ) END IF - CALL ZLARF( 'L', M-Q-I+1, P-I, X12(I,I), 1, - $ DCONJG(TAUQ2(I)), X12(I,I+1), LDX12, WORK ) + CALL ZLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, + $ CONJG(TAUQ2(I)), + $ X12(I,I+1), LDX12, WORK ) + IF ( M-P .GT. I ) THEN - CALL ZLARF( 'L', M-Q-I+1, M-P-I, X12(I,I), 1, - $ DCONJG(TAUQ2(I)), X22(I,I+1), LDX22, WORK ) + CALL ZLARF1F( 'L', M-Q-I+1, M-P-I, X12(I,I), 1, + $ CONJG(TAUQ2(I)), X22(I,I+1), LDX22, + $ WORK ) END IF * END DO @@ -668,15 +666,16 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, $ 1 ) CALL ZLARFGP( M-Q-I+1, X12(I,I), X12(I+1,I), 1, $ TAUQ2(I) ) - X12(I,I) = ONE * IF ( P .GT. I ) THEN - CALL ZLARF( 'L', M-Q-I+1, P-I, X12(I,I), 1, - $ DCONJG(TAUQ2(I)), X12(I,I+1), LDX12, WORK ) + CALL ZLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, + $ CONJG(TAUQ2(I)), X12(I,I+1), LDX12, + $ WORK ) END IF IF( M-P-Q .GE. 1 ) - $ CALL ZLARF( 'L', M-Q-I+1, M-P-Q, X12(I,I), 1, - $ DCONJG(TAUQ2(I)), X22(I,Q+1), LDX22, WORK ) + $ CALL ZLARF1F( 'L', M-Q-I+1, M-P-Q, X12(I,I), 1, + $ CONJG(TAUQ2(I)), X22(I,Q+1), LDX22, + $ WORK ) * END DO * @@ -688,12 +687,10 @@ SUBROUTINE ZUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, $ X22(P+I,Q+I), 1 ) CALL ZLARFGP( M-P-Q-I+1, X22(P+I,Q+I), X22(P+I+1,Q+I), 1, $ TAUQ2(P+I) ) - X22(P+I,Q+I) = ONE -* IF ( M-P-Q .NE. I ) THEN - CALL ZLARF( 'L', M-P-Q-I+1, M-P-Q-I, X22(P+I,Q+I), 1, - $ DCONJG(TAUQ2(P+I)), X22(P+I,Q+I+1), LDX22, - $ WORK ) + CALL ZLARF1F( 'L', M-P-Q-I+1, M-P-Q-I, X22(P+I,Q+I), + $ 1, CONJG(TAUQ2(P+I)), X22(P+I,Q+I+1), + $ LDX22, WORK ) END IF * END DO diff --git a/SRC/zunbdb1.f b/SRC/zunbdb1.f index b96c499938..af0eeaea73 100644 --- a/SRC/zunbdb1.f +++ b/SRC/zunbdb1.f @@ -228,7 +228,7 @@ SUBROUTINE ZUNBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL ZLARF, ZLARFGP, ZUNBDB5, ZDROT, + EXTERNAL ZLARF1F, ZLARFGP, ZUNBDB5, ZDROT, $ XERBLA EXTERNAL ZLACGV * .. @@ -288,13 +288,13 @@ SUBROUTINE ZUNBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, THETA(I) = ATAN2( DBLE( X21(I,I) ), DBLE( X11(I,I) ) ) C = COS( THETA(I) ) S = SIN( THETA(I) ) - X11(I,I) = ONE - X21(I,I) = ONE - CALL ZLARF( 'L', P-I+1, Q-I, X11(I,I), 1, DCONJG(TAUP1(I)), - $ X11(I,I+1), LDX11, WORK(ILARF) ) - CALL ZLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, - $ DCONJG(TAUP2(I)), - $ X21(I,I+1), LDX21, WORK(ILARF) ) + C = COS( THETA(I) ) + S = SIN( THETA(I) ) + CALL ZLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, CONJG(TAUP1(I)), + $ X11(I,I+1), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, + $ CONJG(TAUP2(I)), X21(I,I+1), LDX21, + $ WORK(ILARF) ) * IF( I .LT. Q ) THEN CALL ZDROT( Q-I, X11(I,I+1), LDX11, X21(I,I+1), LDX21, C, @@ -303,14 +303,14 @@ SUBROUTINE ZUNBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, CALL ZLARFGP( Q-I, X21(I,I+1), X21(I,I+2), LDX21, $ TAUQ1(I) ) S = DBLE( X21(I,I+1) ) - X21(I,I+1) = ONE - CALL ZLARF( 'R', P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), - $ X11(I+1,I+1), LDX11, WORK(ILARF) ) - CALL ZLARF( 'R', M-P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), - $ X21(I+1,I+1), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'R', P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), + $ X11(I+1,I+1), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'R', M-P-I, Q-I, X21(I,I+1), LDX21, + $ TAUQ1(I), X21(I+1,I+1), LDX21, + $ WORK(ILARF) ) CALL ZLACGV( Q-I, X21(I,I+1), LDX21 ) C = SQRT( DZNRM2( P-I, X11(I+1,I+1), 1 )**2 - $ + DZNRM2( M-P-I, X21(I+1,I+1), 1 )**2 ) + $ + DZNRM2( M-P-I, X21(I+1,I+1), 1 )**2 ) PHI(I) = ATAN2( S, C ) CALL ZUNBDB5( P-I, M-P-I, Q-I-1, X11(I+1,I+1), 1, $ X21(I+1,I+1), 1, X11(I+1,I+2), LDX11, diff --git a/SRC/zunbdb2.f b/SRC/zunbdb2.f index 245391982f..3d0dc4a59a 100644 --- a/SRC/zunbdb2.f +++ b/SRC/zunbdb2.f @@ -227,7 +227,7 @@ SUBROUTINE ZUNBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL ZLARF, ZLARFGP, ZUNBDB5, ZDROT, ZSCAL, + EXTERNAL ZLARF1F, ZLARFGP, ZUNBDB5, ZDROT, ZSCAL, $ ZLACGV, $ XERBLA * .. @@ -289,11 +289,10 @@ SUBROUTINE ZUNBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, CALL ZLACGV( Q-I+1, X11(I,I), LDX11 ) CALL ZLARFGP( Q-I+1, X11(I,I), X11(I,I+1), LDX11, TAUQ1(I) ) C = DBLE( X11(I,I) ) - X11(I,I) = ONE - CALL ZLARF( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), - $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL ZLARF( 'R', M-P-I+1, Q-I+1, X11(I,I), LDX11, TAUQ1(I), - $ X21(I,I), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + $ X11(I+1,I), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'R', M-P-I+1, Q-I+1, X11(I,I), LDX11, + $ TAUQ1(I), X21(I,I), LDX21, WORK(ILARF) ) CALL ZLACGV( Q-I+1, X11(I,I), LDX11 ) S = SQRT( DZNRM2( P-I, X11(I+1,I), 1 )**2 $ + DZNRM2( M-P-I+1, X21(I,I), 1 )**2 ) @@ -309,15 +308,13 @@ SUBROUTINE ZUNBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI(I) = ATAN2( DBLE( X11(I+1,I) ), DBLE( X21(I,I) ) ) C = COS( PHI(I) ) S = SIN( PHI(I) ) - X11(I+1,I) = ONE - CALL ZLARF( 'L', P-I, Q-I, X11(I+1,I), 1, - $ DCONJG(TAUP1(I)), - $ X11(I+1,I+1), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'L', P-I, Q-I, X11(I+1,I), 1, + $ CONJG(TAUP1(I)), + $ X11(I+1,I+1), LDX11, WORK(ILARF) ) END IF - X21(I,I) = ONE - CALL ZLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, - $ DCONJG(TAUP2(I)), - $ X21(I,I+1), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, + $ CONJG(TAUP2(I)), X21(I,I+1), LDX21, + $ WORK(ILARF) ) * END DO * @@ -325,10 +322,9 @@ SUBROUTINE ZUNBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, * DO I = P + 1, Q CALL ZLARFGP( M-P-I+1, X21(I,I), X21(I+1,I), 1, TAUP2(I) ) - X21(I,I) = ONE - CALL ZLARF( 'L', M-P-I+1, Q-I, X21(I,I), 1, - $ DCONJG(TAUP2(I)), - $ X21(I,I+1), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, + $ CONJG(TAUP2(I)), X21(I,I+1), LDX21, + $ WORK(ILARF) ) END DO * RETURN diff --git a/SRC/zunbdb3.f b/SRC/zunbdb3.f index 67b3eeedcb..d7aa8fadb2 100644 --- a/SRC/zunbdb3.f +++ b/SRC/zunbdb3.f @@ -226,7 +226,7 @@ SUBROUTINE ZUNBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL ZLARF, ZLARFGP, ZUNBDB5, ZDROT, ZLACGV, + EXTERNAL ZLARF1F, ZLARFGP, ZUNBDB5, ZDROT, ZLACGV, $ XERBLA * .. * .. External Functions .. @@ -285,14 +285,12 @@ SUBROUTINE ZUNBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, $ S ) END IF * - CALL ZLACGV( Q-I+1, X21(I,I), LDX21 ) CALL ZLARFGP( Q-I+1, X21(I,I), X21(I,I+1), LDX21, TAUQ1(I) ) S = DBLE( X21(I,I) ) - X21(I,I) = ONE - CALL ZLARF( 'R', P-I+1, Q-I+1, X21(I,I), LDX21, TAUQ1(I), - $ X11(I,I), LDX11, WORK(ILARF) ) - CALL ZLARF( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), - $ X21(I+1,I), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'R', P-I+1, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + $ X11(I,I), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + $ X21(I+1,I), LDX21, WORK(ILARF) ) CALL ZLACGV( Q-I+1, X21(I,I), LDX21 ) C = SQRT( DZNRM2( P-I+1, X11(I,I), 1 )**2 $ + DZNRM2( M-P-I, X21(I+1,I), 1 )**2 ) @@ -308,24 +306,20 @@ SUBROUTINE ZUNBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA, PHI(I) = ATAN2( DBLE( X21(I+1,I) ), DBLE( X11(I,I) ) ) C = COS( PHI(I) ) S = SIN( PHI(I) ) - X21(I+1,I) = ONE - CALL ZLARF( 'L', M-P-I, Q-I, X21(I+1,I), 1, - $ DCONJG(TAUP2(I)), X21(I+1,I+1), LDX21, - $ WORK(ILARF) ) + CALL ZLARF1F( 'L', M-P-I, Q-I, X21(I+1,I), 1, + $ CONJG(TAUP2(I)), + $ X21(I+1,I+1), LDX21, WORK(ILARF) ) END IF - X11(I,I) = ONE - CALL ZLARF( 'L', P-I+1, Q-I, X11(I,I), 1, DCONJG(TAUP1(I)), - $ X11(I,I+1), LDX11, WORK(ILARF) ) -* + CALL ZLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, CONJG(TAUP1(I)), + $ X11(I,I+1), LDX11, WORK(ILARF) ) END DO * * Reduce the bottom-right portion of X11 to the identity matrix * DO I = M-P + 1, Q CALL ZLARFGP( P-I+1, X11(I,I), X11(I+1,I), 1, TAUP1(I) ) - X11(I,I) = ONE - CALL ZLARF( 'L', P-I+1, Q-I, X11(I,I), 1, DCONJG(TAUP1(I)), - $ X11(I,I+1), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'L', P-I+1, Q-I, X11(I,I), 1, CONJG(TAUP1(I)), + $ X11(I,I+1), LDX11, WORK(ILARF) ) END DO * RETURN diff --git a/SRC/zunbdb4.f b/SRC/zunbdb4.f index a242d956dc..90d70168f3 100644 --- a/SRC/zunbdb4.f +++ b/SRC/zunbdb4.f @@ -239,7 +239,7 @@ SUBROUTINE ZUNBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, LOGICAL LQUERY * .. * .. External Subroutines .. - EXTERNAL ZLARF, ZLARFGP, ZUNBDB5, ZDROT, ZSCAL, + EXTERNAL ZLARF1F, ZLARFGP, ZUNBDB5, ZDROT, ZSCAL, $ ZLACGV, $ XERBLA * .. @@ -309,14 +309,12 @@ SUBROUTINE ZUNBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, THETA(I) = ATAN2( DBLE( PHANTOM(1) ), DBLE( PHANTOM(P+1) ) ) C = COS( THETA(I) ) S = SIN( THETA(I) ) - PHANTOM(1) = ONE - PHANTOM(P+1) = ONE - CALL ZLARF( 'L', P, Q, PHANTOM(1), 1, DCONJG(TAUP1(1)), - $ X11, - $ LDX11, WORK(ILARF) ) - CALL ZLARF( 'L', M-P, Q, PHANTOM(P+1), 1, - $ DCONJG(TAUP2(1)), - $ X21, LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'L', P, Q, PHANTOM(1), 1, CONJG(TAUP1(1)), + $ X11, + $ LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'L', M-P, Q, PHANTOM(P+1), 1, + $ CONJG(TAUP2(1)), + $ X21, LDX21, WORK(ILARF) ) ELSE CALL ZUNBDB5( P-I+1, M-P-I+1, Q-I+1, X11(I,I-1), 1, $ X21(I,I-1), 1, X11(I,I), LDX11, X21(I,I), @@ -329,23 +327,22 @@ SUBROUTINE ZUNBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, THETA(I) = ATAN2( DBLE( X11(I,I-1) ), DBLE( X21(I,I-1) ) ) C = COS( THETA(I) ) S = SIN( THETA(I) ) - X11(I,I-1) = ONE - X21(I,I-1) = ONE - CALL ZLARF( 'L', P-I+1, Q-I+1, X11(I,I-1), 1, - $ DCONJG(TAUP1(I)), X11(I,I), LDX11, WORK(ILARF) ) - CALL ZLARF( 'L', M-P-I+1, Q-I+1, X21(I,I-1), 1, - $ DCONJG(TAUP2(I)), X21(I,I), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'L', P-I+1, Q-I+1, X11(I,I-1), 1, + $ CONJG(TAUP1(I)), X11(I,I), LDX11, + $ WORK(ILARF) ) + CALL ZLARF1F( 'L', M-P-I+1, Q-I+1, X21(I,I-1), 1, + $ CONJG(TAUP2(I)), X21(I,I), LDX21, + $ WORK(ILARF) ) END IF * CALL ZDROT( Q-I+1, X11(I,I), LDX11, X21(I,I), LDX21, S, -C ) CALL ZLACGV( Q-I+1, X21(I,I), LDX21 ) CALL ZLARFGP( Q-I+1, X21(I,I), X21(I,I+1), LDX21, TAUQ1(I) ) C = DBLE( X21(I,I) ) - X21(I,I) = ONE - CALL ZLARF( 'R', P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), - $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL ZLARF( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), - $ X21(I+1,I), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'R', P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + $ X11(I+1,I), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'R', M-P-I, Q-I+1, X21(I,I), LDX21, TAUQ1(I), + $ X21(I+1,I), LDX21, WORK(ILARF) ) CALL ZLACGV( Q-I+1, X21(I,I), LDX21 ) IF( I .LT. M-Q ) THEN S = SQRT( DZNRM2( P-I, X11(I+1,I), 1 )**2 @@ -360,11 +357,10 @@ SUBROUTINE ZUNBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, DO I = M - Q + 1, P CALL ZLACGV( Q-I+1, X11(I,I), LDX11 ) CALL ZLARFGP( Q-I+1, X11(I,I), X11(I,I+1), LDX11, TAUQ1(I) ) - X11(I,I) = ONE - CALL ZLARF( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), - $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL ZLARF( 'R', Q-P, Q-I+1, X11(I,I), LDX11, TAUQ1(I), - $ X21(M-Q+1,I), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + $ X11(I+1,I), LDX11, WORK(ILARF) ) + CALL ZLARF1F( 'R', Q-P, Q-I+1, X11(I,I), LDX11, TAUQ1(I), + $ X21(M-Q+1,I), LDX21, WORK(ILARF) ) CALL ZLACGV( Q-I+1, X11(I,I), LDX11 ) END DO * @@ -375,10 +371,9 @@ SUBROUTINE ZUNBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, CALL ZLARFGP( Q-I+1, X21(M-Q+I-P,I), X21(M-Q+I-P,I+1), $ LDX21, $ TAUQ1(I) ) - X21(M-Q+I-P,I) = ONE - CALL ZLARF( 'R', Q-I, Q-I+1, X21(M-Q+I-P,I), LDX21, - $ TAUQ1(I), - $ X21(M-Q+I-P+1,I), LDX21, WORK(ILARF) ) + CALL ZLARF1F( 'R', Q-I, Q-I+1, X21(M-Q+I-P,I), LDX21, + $ TAUQ1(I), + $ X21(M-Q+I-P+1,I), LDX21, WORK(ILARF) ) CALL ZLACGV( Q-I+1, X21(M-Q+I-P,I), LDX21 ) END DO * diff --git a/SRC/zung2l.f b/SRC/zung2l.f index 28854861bb..814034e188 100644 --- a/SRC/zung2l.f +++ b/SRC/zung2l.f @@ -134,7 +134,7 @@ SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, II, J, L * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF, ZSCAL + EXTERNAL XERBLA, ZLARF1L, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -178,9 +178,9 @@ SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * Apply H(i) to A(1:m-k+i,1:n-k+i) from the left * A( M-N+II, II ) = ONE - CALL ZLARF( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), - $ A, - $ LDA, WORK ) + CALL ZLARF1L( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), + $ A, + $ LDA, WORK ) CALL ZSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 ) A( M-N+II, II ) = ONE - TAU( I ) * diff --git a/SRC/zung2r.f b/SRC/zung2r.f index b73246b2b3..80237cf312 100644 --- a/SRC/zung2r.f +++ b/SRC/zung2r.f @@ -134,7 +134,7 @@ SUBROUTINE ZUNG2R( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, J, L * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF, ZSCAL + EXTERNAL XERBLA, ZLARF1F, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC MAX @@ -177,9 +177,8 @@ SUBROUTINE ZUNG2R( M, N, K, A, LDA, TAU, WORK, INFO ) * Apply H(i) to A(i:m,i:n) from the left * IF( I.LT.N ) THEN - A( I, I ) = ONE - CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), - $ A( I, I+1 ), LDA, WORK ) + CALL ZLARF1F( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), + $ A( I, I+1 ), LDA, WORK ) END IF IF( I.LT.M ) $ CALL ZSCAL( M-I, -TAU( I ), A( I+1, I ), 1 ) diff --git a/SRC/zungl2.f b/SRC/zungl2.f index 83308c59b1..4647c93f2a 100644 --- a/SRC/zungl2.f +++ b/SRC/zungl2.f @@ -133,7 +133,7 @@ SUBROUTINE ZUNGL2( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, J, L * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF, ZSCAL + EXTERNAL XERBLA, ZLACGV, ZLARF1F, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -182,9 +182,9 @@ SUBROUTINE ZUNGL2( M, N, K, A, LDA, TAU, WORK, INFO ) IF( I.LT.N ) THEN CALL ZLACGV( N-I, A( I, I+1 ), LDA ) IF( I.LT.M ) THEN - A( I, I ) = ONE - CALL ZLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, - $ DCONJG( TAU( I ) ), A( I+1, I ), LDA, WORK ) + CALL ZLARF1F( 'Right', M-I, N-I+1, A( I, I ), LDA, + $ CONJG( TAU( I ) ), A( I+1, I ), LDA, + $ WORK ) END IF CALL ZSCAL( N-I, -TAU( I ), A( I, I+1 ), LDA ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) diff --git a/SRC/zungr2.f b/SRC/zungr2.f index 05c5fc74ec..33f6be35f7 100644 --- a/SRC/zungr2.f +++ b/SRC/zungr2.f @@ -134,7 +134,7 @@ SUBROUTINE ZUNGR2( M, N, K, A, LDA, TAU, WORK, INFO ) INTEGER I, II, J, L * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF, ZSCAL + EXTERNAL XERBLA, ZLACGV, ZLARF1L, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -182,9 +182,8 @@ SUBROUTINE ZUNGR2( M, N, K, A, LDA, TAU, WORK, INFO ) * Apply H(i)**H to A(1:m-k+i,1:n-k+i) from the right * CALL ZLACGV( N-M+II-1, A( II, 1 ), LDA ) - A( II, N-M+II ) = ONE - CALL ZLARF( 'Right', II-1, N-M+II, A( II, 1 ), LDA, - $ DCONJG( TAU( I ) ), A, LDA, WORK ) + CALL ZLARF1L( 'Right', II-1, N-M+II, A( II, 1 ), LDA, + $ CONJG( TAU( I ) ), A, LDA, WORK ) CALL ZSCAL( N-M+II-1, -TAU( I ), A( II, 1 ), LDA ) CALL ZLACGV( N-M+II-1, A( II, 1 ), LDA ) A( II, N-M+II ) = ONE - DCONJG( TAU( I ) ) diff --git a/SRC/zunm2l.f b/SRC/zunm2l.f index 0e0ed1c067..08dac348c9 100644 --- a/SRC/zunm2l.f +++ b/SRC/zunm2l.f @@ -178,14 +178,14 @@ SUBROUTINE ZUNM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, MI, NI, NQ - COMPLEX*16 AII, TAUI + COMPLEX*16 TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF + EXTERNAL XERBLA, ZLARF1L * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -266,10 +266,8 @@ SUBROUTINE ZUNM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, ELSE TAUI = DCONJG( TAU( I ) ) END IF - AII = A( NQ-K+I, I ) - A( NQ-K+I, I ) = ONE - CALL ZLARF( SIDE, MI, NI, A( 1, I ), 1, TAUI, C, LDC, WORK ) - A( NQ-K+I, I ) = AII + CALL ZLARF1L( SIDE, MI, NI, A( 1, I ), 1, TAUI, C, LDC, + $ WORK ) 10 CONTINUE RETURN * diff --git a/SRC/zunm2r.f b/SRC/zunm2r.f index 6d6c802a6d..1ced5b127d 100644 --- a/SRC/zunm2r.f +++ b/SRC/zunm2r.f @@ -185,7 +185,7 @@ SUBROUTINE ZUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF + EXTERNAL XERBLA, ZLARF1F * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -270,12 +270,9 @@ SUBROUTINE ZUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, ELSE TAUI = DCONJG( TAU( I ) ) END IF - AII = A( I, I ) - A( I, I ) = ONE - CALL ZLARF( SIDE, MI, NI, A( I, I ), 1, TAUI, C( IC, JC ), + CALL ZLARF1F( SIDE, MI, NI, A( I, I ), 1, TAUI, C( IC, JC ), $ LDC, $ WORK ) - A( I, I ) = AII 10 CONTINUE RETURN * diff --git a/SRC/zunml2.f b/SRC/zunml2.f index 00385dc612..dace8cce02 100644 --- a/SRC/zunml2.f +++ b/SRC/zunml2.f @@ -178,14 +178,14 @@ SUBROUTINE ZUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ - COMPLEX*16 AII, TAUI + COMPLEX*16 TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF + EXTERNAL XERBLA, ZLACGV, ZLARF1F * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -272,11 +272,8 @@ SUBROUTINE ZUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, END IF IF( I.LT.NQ ) $ CALL ZLACGV( NQ-I, A( I, I+1 ), LDA ) - AII = A( I, I ) - A( I, I ) = ONE - CALL ZLARF( SIDE, MI, NI, A( I, I ), LDA, TAUI, C( IC, JC ), - $ LDC, WORK ) - A( I, I ) = AII + CALL ZLARF1F( SIDE, MI, NI, A( I, I ), LDA, TAUI, C( IC, + $ JC ), LDC, WORK ) IF( I.LT.NQ ) $ CALL ZLACGV( NQ-I, A( I, I+1 ), LDA ) 10 CONTINUE diff --git a/SRC/zunmr2.f b/SRC/zunmr2.f index 6547522173..578c71cc1d 100644 --- a/SRC/zunmr2.f +++ b/SRC/zunmr2.f @@ -185,7 +185,7 @@ SUBROUTINE ZUNMR2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLACGV, ZLARF + EXTERNAL XERBLA, ZLACGV, ZLARF1L * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -267,11 +267,8 @@ SUBROUTINE ZUNMR2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, TAUI = TAU( I ) END IF CALL ZLACGV( NQ-K+I-1, A( I, 1 ), LDA ) - AII = A( I, NQ-K+I ) - A( I, NQ-K+I ) = ONE - CALL ZLARF( SIDE, MI, NI, A( I, 1 ), LDA, TAUI, C, LDC, - $ WORK ) - A( I, NQ-K+I ) = AII + CALL ZLARF1L( SIDE, MI, NI, A( I, 1 ), LDA, TAUI, C, LDC, + $ WORK ) CALL ZLACGV( NQ-K+I-1, A( I, 1 ), LDA ) 10 CONTINUE RETURN diff --git a/SRC/zupmtr.f b/SRC/zupmtr.f index acf922f6d5..b3b8b8eb19 100644 --- a/SRC/zupmtr.f +++ b/SRC/zupmtr.f @@ -170,14 +170,14 @@ SUBROUTINE ZUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, * .. Local Scalars .. LOGICAL FORWRD, LEFT, NOTRAN, UPPER INTEGER I, I1, I2, I3, IC, II, JC, MI, NI, NQ - COMPLEX*16 AII, TAUI + COMPLEX*16 TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF + EXTERNAL XERBLA, ZLARF1, ZLARF1F * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX @@ -266,11 +266,8 @@ SUBROUTINE ZUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, ELSE TAUI = DCONJG( TAU( I ) ) END IF - AII = AP( II ) - AP( II ) = ONE - CALL ZLARF( SIDE, MI, NI, AP( II-I+1 ), 1, TAUI, C, LDC, - $ WORK ) - AP( II ) = AII + CALL ZLARF1L( SIDE, MI, NI, AP( II-I+1 ), 1, TAUI, C, + $ LDC, WORK ) * IF( FORWRD ) THEN II = II + I + 2 @@ -306,8 +303,6 @@ SUBROUTINE ZUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, END IF * DO 20 I = I1, I2, I3 - AII = AP( II ) - AP( II ) = ONE IF( LEFT ) THEN * * H(i) or H(i)**H is applied to C(i+1:m,1:n) @@ -329,9 +324,8 @@ SUBROUTINE ZUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, ELSE TAUI = DCONJG( TAU( I ) ) END IF - CALL ZLARF( SIDE, MI, NI, AP( II ), 1, TAUI, C( IC, JC ), - $ LDC, WORK ) - AP( II ) = AII + CALL ZLARF1F( SIDE, MI, NI, AP( II ), 1, TAUI, C( IC, + $ JC ), LDC, WORK ) * IF( FORWRD ) THEN II = II + NQ - I + 1 diff --git a/err b/err new file mode 100644 index 0000000000..18b5e219f4 --- /dev/null +++ b/err @@ -0,0 +1,18 @@ +Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL +Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL +Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL +Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL +zgeql2.f:186:72: + + 186 | 10 CONTINUE + | 1 +Error: End of nonblock DO statement at (1) is within another block +zgeql2.f:191:9: + + 191 | END + | 1 +Error: END IF statement expected at (1) +f951: Error: Unexpected end of file in ‘zgeql2.f’ +make[1]: *** [: zgeql2.o] Error 1 +make[1]: *** Waiting for unfinished jobs.... +make: *** [Makefile:25: lapacklib] Error 2 From d2190178d8c2404626be08952236d4f1550b7ec6 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Fri, 14 Jun 2024 08:42:18 -0400 Subject: [PATCH 20/28] implement zlarf1l and use it in relevant routines. TODO: update comments and cleanup --- err | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 err diff --git a/err b/err deleted file mode 100644 index 18b5e219f4..0000000000 --- a/err +++ /dev/null @@ -1,18 +0,0 @@ -Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL -Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL -Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL -Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL -zgeql2.f:186:72: - - 186 | 10 CONTINUE - | 1 -Error: End of nonblock DO statement at (1) is within another block -zgeql2.f:191:9: - - 191 | END - | 1 -Error: END IF statement expected at (1) -f951: Error: Unexpected end of file in ‘zgeql2.f’ -make[1]: *** [: zgeql2.o] Error 1 -make[1]: *** Waiting for unfinished jobs.... -make: *** [Makefile:25: lapacklib] Error 2 From 35d6a7b0db82fde1af308220aa96bfe2b3282d88 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Sat, 15 Jun 2024 10:01:13 -0400 Subject: [PATCH 21/28] updating documentation, using xLARF1y where applicable, and removing some extraneous variables --- SRC/dgebd2.f | 4 +-- SRC/dgeqp3rk.f | 4 +-- SRC/dlaqp2rk.f | 4 +-- SRC/dlarf1f.f | 12 +++---- SRC/dlarf1l.f | 8 ++--- SRC/dormqr.f | 80 +++++++++++++++++++++---------------------- SRC/la_constants.mod | Bin 1563 -> 0 bytes SRC/la_xisnan.mod | Bin 321 -> 0 bytes SRC/zgehd2.f | 1 - SRC/zgelq2.f | 1 - SRC/zgeql2.f | 3 +- SRC/zgeqp3rk.f | 4 +-- SRC/zgeqr2.f | 1 - SRC/zgeqr2p.f | 1 - SRC/zgerq2.f | 1 - SRC/zlaqp2.f | 1 - SRC/zlaqp2rk.f | 1 - SRC/zlaqr3.f | 2 +- SRC/zlarf1f.f | 18 +++++----- SRC/zlarf1l.f | 6 ++-- SRC/zunm2r.f | 2 +- SRC/zunmr2.f | 2 +- 22 files changed, 74 insertions(+), 82 deletions(-) delete mode 100644 SRC/la_constants.mod delete mode 100644 SRC/la_xisnan.mod diff --git a/SRC/dgebd2.f b/SRC/dgebd2.f index 5677ef382b..4994d74808 100644 --- a/SRC/dgebd2.f +++ b/SRC/dgebd2.f @@ -202,8 +202,8 @@ SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) * ===================================================================== * * .. Parameters .. - DOUBLE PRECISION ZERO, ONE - PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) + DOUBLE PRECISION ZERO + PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I diff --git a/SRC/dgeqp3rk.f b/SRC/dgeqp3rk.f index e14ea95c07..2bd82ca9b0 100644 --- a/SRC/dgeqp3rk.f +++ b/SRC/dgeqp3rk.f @@ -670,7 +670,7 @@ SUBROUTINE DGEQP3RK( M, N, NRHS, KMAX, ABSTOL, RELTOL, A, LDA, * 1) DGEQP3RK and DLAQP2RK: 2*N to store full and partial * column 2-norms. * 2) DLAQP2RK: N+NRHS-1 to use in WORK array that is used -* in DLARF subroutine inside DLAQP2RK to apply an +* in DLARF1F subroutine inside DLAQP2RK to apply an * elementary reflector from the left. * TOTAL_WORK_SIZE = 3*N + NRHS - 1 * @@ -686,7 +686,7 @@ SUBROUTINE DGEQP3RK( M, N, NRHS, KMAX, ABSTOL, RELTOL, A, LDA, * 1) DGEQP3RK, DLAQP2RK, DLAQP3RK: 2*N to store full and * partial column 2-norms. * 2) DLAQP2RK: N+NRHS-1 to use in WORK array that is used -* in DLARF subroutine to apply an elementary reflector +* in DLARF1F subroutine to apply an elementary reflector * from the left. * 3) DLAQP3RK: NB*(N+NRHS) to use in the work array F that * is used to apply a block reflector from diff --git a/SRC/dlaqp2rk.f b/SRC/dlaqp2rk.f index 8b834aca4e..fd6d7ba63d 100644 --- a/SRC/dlaqp2rk.f +++ b/SRC/dlaqp2rk.f @@ -253,7 +253,7 @@ *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (N-1) -*> Used in DLARF subroutine to apply an elementary +*> Used in DLARF1F subroutine to apply an elementary *> reflector from the left. *> \endverbatim *> @@ -370,7 +370,7 @@ SUBROUTINE DLAQP2RK( M, N, NRHS, IOFFSET, KMAX, ABSTOL, RELTOL, DOUBLE PRECISION HUGEVAL, TEMP, TEMP2, TOL3Z * .. * .. External Subroutines .. - EXTERNAL DLARF, DLARFG, DSWAP + EXTERNAL DLARF1F, DLARFG, DSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index bb30807932..049057feb2 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -7,12 +7,12 @@ * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download DLARF + dependencies -*> +*> Download DLARF1F + dependencies +*> *> [TGZ] -*> +*> *> [ZIP] -*> +*> *> [TXT] *> \endhtmlonly * @@ -180,7 +180,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT - INTEGER I, LASTV, LASTC, J + INTEGER I, LASTV, LASTC * .. * .. External Subroutines .. EXTERNAL DGEMV, DGER @@ -283,6 +283,6 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) END IF RETURN * -* End of DLARF +* End of DLARF1F * END diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f index 8c6670727f..fc20dd21e3 100644 --- a/SRC/dlarf1l.f +++ b/SRC/dlarf1l.f @@ -9,11 +9,11 @@ * *> \htmlonly *> Download DLARF + dependencies -*> +*> *> [TGZ] -*> +*> *> [ZIP] -*> +*> *> [TXT] *> \endhtmlonly * @@ -250,6 +250,6 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) END IF RETURN * -* End of DLARF +* End of DLARF1L * END diff --git a/SRC/dormqr.f b/SRC/dormqr.f index d8fd7d034f..a9f8ba2279 100644 --- a/SRC/dormqr.f +++ b/SRC/dormqr.f @@ -272,68 +272,68 @@ SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, END IF END IF * -* IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN + IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, $ IINFO ) -* ELSE + ELSE * * Use blocked code * -! IWT = 1 + NW*NB -! IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. -! $ ( .NOT.LEFT .AND. NOTRAN ) ) THEN -! I1 = 1 -! I2 = K -! I3 = NB -! ELSE -! I1 = ( ( K-1 ) / NB )*NB + 1 -! I2 = 1 -! I3 = -NB -! END IF -* -! IF( LEFT ) THEN -! NI = N -! JC = 1 -! ELSE -! MI = M -! IC = 1 -! END IF -* -! DO 10 I = I1, I2, I3 -! IB = MIN( NB, K-I+1 ) + IWT = 1 + NW*NB + IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. + $ ( .NOT.LEFT .AND. NOTRAN ) ) THEN + I1 = 1 + I2 = K + I3 = NB + ELSE + I1 = ( ( K-1 ) / NB )*NB + 1 + I2 = 1 + I3 = -NB + END IF +* + IF( LEFT ) THEN + NI = N + JC = 1 + ELSE + MI = M + IC = 1 + END IF +* + DO 10 I = I1, I2, I3 + IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * -! CALL DLARFT( 'Forward', 'Columnwise', NQ-I+1, IB, A( I, -! $ I ), -! $ LDA, TAU( I ), WORK( IWT ), LDT ) -! IF( LEFT ) THEN + CALL DLARFT( 'Forward', 'Columnwise', NQ-I+1, IB, A( I, + $ I ), + $ LDA, TAU( I ), WORK( IWT ), LDT ) + IF( LEFT ) THEN * * H or H**T is applied to C(i:m,1:n) * -! MI = M - I + 1 -! IC = I -! ELSE + MI = M - I + 1 + IC = I + ELSE * * H or H**T is applied to C(1:m,i:n) * -! NI = N - I + 1 -! JC = I -! END IF + NI = N - I + 1 + JC = I + END IF * * Apply H or H**T * -! CALL DLARFB( SIDE, TRANS, 'Forward', 'Columnwise', MI, -! $ NI, -! $ IB, A( I, I ), LDA, WORK( IWT ), LDT, -! $ C( IC, JC ), LDC, WORK, LDWORK ) -! 10 CONTINUE -! END IF + CALL DLARFB( SIDE, TRANS, 'Forward', 'Columnwise', MI, + $ NI, + $ IB, A( I, I ), LDA, WORK( IWT ), LDT, + $ C( IC, JC ), LDC, WORK, LDWORK ) + 10 CONTINUE + END IF WORK( 1 ) = LWKOPT RETURN * diff --git a/SRC/la_constants.mod b/SRC/la_constants.mod deleted file mode 100644 index b8006a566979124de13911e5efcec9baedca2f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563 zcmV+$2ITo4iwFP!000001La%abD~HPe&?^4H_U@u12dq$t!3Cf>k>>Eb9Z|$78@{2 zoxvQC+b#e4>lqk8;-Hp5q>}7bXyr$L-80kQbT?nW%;t;v*hbGA_jT=||GY5rHvv*L zLq(6F=fs|iR^jFut)1oLCWvAuh@(%d5mtJ=D^$lnMI2lyaJc8cj?^W4Hs}^FeYy;( ziqxJT#GxNV{^J!$D$-D|cQ>C+tm}ulg&yqR?b)Ape`+r*d!Y!Coglu;{$lw3@?cLE z)0vH|8|xOX7~h~fxQ{ZP&&S`EvxkK>UtU{xmVIs6lW&Q>a|_O*{Bn%A01&v40Mc`i zSix5cDZ?0E4ve831}VXyNPYDDwI4j4s6K)}^QnD5op1n3C4gfMuk6v77Bohnu>l(Y zaMml(usDcwg~#*ptp!giD_pd9rtb9i?q)ifF8cT5KP>(L{;bIiKDYkL2857{swtD1 zeZLsPoe!L@;!i`&e?DWCNjR6-JmJW8L7D(^6L_7%sHLd1BQXvD<4fqR{9nz&{0;6h zVK>o)=GiB`UXD*;_x=hWirFLN6rjd|6l_y4P4N**`4P!A8d4|x4rq@lhG2@V7j8P` zZ+zmI9wF8J?mq>u&yB*YUI7dKmYoP-C@%hd)+v#?PJ;_v&wu(6Up%VeE-FoqNn@B^ zqOKw8YZZP1-r=q`ui?dmqDQ+4IEdSLC~Uw_SPlvJi0eQ39K=P^5v|NeG$15y)3Le^ zCum2HD_|e)OQU#1Y!$&}H`cz1Mb)RPLphWIgYuC`#stevKvn9in!_rb%9dK6(R$n&^IWER7B4D?jL!}Wa zN5u$6^t|pMW$)`$zGmo*Wkdk%;!%|sLQ*jV84rm&I0UO!cb!p@*t`72!a0^)>5P%Y zKSJ;F2_rcg6Jr)}2j>%n;DH-VZZqzflnAIlD60>#7j{!!QGZxgAA)S?xc7kM5F=^N#S(BJpxXj$k%X#(S&wNC3SHgOB+g)D zp`Fr5UF3Qs2gB$>J0+32sE?d57>qEqQVKZ}i*u0187$tnR0BB^3^@qKWL%(~;zwQc zUz5*&lW~DoiXJtAsc;PA0j*R!>hep4TNnvwr^<0An8W1_69~YzwGMu zL%h&}ky&`}1EWFq>H|i@!W#k@jk3miFnQ8u&l06@tYxj-Am~{WGzdiW;=-|!bg{yb znKyy5TMhC)NRWnk{~$=CLfaiiSr=aNZPLBQ`6NzTzEb87-;u1R2n3q-;(%a?9u_z@ z^X?Cj28!sL0AVQF4d8er3iTNAqP?&Xt9I`WAo$Es^87wVJl&t>$3fCXf*FoUmY@ZJ zW*JTpj5I|E=Hcl={^TUvmU)V2tTMZa6i8wjosSB) diff --git a/SRC/la_xisnan.mod b/SRC/la_xisnan.mod deleted file mode 100644 index 1b5610476a459fda31282807dce61ffd51c6d396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxkpiwFP!000001I3fcYQr!PhVOccxye4HC|(lx=z0mJwp4`O(o-?D3xUK2 zyDfSAYKfPmY3U(QB!Ncr!+iQR+Qf|K+^4W_tB+j`pLN%7+XnE`#qiqI<$GPhTi5Pk zSH2v!eN#3!@hw4yVZt>g8a5^pTd@o*3aL66@K_Ur1@@>JmIb)FAjKG#U>Faa1yNY= z2nu>n*%MtPG>>Qw84HUvTF5+vQIMiz9*7umL4!PDRAZ%VlLUSWj>-`jV!^A<3|Hx_ z=`uoPqSYzScQ%c14mO06Y=oM@X{I@?978ObWUL(}lf??j2HgLjS8K`RDV=@hl?(Ww zIK*@W%A?N{|L%8l;DR|QEVArbqwq-7^^P1W_{kj2;LRA;*JN=1&LA6lY-b``YW_?F TR@3_t@fFY)*n0O@xdQ+IFY=W< diff --git a/SRC/zgehd2.f b/SRC/zgehd2.f index 98e6a6945d..22c03157bd 100644 --- a/SRC/zgehd2.f +++ b/SRC/zgehd2.f @@ -166,7 +166,6 @@ SUBROUTINE ZGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I - COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF1F, ZLARFG diff --git a/SRC/zgelq2.f b/SRC/zgelq2.f index 402378ea7b..f84756167d 100644 --- a/SRC/zgelq2.f +++ b/SRC/zgelq2.f @@ -146,7 +146,6 @@ SUBROUTINE ZGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACGV, ZLARF1F, ZLARFG diff --git a/SRC/zgeql2.f b/SRC/zgeql2.f index e1933c1a6e..d972c4ba16 100644 --- a/SRC/zgeql2.f +++ b/SRC/zgeql2.f @@ -140,10 +140,9 @@ SUBROUTINE ZGEQL2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - COMPLEX*16 ALPHA * .. * .. External Subroutines .. - EXTERNAL XERBLA, ZLARF, ZLARFG + EXTERNAL XERBLA, ZLARF1L, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN diff --git a/SRC/zgeqp3rk.f b/SRC/zgeqp3rk.f index 654093e31d..322741b210 100644 --- a/SRC/zgeqp3rk.f +++ b/SRC/zgeqp3rk.f @@ -677,7 +677,7 @@ SUBROUTINE ZGEQP3RK( M, N, NRHS, KMAX, ABSTOL, RELTOL, A, LDA, * Minimal workspace size in case of using only unblocked * BLAS 2 code in ZLAQP2RK. * 1) ZLAQP2RK: N+NRHS-1 to use in WORK array that is used -* in ZLARF subroutine inside ZLAQP2RK to apply an +* in ZLARF1F subroutine inside ZLAQP2RK to apply an * elementary reflector from the left. * TOTAL_WORK_SIZE = 3*N + NRHS - 1 * @@ -693,7 +693,7 @@ SUBROUTINE ZGEQP3RK( M, N, NRHS, KMAX, ABSTOL, RELTOL, A, LDA, * 1) ZGEQP3RK, ZLAQP2RK, ZLAQP3RK: 2*N to store full and * partial column 2-norms. * 2) ZLAQP2RK: N+NRHS-1 to use in WORK array that is used -* in ZLARF subroutine to apply an elementary reflector +* in ZLARF1F subroutine to apply an elementary reflector * from the left. * 3) ZLAQP3RK: NB*(N+NRHS) to use in the work array F that * is used to apply a block reflector from diff --git a/SRC/zgeqr2.f b/SRC/zgeqr2.f index 8e648eaabf..784d76e617 100644 --- a/SRC/zgeqr2.f +++ b/SRC/zgeqr2.f @@ -147,7 +147,6 @@ SUBROUTINE ZGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF1F, ZLARFG diff --git a/SRC/zgeqr2p.f b/SRC/zgeqr2p.f index fcfd008337..b5827494af 100644 --- a/SRC/zgeqr2p.f +++ b/SRC/zgeqr2p.f @@ -151,7 +151,6 @@ SUBROUTINE ZGEQR2P( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF1F, ZLARFGP diff --git a/SRC/zgerq2.f b/SRC/zgerq2.f index 4d84c87990..0df8cc3208 100644 --- a/SRC/zgerq2.f +++ b/SRC/zgerq2.f @@ -140,7 +140,6 @@ SUBROUTINE ZGERQ2( M, N, A, LDA, TAU, WORK, INFO ) * .. * .. Local Scalars .. INTEGER I, K - COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACGV, ZLARF1L, ZLARFG diff --git a/SRC/zlaqp2.f b/SRC/zlaqp2.f index dd6b56739f..7189307bb5 100644 --- a/SRC/zlaqp2.f +++ b/SRC/zlaqp2.f @@ -171,7 +171,6 @@ SUBROUTINE ZLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2, * .. Local Scalars .. INTEGER I, ITEMP, J, MN, OFFPI, PVT DOUBLE PRECISION TEMP, TEMP2, TOL3Z - COMPLEX*16 AII * .. * .. External Subroutines .. EXTERNAL ZLARF1F, ZLARFG, ZSWAP diff --git a/SRC/zlaqp2rk.f b/SRC/zlaqp2rk.f index ffe29ebe8a..9fe92fc5a9 100644 --- a/SRC/zlaqp2rk.f +++ b/SRC/zlaqp2rk.f @@ -372,7 +372,6 @@ SUBROUTINE ZLAQP2RK( M, N, NRHS, IOFFSET, KMAX, ABSTOL, RELTOL, INTEGER I, ITEMP, J, JMAXC2NRM, KK, KP, MINMNFACT, $ MINMNUPDT DOUBLE PRECISION HUGEVAL, TAUNAN, TEMP, TEMP2, TOL3Z - COMPLEX*16 AIKK * .. * .. External Subroutines .. EXTERNAL ZLARF1F, ZLARFG, ZSWAP diff --git a/SRC/zlaqr3.f b/SRC/zlaqr3.f index 18f7df87a5..b217cf0a63 100644 --- a/SRC/zlaqr3.f +++ b/SRC/zlaqr3.f @@ -290,7 +290,7 @@ SUBROUTINE ZLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, PARAMETER ( RZERO = 0.0d0, RONE = 1.0d0 ) * .. * .. Local Scalars .. - COMPLEX*16 BETA, CDUM, S, TAU + COMPLEX*16 CDUM, S, TAU DOUBLE PRECISION FOO, SAFMAX, SAFMIN, SMLNUM, ULP INTEGER I, IFST, ILST, INFO, INFQR, J, JW, KCOL, KLN, $ KNT, KROW, KWTOP, LTOP, LWK1, LWK2, LWK3, diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index caf64593d5..8598259b30 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -7,12 +7,12 @@ * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download DLARF + dependencies -*> +*> Download ZLARF1F + dependencies +*> *> [TGZ] -*> +*> *> [ZIP] -*> +*> *> [TXT] *> \endhtmlonly * @@ -248,8 +248,8 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) $ V(1+INCV), INCV, ZERO, WORK, 1) ! w += C_1**H ! This is essentially a zaxpyc - DO I = 1, LASTC - WORK(I) = WORK(I) + CONJG(C(1,I)) + DO J = 1, LASTC + WORK(J) = WORK(J) + DCONJG(C(1,J)) END DO * * C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**H @@ -257,8 +257,8 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**H ! = C(...) - tau * Conj(w(1:lastc,1)) ! This is essentially a zaxpyc - DO I = 1, LASTC - C(1,I) = C(1,I) - TAU * CONJG(WORK(I)) + DO J = 1, LASTC + C(1,J) = C(1,J) - TAU * DCONJG(WORK(J)) END DO ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**H CALL ZGERC(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, @@ -294,6 +294,6 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) END IF RETURN * -* End of DLARF +* End of ZLARF1F * END diff --git a/SRC/zlarf1l.f b/SRC/zlarf1l.f index 4ddafcb025..13d0cdba92 100644 --- a/SRC/zlarf1l.f +++ b/SRC/zlarf1l.f @@ -9,13 +9,13 @@ *> \htmlonly *> Download ZLARF1L + dependencies *> +*href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlarf1l.f"> *> [TGZ] *> +*href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlarf1l.f"> *> [ZIP] *> +*href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlarf1l.f"> *> [TXT] *> \endhtmlonly * diff --git a/SRC/zunm2r.f b/SRC/zunm2r.f index 1ced5b127d..ce7d535572 100644 --- a/SRC/zunm2r.f +++ b/SRC/zunm2r.f @@ -178,7 +178,7 @@ SUBROUTINE ZUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ - COMPLEX*16 AII, TAUI + COMPLEX*16 TAUI * .. * .. External Functions .. LOGICAL LSAME diff --git a/SRC/zunmr2.f b/SRC/zunmr2.f index 578c71cc1d..15768d23e8 100644 --- a/SRC/zunmr2.f +++ b/SRC/zunmr2.f @@ -178,7 +178,7 @@ SUBROUTINE ZUNMR2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, MI, NI, NQ - COMPLEX*16 AII, TAUI + COMPLEX*16 TAUI * .. * .. External Functions .. LOGICAL LSAME From 48fbcb11a6cb67e74b02e7d3c1bac0e04cde913d Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Sat, 15 Jun 2024 10:19:00 -0400 Subject: [PATCH 22/28] updating documentation, using xLARF1y where applicable, and removing some extraneous variables --- SRC/dlarf1f.f | 15 +++++++++------ SRC/dlarf1l.f | 6 ++---- SRC/la_constants.mod | Bin 0 -> 1563 bytes SRC/la_xisnan.mod | Bin 0 -> 321 bytes 4 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 SRC/la_constants.mod create mode 100644 SRC/la_xisnan.mod diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index 049057feb2..f16cdcf9c5 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -36,7 +36,7 @@ *> *> \verbatim *> -*> DLARF applies a real elementary reflector H to a real m by n matrix +*> DLARF1F applies a real elementary reflector H to a real m by n matrix *> C, from either the left or the right. H is represented in the form *> *> H = I - tau * v * v**T @@ -193,7 +193,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. Executable Statements .. * APPLYLEFT = LSAME( SIDE, 'L' ) - LASTV = 0 + LASTV = 1 LASTC = 0 IF( TAU.NE.ZERO ) THEN ! Set up variables for scanning V. LASTV begins pointing to the end @@ -222,9 +222,6 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Scan for the last non-zero row in C(:,1:lastv). LASTC = ILADLR(M, LASTV, C, LDC) END IF - ELSE -! TAU is 0, so H = I. Meaning HC = C = CH. - RETURN END IF IF( APPLYLEFT ) THEN * @@ -232,7 +229,10 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * ! Check if lastv = 1. This means v = 1, So we just need to compute ! C := HC = (1-\tau)C. - IF( LASTV.LE.1 ) THEN + IF( LASTV.EQ.1 ) THEN +* +* C(1,1:lastc) := ( 1 - tau ) * C(1,1:lastc) +* CALL DSCAL(LASTC, ONE - TAU, C, LDC) ELSE * @@ -260,6 +260,9 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Check if n = 1. This means v = 1, so we just need to compute ! C := CH = C(1-\tau). IF( LASTV.EQ.1 ) THEN +* +* C(1:lastc,1) := ( 1 - tau ) * C(1:lastc,1) +* CALL DSCAL(LASTC, ONE - TAU, C, 1) ELSE * diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f index fc20dd21e3..95a8b319b5 100644 --- a/SRC/dlarf1l.f +++ b/SRC/dlarf1l.f @@ -8,7 +8,7 @@ * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download DLARF + dependencies +*> Download DLARF1L + dependencies *> *> [TGZ] *> @@ -147,7 +147,7 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT - INTEGER I, J, FIRSTV, LASTV, LASTC + INTEGER I, FIRSTV, LASTV, LASTC * .. * .. External Subroutines .. EXTERNAL DGEMV, DGER @@ -183,8 +183,6 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Scan for the last non-zero row in C(:,1:lastv). LASTC = ILADLR(M, LASTV, C, LDC) END IF - ELSE - RETURN END IF ! Note that lastc.eq.0 renders the BLAS operations null; no special ! case is needed at this level. diff --git a/SRC/la_constants.mod b/SRC/la_constants.mod new file mode 100644 index 0000000000000000000000000000000000000000..b8006a566979124de13911e5efcec9baedca2f6f GIT binary patch literal 1563 zcmV+$2ITo4iwFP!000001La%abD~HPe&?^4H_U@u12dq$t!3Cf>k>>Eb9Z|$78@{2 zoxvQC+b#e4>lqk8;-Hp5q>}7bXyr$L-80kQbT?nW%;t;v*hbGA_jT=||GY5rHvv*L zLq(6F=fs|iR^jFut)1oLCWvAuh@(%d5mtJ=D^$lnMI2lyaJc8cj?^W4Hs}^FeYy;( ziqxJT#GxNV{^J!$D$-D|cQ>C+tm}ulg&yqR?b)Ape`+r*d!Y!Coglu;{$lw3@?cLE z)0vH|8|xOX7~h~fxQ{ZP&&S`EvxkK>UtU{xmVIs6lW&Q>a|_O*{Bn%A01&v40Mc`i zSix5cDZ?0E4ve831}VXyNPYDDwI4j4s6K)}^QnD5op1n3C4gfMuk6v77Bohnu>l(Y zaMml(usDcwg~#*ptp!giD_pd9rtb9i?q)ifF8cT5KP>(L{;bIiKDYkL2857{swtD1 zeZLsPoe!L@;!i`&e?DWCNjR6-JmJW8L7D(^6L_7%sHLd1BQXvD<4fqR{9nz&{0;6h zVK>o)=GiB`UXD*;_x=hWirFLN6rjd|6l_y4P4N**`4P!A8d4|x4rq@lhG2@V7j8P` zZ+zmI9wF8J?mq>u&yB*YUI7dKmYoP-C@%hd)+v#?PJ;_v&wu(6Up%VeE-FoqNn@B^ zqOKw8YZZP1-r=q`ui?dmqDQ+4IEdSLC~Uw_SPlvJi0eQ39K=P^5v|NeG$15y)3Le^ zCum2HD_|e)OQU#1Y!$&}H`cz1Mb)RPLphWIgYuC`#stevKvn9in!_rb%9dK6(R$n&^IWER7B4D?jL!}Wa zN5u$6^t|pMW$)`$zGmo*Wkdk%;!%|sLQ*jV84rm&I0UO!cb!p@*t`72!a0^)>5P%Y zKSJ;F2_rcg6Jr)}2j>%n;DH-VZZqzflnAIlD60>#7j{!!QGZxgAA)S?xc7kM5F=^N#S(BJpxXj$k%X#(S&wNC3SHgOB+g)D zp`Fr5UF3Qs2gB$>J0+32sE?d57>qEqQVKZ}i*u0187$tnR0BB^3^@qKWL%(~;zwQc zUz5*&lW~DoiXJtAsc;PA0j*R!>hep4TNnvwr^<0An8W1_69~YzwGMu zL%h&}ky&`}1EWFq>H|i@!W#k@jk3miFnQ8u&l06@tYxj-Am~{WGzdiW;=-|!bg{yb znKyy5TMhC)NRWnk{~$=CLfaiiSr=aNZPLBQ`6NzTzEb87-;u1R2n3q-;(%a?9u_z@ z^X?Cj28!sL0AVQF4d8er3iTNAqP?&Xt9I`WAo$Es^87wVJl&t>$3fCXf*FoUmY@ZJ zW*JTpj5I|E=Hcl={^TUvmU)V2tTMZa6i8wjosSB) literal 0 HcmV?d00001 diff --git a/SRC/la_xisnan.mod b/SRC/la_xisnan.mod new file mode 100644 index 0000000000000000000000000000000000000000..1b5610476a459fda31282807dce61ffd51c6d396 GIT binary patch literal 321 zcmV-H0lxkpiwFP!000001I3fcYQr!PhVOccxye4HC|(lx=z0mJwp4`O(o-?D3xUK2 zyDfSAYKfPmY3U(QB!Ncr!+iQR+Qf|K+^4W_tB+j`pLN%7+XnE`#qiqI<$GPhTi5Pk zSH2v!eN#3!@hw4yVZt>g8a5^pTd@o*3aL66@K_Ur1@@>JmIb)FAjKG#U>Faa1yNY= z2nu>n*%MtPG>>Qw84HUvTF5+vQIMiz9*7umL4!PDRAZ%VlLUSWj>-`jV!^A<3|Hx_ z=`uoPqSYzScQ%c14mO06Y=oM@X{I@?978ObWUL(}lf??j2HgLjS8K`RDV=@hl?(Ww zIK*@W%A?N{|L%8l;DR|QEVArbqwq-7^^P1W_{kj2;LRA;*JN=1&LA6lY-b``YW_?F TR@3_t@fFY)*n0O@xdQ+IFY=W< literal 0 HcmV?d00001 From 63461c17538551721c2fd2980abcf1313eff8143 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Sat, 15 Jun 2024 10:19:13 -0400 Subject: [PATCH 23/28] updating documentation, using xLARF1y where applicable, and removing some extraneous variables --- SRC/la_constants.mod | Bin 1563 -> 0 bytes SRC/la_xisnan.mod | Bin 321 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 SRC/la_constants.mod delete mode 100644 SRC/la_xisnan.mod diff --git a/SRC/la_constants.mod b/SRC/la_constants.mod deleted file mode 100644 index b8006a566979124de13911e5efcec9baedca2f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563 zcmV+$2ITo4iwFP!000001La%abD~HPe&?^4H_U@u12dq$t!3Cf>k>>Eb9Z|$78@{2 zoxvQC+b#e4>lqk8;-Hp5q>}7bXyr$L-80kQbT?nW%;t;v*hbGA_jT=||GY5rHvv*L zLq(6F=fs|iR^jFut)1oLCWvAuh@(%d5mtJ=D^$lnMI2lyaJc8cj?^W4Hs}^FeYy;( ziqxJT#GxNV{^J!$D$-D|cQ>C+tm}ulg&yqR?b)Ape`+r*d!Y!Coglu;{$lw3@?cLE z)0vH|8|xOX7~h~fxQ{ZP&&S`EvxkK>UtU{xmVIs6lW&Q>a|_O*{Bn%A01&v40Mc`i zSix5cDZ?0E4ve831}VXyNPYDDwI4j4s6K)}^QnD5op1n3C4gfMuk6v77Bohnu>l(Y zaMml(usDcwg~#*ptp!giD_pd9rtb9i?q)ifF8cT5KP>(L{;bIiKDYkL2857{swtD1 zeZLsPoe!L@;!i`&e?DWCNjR6-JmJW8L7D(^6L_7%sHLd1BQXvD<4fqR{9nz&{0;6h zVK>o)=GiB`UXD*;_x=hWirFLN6rjd|6l_y4P4N**`4P!A8d4|x4rq@lhG2@V7j8P` zZ+zmI9wF8J?mq>u&yB*YUI7dKmYoP-C@%hd)+v#?PJ;_v&wu(6Up%VeE-FoqNn@B^ zqOKw8YZZP1-r=q`ui?dmqDQ+4IEdSLC~Uw_SPlvJi0eQ39K=P^5v|NeG$15y)3Le^ zCum2HD_|e)OQU#1Y!$&}H`cz1Mb)RPLphWIgYuC`#stevKvn9in!_rb%9dK6(R$n&^IWER7B4D?jL!}Wa zN5u$6^t|pMW$)`$zGmo*Wkdk%;!%|sLQ*jV84rm&I0UO!cb!p@*t`72!a0^)>5P%Y zKSJ;F2_rcg6Jr)}2j>%n;DH-VZZqzflnAIlD60>#7j{!!QGZxgAA)S?xc7kM5F=^N#S(BJpxXj$k%X#(S&wNC3SHgOB+g)D zp`Fr5UF3Qs2gB$>J0+32sE?d57>qEqQVKZ}i*u0187$tnR0BB^3^@qKWL%(~;zwQc zUz5*&lW~DoiXJtAsc;PA0j*R!>hep4TNnvwr^<0An8W1_69~YzwGMu zL%h&}ky&`}1EWFq>H|i@!W#k@jk3miFnQ8u&l06@tYxj-Am~{WGzdiW;=-|!bg{yb znKyy5TMhC)NRWnk{~$=CLfaiiSr=aNZPLBQ`6NzTzEb87-;u1R2n3q-;(%a?9u_z@ z^X?Cj28!sL0AVQF4d8er3iTNAqP?&Xt9I`WAo$Es^87wVJl&t>$3fCXf*FoUmY@ZJ zW*JTpj5I|E=Hcl={^TUvmU)V2tTMZa6i8wjosSB) diff --git a/SRC/la_xisnan.mod b/SRC/la_xisnan.mod deleted file mode 100644 index 1b5610476a459fda31282807dce61ffd51c6d396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxkpiwFP!000001I3fcYQr!PhVOccxye4HC|(lx=z0mJwp4`O(o-?D3xUK2 zyDfSAYKfPmY3U(QB!Ncr!+iQR+Qf|K+^4W_tB+j`pLN%7+XnE`#qiqI<$GPhTi5Pk zSH2v!eN#3!@hw4yVZt>g8a5^pTd@o*3aL66@K_Ur1@@>JmIb)FAjKG#U>Faa1yNY= z2nu>n*%MtPG>>Qw84HUvTF5+vQIMiz9*7umL4!PDRAZ%VlLUSWj>-`jV!^A<3|Hx_ z=`uoPqSYzScQ%c14mO06Y=oM@X{I@?978ObWUL(}lf??j2HgLjS8K`RDV=@hl?(Ww zIK*@W%A?N{|L%8l;DR|QEVArbqwq-7^^P1W_{kj2;LRA;*JN=1&LA6lY-b``YW_?F TR@3_t@fFY)*n0O@xdQ+IFY=W< From 12075f5c4a6561341b1ff29a6d9aef4d874552b0 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Sat, 15 Jun 2024 10:21:35 -0400 Subject: [PATCH 24/28] updating documentation, using xLARF1y where applicable, and removing some extraneous variables --- SRC/zlarf1f.f | 2 ++ SRC/zlarf1l.f | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index 8598259b30..936275b5f6 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -185,6 +185,8 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. * .. External Subroutines .. EXTERNAL ZGEMV, ZGERC, ZSCAL +* .. Intrinsic Functions .. + INTRINSIC DCONJG * .. * .. External Functions .. LOGICAL LSAME diff --git a/SRC/zlarf1l.f b/SRC/zlarf1l.f index 13d0cdba92..5bb6eac156 100644 --- a/SRC/zlarf1l.f +++ b/SRC/zlarf1l.f @@ -158,7 +158,7 @@ SUBROUTINE ZLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) EXTERNAL ZGEMV, ZGERC, ZSCAL * .. * .. Intrinsic Functions .. - INTRINSIC CONJG + INTRINSIC DCONJG * .. * .. External Functions .. LOGICAL LSAME From b564666e6cb992f4e26d8f6ec15724033ce27f7d Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 18 Jun 2024 10:43:28 -0400 Subject: [PATCH 25/28] adding macro to lapack_64.h --- SRC/la_constants.mod | Bin 0 -> 1563 bytes SRC/la_xisnan.mod | Bin 0 -> 321 bytes SRC/lapack_64.h | 4 ++++ 3 files changed, 4 insertions(+) create mode 100644 SRC/la_constants.mod create mode 100644 SRC/la_xisnan.mod diff --git a/SRC/la_constants.mod b/SRC/la_constants.mod new file mode 100644 index 0000000000000000000000000000000000000000..b8006a566979124de13911e5efcec9baedca2f6f GIT binary patch literal 1563 zcmV+$2ITo4iwFP!000001La%abD~HPe&?^4H_U@u12dq$t!3Cf>k>>Eb9Z|$78@{2 zoxvQC+b#e4>lqk8;-Hp5q>}7bXyr$L-80kQbT?nW%;t;v*hbGA_jT=||GY5rHvv*L zLq(6F=fs|iR^jFut)1oLCWvAuh@(%d5mtJ=D^$lnMI2lyaJc8cj?^W4Hs}^FeYy;( ziqxJT#GxNV{^J!$D$-D|cQ>C+tm}ulg&yqR?b)Ape`+r*d!Y!Coglu;{$lw3@?cLE z)0vH|8|xOX7~h~fxQ{ZP&&S`EvxkK>UtU{xmVIs6lW&Q>a|_O*{Bn%A01&v40Mc`i zSix5cDZ?0E4ve831}VXyNPYDDwI4j4s6K)}^QnD5op1n3C4gfMuk6v77Bohnu>l(Y zaMml(usDcwg~#*ptp!giD_pd9rtb9i?q)ifF8cT5KP>(L{;bIiKDYkL2857{swtD1 zeZLsPoe!L@;!i`&e?DWCNjR6-JmJW8L7D(^6L_7%sHLd1BQXvD<4fqR{9nz&{0;6h zVK>o)=GiB`UXD*;_x=hWirFLN6rjd|6l_y4P4N**`4P!A8d4|x4rq@lhG2@V7j8P` zZ+zmI9wF8J?mq>u&yB*YUI7dKmYoP-C@%hd)+v#?PJ;_v&wu(6Up%VeE-FoqNn@B^ zqOKw8YZZP1-r=q`ui?dmqDQ+4IEdSLC~Uw_SPlvJi0eQ39K=P^5v|NeG$15y)3Le^ zCum2HD_|e)OQU#1Y!$&}H`cz1Mb)RPLphWIgYuC`#stevKvn9in!_rb%9dK6(R$n&^IWER7B4D?jL!}Wa zN5u$6^t|pMW$)`$zGmo*Wkdk%;!%|sLQ*jV84rm&I0UO!cb!p@*t`72!a0^)>5P%Y zKSJ;F2_rcg6Jr)}2j>%n;DH-VZZqzflnAIlD60>#7j{!!QGZxgAA)S?xc7kM5F=^N#S(BJpxXj$k%X#(S&wNC3SHgOB+g)D zp`Fr5UF3Qs2gB$>J0+32sE?d57>qEqQVKZ}i*u0187$tnR0BB^3^@qKWL%(~;zwQc zUz5*&lW~DoiXJtAsc;PA0j*R!>hep4TNnvwr^<0An8W1_69~YzwGMu zL%h&}ky&`}1EWFq>H|i@!W#k@jk3miFnQ8u&l06@tYxj-Am~{WGzdiW;=-|!bg{yb znKyy5TMhC)NRWnk{~$=CLfaiiSr=aNZPLBQ`6NzTzEb87-;u1R2n3q-;(%a?9u_z@ z^X?Cj28!sL0AVQF4d8er3iTNAqP?&Xt9I`WAo$Es^87wVJl&t>$3fCXf*FoUmY@ZJ zW*JTpj5I|E=Hcl={^TUvmU)V2tTMZa6i8wjosSB) literal 0 HcmV?d00001 diff --git a/SRC/la_xisnan.mod b/SRC/la_xisnan.mod new file mode 100644 index 0000000000000000000000000000000000000000..1b5610476a459fda31282807dce61ffd51c6d396 GIT binary patch literal 321 zcmV-H0lxkpiwFP!000001I3fcYQr!PhVOccxye4HC|(lx=z0mJwp4`O(o-?D3xUK2 zyDfSAYKfPmY3U(QB!Ncr!+iQR+Qf|K+^4W_tB+j`pLN%7+XnE`#qiqI<$GPhTi5Pk zSH2v!eN#3!@hw4yVZt>g8a5^pTd@o*3aL66@K_Ur1@@>JmIb)FAjKG#U>Faa1yNY= z2nu>n*%MtPG>>Qw84HUvTF5+vQIMiz9*7umL4!PDRAZ%VlLUSWj>-`jV!^A<3|Hx_ z=`uoPqSYzScQ%c14mO06Y=oM@X{I@?978ObWUL(}lf??j2HgLjS8K`RDV=@hl?(Ww zIK*@W%A?N{|L%8l;DR|QEVArbqwq-7^^P1W_{kj2;LRA;*JN=1&LA6lY-b``YW_?F TR@3_t@fFY)*n0O@xdQ+IFY=W< literal 0 HcmV?d00001 diff --git a/SRC/lapack_64.h b/SRC/lapack_64.h index 8576805b2e..f46aa925f1 100644 --- a/SRC/lapack_64.h +++ b/SRC/lapack_64.h @@ -794,6 +794,8 @@ #define DLAR1V DLAR1V_64 #define DLAR2V DLAR2V_64 #define DLARF DLARF_64 +#define DLARF1F DLARF1F_64 +#define DLARF1L DLARF1L_64 #define DLARFB DLARFB_64 #define DLARFB_GETT DLARFB_GETT_64 #define DLARFG DLARFG_64 @@ -2025,6 +2027,8 @@ #define ZLAR2V ZLAR2V_64 #define ZLARCM ZLARCM_64 #define ZLARF ZLARF_64 +#define ZLARF1F ZLARF1F_64 +#define ZLARF1L ZLARF1L_64 #define ZLARFB ZLARFB_64 #define ZLARFB_GETT ZLARFB_GETT_64 #define ZLARFG ZLARFG_64 From 4a5139ee3fc5778db002e95b2f34cdb2287ed4ae Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Tue, 18 Jun 2024 10:43:44 -0400 Subject: [PATCH 26/28] adding macro to lapack_64.h --- SRC/la_constants.mod | Bin 1563 -> 0 bytes SRC/la_xisnan.mod | Bin 321 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 SRC/la_constants.mod delete mode 100644 SRC/la_xisnan.mod diff --git a/SRC/la_constants.mod b/SRC/la_constants.mod deleted file mode 100644 index b8006a566979124de13911e5efcec9baedca2f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1563 zcmV+$2ITo4iwFP!000001La%abD~HPe&?^4H_U@u12dq$t!3Cf>k>>Eb9Z|$78@{2 zoxvQC+b#e4>lqk8;-Hp5q>}7bXyr$L-80kQbT?nW%;t;v*hbGA_jT=||GY5rHvv*L zLq(6F=fs|iR^jFut)1oLCWvAuh@(%d5mtJ=D^$lnMI2lyaJc8cj?^W4Hs}^FeYy;( ziqxJT#GxNV{^J!$D$-D|cQ>C+tm}ulg&yqR?b)Ape`+r*d!Y!Coglu;{$lw3@?cLE z)0vH|8|xOX7~h~fxQ{ZP&&S`EvxkK>UtU{xmVIs6lW&Q>a|_O*{Bn%A01&v40Mc`i zSix5cDZ?0E4ve831}VXyNPYDDwI4j4s6K)}^QnD5op1n3C4gfMuk6v77Bohnu>l(Y zaMml(usDcwg~#*ptp!giD_pd9rtb9i?q)ifF8cT5KP>(L{;bIiKDYkL2857{swtD1 zeZLsPoe!L@;!i`&e?DWCNjR6-JmJW8L7D(^6L_7%sHLd1BQXvD<4fqR{9nz&{0;6h zVK>o)=GiB`UXD*;_x=hWirFLN6rjd|6l_y4P4N**`4P!A8d4|x4rq@lhG2@V7j8P` zZ+zmI9wF8J?mq>u&yB*YUI7dKmYoP-C@%hd)+v#?PJ;_v&wu(6Up%VeE-FoqNn@B^ zqOKw8YZZP1-r=q`ui?dmqDQ+4IEdSLC~Uw_SPlvJi0eQ39K=P^5v|NeG$15y)3Le^ zCum2HD_|e)OQU#1Y!$&}H`cz1Mb)RPLphWIgYuC`#stevKvn9in!_rb%9dK6(R$n&^IWER7B4D?jL!}Wa zN5u$6^t|pMW$)`$zGmo*Wkdk%;!%|sLQ*jV84rm&I0UO!cb!p@*t`72!a0^)>5P%Y zKSJ;F2_rcg6Jr)}2j>%n;DH-VZZqzflnAIlD60>#7j{!!QGZxgAA)S?xc7kM5F=^N#S(BJpxXj$k%X#(S&wNC3SHgOB+g)D zp`Fr5UF3Qs2gB$>J0+32sE?d57>qEqQVKZ}i*u0187$tnR0BB^3^@qKWL%(~;zwQc zUz5*&lW~DoiXJtAsc;PA0j*R!>hep4TNnvwr^<0An8W1_69~YzwGMu zL%h&}ky&`}1EWFq>H|i@!W#k@jk3miFnQ8u&l06@tYxj-Am~{WGzdiW;=-|!bg{yb znKyy5TMhC)NRWnk{~$=CLfaiiSr=aNZPLBQ`6NzTzEb87-;u1R2n3q-;(%a?9u_z@ z^X?Cj28!sL0AVQF4d8er3iTNAqP?&Xt9I`WAo$Es^87wVJl&t>$3fCXf*FoUmY@ZJ zW*JTpj5I|E=Hcl={^TUvmU)V2tTMZa6i8wjosSB) diff --git a/SRC/la_xisnan.mod b/SRC/la_xisnan.mod deleted file mode 100644 index 1b5610476a459fda31282807dce61ffd51c6d396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxkpiwFP!000001I3fcYQr!PhVOccxye4HC|(lx=z0mJwp4`O(o-?D3xUK2 zyDfSAYKfPmY3U(QB!Ncr!+iQR+Qf|K+^4W_tB+j`pLN%7+XnE`#qiqI<$GPhTi5Pk zSH2v!eN#3!@hw4yVZt>g8a5^pTd@o*3aL66@K_Ur1@@>JmIb)FAjKG#U>Faa1yNY= z2nu>n*%MtPG>>Qw84HUvTF5+vQIMiz9*7umL4!PDRAZ%VlLUSWj>-`jV!^A<3|Hx_ z=`uoPqSYzScQ%c14mO06Y=oM@X{I@?978ObWUL(}lf??j2HgLjS8K`RDV=@hl?(Ww zIK*@W%A?N{|L%8l;DR|QEVArbqwq-7^^P1W_{kj2;LRA;*JN=1&LA6lY-b``YW_?F TR@3_t@fFY)*n0O@xdQ+IFY=W< From 57b267c90204cf6f84fb28a538c894369cde375e Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 19 Jun 2024 22:09:04 -0400 Subject: [PATCH 27/28] fixing compilation errors due to not checking for lastc=0 --- SRC/dlarf1f.f | 9 +++++---- SRC/dlarf1l.f | 7 +++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/SRC/dlarf1f.f b/SRC/dlarf1f.f index f16cdcf9c5..104122999b 100644 --- a/SRC/dlarf1f.f +++ b/SRC/dlarf1f.f @@ -175,15 +175,13 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) - INTEGER IONE - PARAMETER ( IONE = 1 ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT INTEGER I, LASTV, LASTC * .. * .. External Subroutines .. - EXTERNAL DGEMV, DGER + EXTERNAL DGEMV, DGER, DAXPY, DSCAL * .. * .. External Functions .. LOGICAL LSAME @@ -211,7 +209,7 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Look for the last non-zero row in V. ! Since we are assuming that V(1) = 1, and it is not stored, so we ! shouldn't access it. - DO WHILE( LASTV.GE.2 .AND. V( I ).EQ.ZERO ) + DO WHILE( LASTV.GT.1 .AND. V( I ).EQ.ZERO ) LASTV = LASTV - 1 I = I - INCV END DO @@ -223,6 +221,9 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) LASTC = ILADLR(M, LASTV, C, LDC) END IF END IF + IF( LASTC.EQ.0 ) THEN + RETURN + END IF IF( APPLYLEFT ) THEN * * Form H * C diff --git a/SRC/dlarf1l.f b/SRC/dlarf1l.f index 95a8b319b5..80a486f79c 100644 --- a/SRC/dlarf1l.f +++ b/SRC/dlarf1l.f @@ -142,8 +142,6 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) - INTEGER IONE - PARAMETER ( IONE = 1 ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT @@ -184,8 +182,9 @@ SUBROUTINE DLARF1L( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) LASTC = ILADLR(M, LASTV, C, LDC) END IF END IF -! Note that lastc.eq.0 renders the BLAS operations null; no special -! case is needed at this level. + IF( LASTC.EQ.0 ) THEN + RETURN + END IF IF( APPLYLEFT ) THEN * * Form H * C From 9a51a35c8b3b7bd99cfa3919c4238df37e0013b5 Mon Sep 17 00:00:00 2001 From: Johnathan Rhyne Date: Wed, 19 Jun 2024 23:36:02 -0400 Subject: [PATCH 28/28] fixing compilation errors in test suite --- SRC/dorbdb.f | 28 +++++++++++++--------------- SRC/dorbdb1.f | 5 +++-- SRC/dorbdb2.f | 4 ++-- SRC/dorbdb4.f | 13 ++++++------- SRC/zlarf1f.f | 32 +++++++++++++++++--------------- 5 files changed, 41 insertions(+), 41 deletions(-) diff --git a/SRC/dorbdb.f b/SRC/dorbdb.f index 2def0a5147..c796db13fd 100644 --- a/SRC/dorbdb.f +++ b/SRC/dorbdb.f @@ -440,13 +440,12 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, $ X12(I,I), LDX12, WORK ) END IF IF ( Q .GT. I ) THEN - CALL DLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, TAUP2(I), - $ X21(I,I+1), LDX21, WORK ) + CALL DLARF1F( 'L', M-P-I+1, Q-I, X21(I,I), 1, + $ TAUP2(I), X21(I,I+1), LDX21, WORK ) END IF IF ( M-Q+1 .GT. I ) THEN CALL DLARF1F( 'L', M-P-I+1, M-Q-I+1, X21(I,I), 1, - $ TAUP2(I), - $ X22(I,I), LDX22, WORK ) + $ TAUP2(I), X22(I,I), LDX22, WORK ) END IF * IF( I .LT. Q ) THEN @@ -638,15 +637,14 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, IF( I .LT. Q ) THEN CALL DLARF1F( 'L', Q-I, P-I, X11(I+1,I), 1, TAUQ1(I), $ X11(I+1,I+1), LDX11, WORK ) - CALL DLARF1F( 'L', Q-I, M-P-I, X11(I+1,I), 1, TAUQ1(I), - $ X21(I+1,I+1), LDX21, WORK ) + CALL DLARF1F( 'L', Q-I, M-P-I, X11(I+1,I), 1, + $ TAUQ1(I), X21(I+1,I+1), LDX21, WORK ) END IF CALL DLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, TAUQ2(I), - $ X12(I,I+1), LDX12, WORK ) + $ X12(I,I+1), LDX12, WORK ) IF ( M-P-I .GT. 0 ) THEN CALL DLARF1F( 'L', M-Q-I+1, M-P-I, X12(I,I), 1, - $ TAUQ2(I), - $ X22(I,I+1), LDX22, WORK ) + $ TAUQ2(I), X22(I,I+1), LDX22, WORK ) END IF * END DO @@ -660,13 +658,12 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, $ TAUQ2(I) ) * IF ( P .GT. I ) THEN - CALL DLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, TAUQ2(I), - $ X12(I,I+1), LDX12, WORK ) + CALL DLARF1F( 'L', M-Q-I+1, P-I, X12(I,I), 1, + $ TAUQ2(I), X12(I,I+1), LDX12, WORK ) END IF IF( M-P-Q .GE. 1 ) $ CALL DLARF1F( 'L', M-Q-I+1, M-P-Q, X12(I,I), 1, - $ TAUQ2(I), - $ X22(I,Q+1), LDX22, WORK ) + $ TAUQ2(I), X22(I,Q+1), LDX22, WORK ) * END DO * @@ -683,8 +680,9 @@ SUBROUTINE DORBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, CALL DLARFGP( M-P-Q-I+1, X22(P+I,Q+I), X22(P+I+1,Q+I), $ 1, $ TAUQ2(P+I) ) - CALL DLARF1F( 'L', M-P-Q-I+1, M-P-Q-I, X22(P+I,Q+I), 1, - $ TAUQ2(P+I), X22(P+I,Q+I+1), LDX22, WORK ) + CALL DLARF1F( 'L', M-P-Q-I+1, M-P-Q-I, X22(P+I,Q+I), + $ 1, TAUQ2(P+I), X22(P+I,Q+I+1), LDX22, + $ WORK ) END IF * END DO diff --git a/SRC/dorbdb1.f b/SRC/dorbdb1.f index a4095e9096..1972ef4bc4 100644 --- a/SRC/dorbdb1.f +++ b/SRC/dorbdb1.f @@ -301,8 +301,9 @@ SUBROUTINE DORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA, S = X21(I,I+1) CALL DLARF1F( 'R', P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), $ X11(I+1,I+1), LDX11, WORK(ILARF) ) - CALL DLARF1F( 'R', M-P-I, Q-I, X21(I,I+1), LDX21, TAUQ1(I), - $ X21(I+1,I+1), LDX21, WORK(ILARF) ) + CALL DLARF1F( 'R', M-P-I, Q-I, X21(I,I+1), LDX21, + $ TAUQ1(I), X21(I+1,I+1), LDX21, + $ WORK(ILARF) ) C = SQRT( DNRM2( P-I, X11(I+1,I+1), 1 )**2 $ + DNRM2( M-P-I, X21(I+1,I+1), 1 )**2 ) PHI(I) = ATAN2( S, C ) diff --git a/SRC/dorbdb2.f b/SRC/dorbdb2.f index 56204a0b6c..e66a40d6b2 100644 --- a/SRC/dorbdb2.f +++ b/SRC/dorbdb2.f @@ -289,8 +289,8 @@ SUBROUTINE DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA, C = X11(I,I) CALL DLARF1F( 'R', P-I, Q-I+1, X11(I,I), LDX11, TAUQ1(I), $ X11(I+1,I), LDX11, WORK(ILARF) ) - CALL DLARF1F( 'R', M-P-I+1, Q-I+1, X11(I,I), LDX11, TAUQ1(I), - $ X21(I,I), LDX21, WORK(ILARF) ) + CALL DLARF1F( 'R', M-P-I+1, Q-I+1, X11(I,I), LDX11, + $ TAUQ1(I), X21(I,I), LDX21, WORK(ILARF) ) S = SQRT( DNRM2( P-I, X11(I+1,I), 1 )**2 $ + DNRM2( M-P-I+1, X21(I,I), 1 )**2 ) THETA(I) = ATAN2( S, C ) diff --git a/SRC/dorbdb4.f b/SRC/dorbdb4.f index 14dca198ea..446ccc6862 100644 --- a/SRC/dorbdb4.f +++ b/SRC/dorbdb4.f @@ -308,10 +308,9 @@ SUBROUTINE DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, C = COS( THETA(I) ) S = SIN( THETA(I) ) CALL DLARF1F( 'L', P, Q, PHANTOM(1), 1, TAUP1(1), X11, - $ LDX11, - $ WORK(ILARF) ) - CALL DLARF1F( 'L', M-P, Q, PHANTOM(P+1), 1, TAUP2(1), X21, - $ LDX21, WORK(ILARF) ) + $ LDX11, WORK(ILARF) ) + CALL DLARF1F( 'L', M-P, Q, PHANTOM(P+1), 1, TAUP2(1), + $ X21, LDX21, WORK(ILARF) ) ELSE CALL DORBDB5( P-I+1, M-P-I+1, Q-I+1, X11(I,I-1), 1, $ X21(I,I-1), 1, X11(I,I), LDX11, X21(I,I), @@ -325,9 +324,9 @@ SUBROUTINE DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA, C = COS( THETA(I) ) S = SIN( THETA(I) ) CALL DLARF1F( 'L', P-I+1, Q-I+1, X11(I,I-1), 1, TAUP1(I), - $ X11(I,I), LDX11, WORK(ILARF) ) - CALL DLARF1F( 'L', M-P-I+1, Q-I+1, X21(I,I-1), 1, TAUP2(I), - $ X21(I,I), LDX21, WORK(ILARF) ) + $ X11(I,I), LDX11, WORK(ILARF) ) + CALL DLARF1F( 'L', M-P-I+1, Q-I+1, X21(I,I-1), 1, + $ TAUP2(I), X21(I,I), LDX21, WORK(ILARF) ) END IF * CALL DROT( Q-I+1, X11(I,I), LDX11, X21(I,I), LDX21, S, -C ) diff --git a/SRC/zlarf1f.f b/SRC/zlarf1f.f index 936275b5f6..8203d4f6c0 100644 --- a/SRC/zlarf1f.f +++ b/SRC/zlarf1f.f @@ -176,8 +176,6 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) - INTEGER IONE - PARAMETER ( IONE = 1 ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT @@ -225,8 +223,8 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! Scan for the last non-zero row in C(:,1:lastv). LASTC = ILAZLR(M, LASTV, C, LDC) END IF - ELSE -! TAU is 0, so H = I. Meaning HC = C = CH. + END IF + IF( LASTC.EQ.0 ) THEN RETURN END IF IF( APPLYLEFT ) THEN @@ -246,12 +244,14 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! C = [ C_1 C_2 ]**T, v = [1 v_2]**T ! w = C_1**H + C_2**Hv_2 ! w = C_2**Hv_2 - CALL ZGEMV( 'Conj', LASTV-1, LASTC, ONE, C(1+1,1), LDC, - $ V(1+INCV), INCV, ZERO, WORK, 1) - ! w += C_1**H - ! This is essentially a zaxpyc - DO J = 1, LASTC - WORK(J) = WORK(J) + DCONJG(C(1,J)) + CALL ZGEMV( 'Conjugate transpose', LASTV - 1, + $ LASTC, ONE, C( 1+1, 1 ), LDC, V( 1 + INCV ), + $ INCV, ZERO, WORK, 1 ) +* +* w(1:lastc,1) += v(1,1) * C(1,1:lastc)**H +* + DO I = 1, LASTC + WORK( I ) = WORK( I ) + DCONJG( C( 1, I ) ) END DO * * C(1:lastv,1:lastc) := C(...) - tau * v(1:lastv,1) * w(1:lastc,1)**H @@ -259,12 +259,14 @@ SUBROUTINE ZLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) ! C(1, 1:lastc) := C(...) - tau * v(1,1) * w(1:lastc,1)**H ! = C(...) - tau * Conj(w(1:lastc,1)) ! This is essentially a zaxpyc - DO J = 1, LASTC - C(1,J) = C(1,J) - TAU * DCONJG(WORK(J)) + DO I = 1, LASTC + C( 1, I ) = C( 1, I ) - TAU * DCONJG( WORK( I ) ) END DO - ! C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)*w(1:lastc,1)**H - CALL ZGERC(LASTV-1, LASTC, -TAU, V(1+INCV), INCV, WORK, - $ 1, C(1+1,1), LDC) +* +* C(2:lastv,1:lastc) += - tau * v(2:lastv,1) * w(1:lastc,1)**H +* + CALL ZGERC( LASTV - 1, LASTC, -TAU, V( 1 + INCV ), + $ INCV, WORK, 1, C( 1+1, 1 ), LDC ) END IF ELSE *