diff options
author | julie <julielangou@users.noreply.github.com> | 2011-09-30 18:34:50 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2011-09-30 18:34:50 +0000 |
commit | 13acf3d65eb8df4cb8df221509bf0178396dcff1 (patch) | |
tree | e3adc3e2fab395b82d4e1bc5111ad5a74afe4be3 /INSTALL | |
parent | d3718a28ef2fad11da862ba0782d39ce506d249f (diff) | |
download | lapack-13acf3d65eb8df4cb8df221509bf0178396dcff1.tar.gz lapack-13acf3d65eb8df4cb8df221509bf0178396dcff1.tar.bz2 lapack-13acf3d65eb8df4cb8df221509bf0178396dcff1.zip |
Comments fix to be able to generate the new layout and the corresponding Doxygen documentation
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL/dlamch.f | 224 | ||||
-rw-r--r-- | INSTALL/dlamchtst.f | 4 | ||||
-rw-r--r-- | INSTALL/dsecndtst.f | 4 | ||||
-rw-r--r-- | INSTALL/lsame.f | 1 | ||||
-rw-r--r-- | INSTALL/lsametst.f | 2 | ||||
-rw-r--r-- | INSTALL/second_EXT_ETIME.f | 2 | ||||
-rw-r--r-- | INSTALL/second_EXT_ETIME_.f | 2 | ||||
-rw-r--r-- | INSTALL/second_INT_CPU_TIME.f | 2 | ||||
-rw-r--r-- | INSTALL/second_INT_ETIME.f | 2 | ||||
-rw-r--r-- | INSTALL/second_NONE.f | 2 | ||||
-rw-r--r-- | INSTALL/secondtst.f | 4 | ||||
-rw-r--r-- | INSTALL/slamch.f | 223 | ||||
-rw-r--r-- | INSTALL/slamchtst.f | 4 | ||||
-rw-r--r-- | INSTALL/tstiee.f | 492 |
14 files changed, 508 insertions, 460 deletions
diff --git a/INSTALL/dlamch.f b/INSTALL/dlamch.f index 74a1a14e..1c8b3687 100644 --- a/INSTALL/dlamch.f +++ b/INSTALL/dlamch.f @@ -1,91 +1,96 @@ +C> \brief \b DLAMCH +C>\details +C> \b Purpose: +C>\verbatim +C> +C> DLAMCH determines double precision machine parameters. +C> +C>\endverbatim +C> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. +C> \date November 2011 +C> \ingroup auxOTHERauxiliary +C> +C> \param[in] CMACH +C> \verbatim +C> Specifies the value to be returned by DLAMCH: +C> = 'E' or 'e', DLAMCH := eps +C> = 'S' or 's , DLAMCH := sfmin +C> = 'B' or 'b', DLAMCH := base +C> = 'P' or 'p', DLAMCH := eps*base +C> = 'N' or 'n', DLAMCH := t +C> = 'R' or 'r', DLAMCH := rnd +C> = 'M' or 'm', DLAMCH := emin +C> = 'U' or 'u', DLAMCH := rmin +C> = 'L' or 'l', DLAMCH := emax +C> = 'O' or 'o', DLAMCH := rmax +C> where +C> eps = relative machine precision +C> sfmin = safe minimum, such that 1/sfmin does not overflow +C> base = base of the machine +C> prec = eps*base +C> t = number of (base) digits in the mantissa +C> rnd = 1.0 when rounding occurs in addition, 0.0 otherwise +C> emin = minimum exponent before (gradual) underflow +C> rmin = underflow threshold - base**(emin-1) +C> emax = largest exponent before overflow +C> rmax = overflow threshold - (base**emax)*(1-eps) +C> \endverbatim +C> DOUBLE PRECISION FUNCTION DLAMCH( CMACH ) -* -* -- LAPACK auxiliary routine (version 3.3.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* Based on LAPACK DLAMCH but with Fortran 95 query functions -* See: http://www.cs.utk.edu/~luszczek/lapack/lamch.html -* and http://www.netlib.org/lapack-dev/lapack-coding/program-style.html#id2537289 -* July 2010 -* -* .. Scalar Arguments .. +C +C -- LAPACK auxiliary routine (version 3.3.0) -- +C -- LAPACK is a software package provided by Univ. of Tennessee, -- +C -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +C November 2011 +C +C .. Scalar Arguments .. CHARACTER CMACH -* .. -* -* Purpose -* ======= -* -* DLAMCH determines double precision machine parameters. -* -* Arguments -* ========= -* -* CMACH (input) CHARACTER*1 -* Specifies the value to be returned by DLAMCH: -* = 'E' or 'e', DLAMCH := eps -* = 'S' or 's , DLAMCH := sfmin -* = 'B' or 'b', DLAMCH := base -* = 'P' or 'p', DLAMCH := eps*base -* = 'N' or 'n', DLAMCH := t -* = 'R' or 'r', DLAMCH := rnd -* = 'M' or 'm', DLAMCH := emin -* = 'U' or 'u', DLAMCH := rmin -* = 'L' or 'l', DLAMCH := emax -* = 'O' or 'o', DLAMCH := rmax -* -* where -* -* eps = relative machine precision -* sfmin = safe minimum, such that 1/sfmin does not overflow -* base = base of the machine -* prec = eps*base -* t = number of (base) digits in the mantissa -* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise -* emin = minimum exponent before (gradual) underflow -* rmin = underflow threshold - base**(emin-1) -* emax = largest exponent before overflow -* rmax = overflow threshold - (base**emax)*(1-eps) -* -* ===================================================================== -* -* .. Parameters .. +C .. +C +C .. Scalar Arguments .. + DOUBLE PRECISION A, B +C .. +C +C ===================================================================== +C +C .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) -* .. -* .. Local Scalars .. +C .. +C .. Local Scalars .. DOUBLE PRECISION RND, EPS, SFMIN, SMALL, RMACH -* .. -* .. External Functions .. +C .. +C .. External Functions .. LOGICAL LSAME EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. +C .. +C .. Intrinsic Functions .. INTRINSIC DIGITS, EPSILON, HUGE, MAXEXPONENT, $ MINEXPONENT, RADIX, TINY -* .. -* .. Executable Statements .. -* -* -* Assume rounding, not chopping. Always. -* +C .. +C .. Executable Statements .. +C +C +C Assume rounding, not chopping. Always. +C RND = ONE -* +C IF( ONE.EQ.RND ) THEN EPS = EPSILON(ZERO) * 0.5 ELSE EPS = EPSILON(ZERO) END IF -* +C IF( LSAME( CMACH, 'E' ) ) THEN RMACH = EPS ELSE IF( LSAME( CMACH, 'S' ) ) THEN SFMIN = TINY(ZERO) SMALL = ONE / HUGE(ZERO) IF( SMALL.GE.SFMIN ) THEN -* -* Use SMALL plus a bit, to avoid the possibility of rounding -* causing overflow when computing 1/sfmin. -* +C +C Use SMALL plus a bit, to avoid the possibility of rounding +C causing overflow when computing 1/sfmin. +C SFMIN = SMALL*( ONE+EPS ) END IF RMACH = SFMIN @@ -108,49 +113,58 @@ ELSE RMACH = ZERO END IF -* +C DLAMCH = RMACH RETURN -* -* End of DLAMCH -* +C +C End of DLAMCH +C END -************************************************************************ -* +C*********************************************************************** +C> \brief \b DLAMC3 +C>\details +C> \b Purpose: +C>\verbatim +C> +C> DLAMC3 is intended to force A and B to be stored prior to doing +C> the addition of A and B , for use in situations where optimizers +C> might hold one of these in a register. +C> +C>\endverbatim +C> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. +C> \date November 2011 +C> \ingroup auxOTHERauxiliary +C> +C> \param[in] A +C> \verbatim +C> A is a DOUBLE PRECISION +C> \endverbatim +C> +C> \param[in] B +C> \verbatim +C> B is a DOUBLE PRECISION +C> The values A and B. +C> \endverbatim +C> DOUBLE PRECISION FUNCTION DLAMC3( A, B ) -* -* -- LAPACK auxiliary routine (version 3.3.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. +C +C -- LAPACK auxiliary routine (version 3.3.0) -- +C Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. +C November 2010 +C +C .. Scalar Arguments .. DOUBLE PRECISION A, B -* .. -* -* Purpose -* ======= -* -* DLAMC3 is intended to force A and B to be stored prior to doing -* the addition of A and B , for use in situations where optimizers -* might hold one of these in a register. -* -* Arguments -* ========= -* -* A (input) DOUBLE PRECISION -* B (input) DOUBLE PRECISION -* The values A and B. -* -* ===================================================================== -* -* .. Executable Statements .. -* +C .. +C ===================================================================== +C +C .. Executable Statements .. +C DLAMC3 = A + B -* +C RETURN -* -* End of DLAMC3 -* +C +C End of DLAMC3 +C END -* -************************************************************************ +C +C*********************************************************************** diff --git a/INSTALL/dlamchtst.f b/INSTALL/dlamchtst.f index faf541e3..cca831f2 100644 --- a/INSTALL/dlamchtst.f +++ b/INSTALL/dlamchtst.f @@ -1,9 +1,11 @@ - PROGRAM TEST3 + PROGRAM DLAMCHTST * * -- LAPACK test routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * +* ===================================================================== +* * .. Local Scalars .. DOUBLE PRECISION BASE, EMAX, EMIN, EPS, PREC, RMAX, RMIN, RND, $ SFMIN, T diff --git a/INSTALL/dsecndtst.f b/INSTALL/dsecndtst.f index 2b3f54b4..b6aff1af 100644 --- a/INSTALL/dsecndtst.f +++ b/INSTALL/dsecndtst.f @@ -1,9 +1,11 @@ - PROGRAM TEST5 + PROGRAM DSECNDTST * * -- LAPACK test routine (version 3.3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * -- April 2011 -- * +* ===================================================================== +* * .. Parameters .. INTEGER NMAX, ITS PARAMETER ( NMAX = 1000, ITS = 50000 ) diff --git a/INSTALL/lsame.f b/INSTALL/lsame.f index 5e9047e1..c717d0b7 100644 --- a/INSTALL/lsame.f +++ b/INSTALL/lsame.f @@ -18,6 +18,7 @@ * ========= * * CA (input) CHARACTER*1 +* * CB (input) CHARACTER*1 * CA and CB specify the single characters to be compared. * diff --git a/INSTALL/lsametst.f b/INSTALL/lsametst.f index 236719e7..b221c78e 100644 --- a/INSTALL/lsametst.f +++ b/INSTALL/lsametst.f @@ -1,4 +1,4 @@ - PROGRAM TEST1 + PROGRAM LSAMETST * * -- LAPACK test routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. diff --git a/INSTALL/second_EXT_ETIME.f b/INSTALL/second_EXT_ETIME.f index a0489052..3dec48cd 100644 --- a/INSTALL/second_EXT_ETIME.f +++ b/INSTALL/second_EXT_ETIME.f @@ -1,4 +1,4 @@ - REAL FUNCTION SECOND( ) + REAL FUNCTION SECOND( ) * * -- LAPACK auxiliary routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. diff --git a/INSTALL/second_EXT_ETIME_.f b/INSTALL/second_EXT_ETIME_.f index 721d767e..4a9d26e0 100644 --- a/INSTALL/second_EXT_ETIME_.f +++ b/INSTALL/second_EXT_ETIME_.f @@ -1,4 +1,4 @@ - REAL FUNCTION SECOND( ) + REAL FUNCTION SECOND( ) * * -- LAPACK auxiliary routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. diff --git a/INSTALL/second_INT_CPU_TIME.f b/INSTALL/second_INT_CPU_TIME.f index 853b4f5f..1f606189 100644 --- a/INSTALL/second_INT_CPU_TIME.f +++ b/INSTALL/second_INT_CPU_TIME.f @@ -1,4 +1,4 @@ - REAL FUNCTION SECOND( ) + REAL FUNCTION SECOND( ) * * -- LAPACK auxiliary routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. diff --git a/INSTALL/second_INT_ETIME.f b/INSTALL/second_INT_ETIME.f index 7e3d3897..fc98f0d2 100644 --- a/INSTALL/second_INT_ETIME.f +++ b/INSTALL/second_INT_ETIME.f @@ -1,4 +1,4 @@ - REAL FUNCTION SECOND( ) + REAL FUNCTION SECOND( ) * * -- LAPACK auxiliary routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. diff --git a/INSTALL/second_NONE.f b/INSTALL/second_NONE.f index eb2ba05b..a82ce028 100644 --- a/INSTALL/second_NONE.f +++ b/INSTALL/second_NONE.f @@ -1,4 +1,4 @@ - REAL FUNCTION SECOND( ) + REAL FUNCTION SECOND( ) * * -- LAPACK auxiliary routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. diff --git a/INSTALL/secondtst.f b/INSTALL/secondtst.f index e9eaf4e3..a5c7b925 100644 --- a/INSTALL/secondtst.f +++ b/INSTALL/secondtst.f @@ -1,9 +1,11 @@ - PROGRAM TEST4 + PROGRAM SECONDTST * * -- LAPACK test routine (version 3.3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * -- April 2011 -- * +* ===================================================================== +* * .. Parameters .. INTEGER NMAX, ITS PARAMETER ( NMAX = 1000, ITS = 50000 ) diff --git a/INSTALL/slamch.f b/INSTALL/slamch.f index 7c7f6ec2..518ff680 100644 --- a/INSTALL/slamch.f +++ b/INSTALL/slamch.f @@ -1,91 +1,96 @@ +C> \brief \b SLAMCH +C>\details +C> \b Purpose: +C>\verbatim +C> +C> SLAMCH determines single precision machine parameters. +C> +C>\endverbatim +C> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. +C> \date November 2011 +C> \ingroup auxOTHERauxiliary +C> +C> \param[in] CMACH +C> \verbatim +C> Specifies the value to be returned by SLAMCH: +C> = 'E' or 'e', SLAMCH := eps +C> = 'S' or 's , SLAMCH := sfmin +C> = 'B' or 'b', SLAMCH := base +C> = 'P' or 'p', SLAMCH := eps*base +C> = 'N' or 'n', SLAMCH := t +C> = 'R' or 'r', SLAMCH := rnd +C> = 'M' or 'm', SLAMCH := emin +C> = 'U' or 'u', SLAMCH := rmin +C> = 'L' or 'l', SLAMCH := emax +C> = 'O' or 'o', SLAMCH := rmax +C> where +C> eps = relative machine precision +C> sfmin = safe minimum, such that 1/sfmin does not overflow +C> base = base of the machine +C> prec = eps*base +C> t = number of (base) digits in the mantissa +C> rnd = 1.0 when rounding occurs in addition, 0.0 otherwise +C> emin = minimum exponent before (gradual) underflow +C> rmin = underflow threshold - base**(emin-1) +C> emax = largest exponent before overflow +C> rmax = overflow threshold - (base**emax)*(1-eps) +C> \endverbatim +C> REAL FUNCTION SLAMCH( CMACH ) -* -* -- LAPACK auxiliary routine (version 3.3.0) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* Based on LAPACK DLAMCH but with Fortran 95 query functions -* See: http://www.cs.utk.edu/~luszczek/lapack/lamch.html -* and http://www.netlib.org/lapack-dev/lapack-coding/program-style.html#id2537289 -* July 2010 -* -* .. Scalar Arguments .. +C +C -- LAPACK auxiliary routine (version 3.3.0) -- +C -- LAPACK is a software package provided by Univ. of Tennessee, -- +C -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +C November 2011 +C +C .. Scalar Arguments .. CHARACTER CMACH -* .. -* -* Purpose -* ======= -* -* SLAMCH determines single precision machine parameters. -* -* Arguments -* ========= -* -* CMACH (input) CHARACTER*1 -* Specifies the value to be returned by SLAMCH: -* = 'E' or 'e', SLAMCH := eps -* = 'S' or 's , SLAMCH := sfmin -* = 'B' or 'b', SLAMCH := base -* = 'P' or 'p', SLAMCH := eps*base -* = 'N' or 'n', SLAMCH := t -* = 'R' or 'r', SLAMCH := rnd -* = 'M' or 'm', SLAMCH := emin -* = 'U' or 'u', SLAMCH := rmin -* = 'L' or 'l', SLAMCH := emax -* = 'O' or 'o', SLAMCH := rmax -* -* where -* -* eps = relative machine precision -* sfmin = safe minimum, such that 1/sfmin does not overflow -* base = base of the machine -* prec = eps*base -* t = number of (base) digits in the mantissa -* rnd = 1.0 when rounding occurs in addition, 0.0 otherwise -* emin = minimum exponent before (gradual) underflow -* rmin = underflow threshold - base**(emin-1) -* emax = largest exponent before overflow -* rmax = overflow threshold - (base**emax)*(1-eps) -* -* ===================================================================== -* -* .. Parameters .. +C .. +C +C .. Scalar Arguments .. + REAL A, B +C .. +C +C ===================================================================== +C +C .. Parameters .. REAL ONE, ZERO PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 ) -* .. -* .. Local Scalars .. +C .. +C .. Local Scalars .. REAL RND, EPS, SFMIN, SMALL, RMACH -* .. -* .. External Functions .. +C .. +C .. External Functions .. LOGICAL LSAME EXTERNAL LSAME -* .. -* .. Intrinsic Functions .. +C .. +C .. Intrinsic Functions .. INTRINSIC DIGITS, EPSILON, HUGE, MAXEXPONENT, $ MINEXPONENT, RADIX, TINY -* .. -* .. Executable Statements .. -* -* -* Assume rounding, not chopping. Always. -* +C .. +C .. Executable Statements .. +C +C +C Assume rounding, not chopping. Always. +C RND = ONE -* +C IF( ONE.EQ.RND ) THEN EPS = EPSILON(ZERO) * 0.5 ELSE EPS = EPSILON(ZERO) END IF -* +C IF( LSAME( CMACH, 'E' ) ) THEN RMACH = EPS ELSE IF( LSAME( CMACH, 'S' ) ) THEN SFMIN = TINY(ZERO) SMALL = ONE / HUGE(ZERO) IF( SMALL.GE.SFMIN ) THEN -* -* Use SMALL plus a bit, to avoid the possibility of rounding -* causing overflow when computing 1/sfmin. -* +C +C Use SMALL plus a bit, to avoid the possibility of rounding +C causing overflow when computing 1/sfmin. +C SFMIN = SMALL*( ONE+EPS ) END IF RMACH = SFMIN @@ -108,49 +113,57 @@ ELSE RMACH = ZERO END IF -* +C SLAMCH = RMACH RETURN -* -* End of SLAMCH -* +C +C End of SLAMCH +C END -************************************************************************ -* +C*********************************************************************** +C> \brief \b SLAMC3 +C>\details +C> \b Purpose: +C>\verbatim +C> +C> SLAMC3 is intended to force A and B to be stored prior to doing +C> the addition of A and B , for use in situations where optimizers +C> might hold one of these in a register. +C> +C>\endverbatim +C> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. +C> \date November 2011 +C> \ingroup auxOTHERauxiliary +C> +C> \param[in] A +C> \verbatim +C> \endverbatim +C> +C> \param[in] B +C> \verbatim +C> The values A and B. +C> \endverbatim +C> +C REAL FUNCTION SLAMC3( A, B ) -* -* -- LAPACK auxiliary routine (version 3.3.0) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2010 -* -* .. Scalar Arguments .. +C +C -- LAPACK auxiliary routine (version 3.3.0) -- +C Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. +C November 2010 +C +C .. Scalar Arguments .. REAL A, B -* .. -* -* Purpose -* ======= -* -* SLAMC3 is intended to force A and B to be stored prior to doing -* the addition of A and B , for use in situations where optimizers -* might hold one of these in a register. -* -* Arguments -* ========= -* -* A (input) REAL -* B (input) REAL -* The values A and B. -* -* ===================================================================== -* -* .. Executable Statements .. -* +C .. +C ===================================================================== +C +C .. Executable Statements .. +C SLAMC3 = A + B -* +C RETURN -* -* End of SLAMC3 -* +C +C End of SLAMC3 +C END -* -************************************************************************ +C +C*********************************************************************** diff --git a/INSTALL/slamchtst.f b/INSTALL/slamchtst.f index f7fd7c44..61612edf 100644 --- a/INSTALL/slamchtst.f +++ b/INSTALL/slamchtst.f @@ -1,9 +1,11 @@ - PROGRAM TEST2 + PROGRAM SLAMCHTST * * -- LAPACK test routine (version 3.2) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * +* ===================================================================== +* * .. Local Scalars .. REAL BASE, EMAX, EMIN, EPS, RMAX, RMIN, RND, SFMIN, $ T, PREC diff --git a/INSTALL/tstiee.f b/INSTALL/tstiee.f index 599a264d..1b4c3a09 100644 --- a/INSTALL/tstiee.f +++ b/INSTALL/tstiee.f @@ -1,27 +1,39 @@ - PROGRAM MAIN -* -* -- LAPACK test routine (version 3.2) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2006 -* -* .. External Functions .. +C> \brief \b TSTIEE +C>\details +C> \b Purpose: +C>\verbatim +C> +C> TEST IEEE +C> +C>\endverbatim +C> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. +C> \date November 2011 +C> \ingroup auxOTHERauxiliary + + PROGRAM TSTIEE +C +C -- LAPACK test routine (version 3.2) -- +C Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. +C November 2006 +C +C .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV -* .. -* .. Local Scalars .. +C .. +C .. Local Scalars .. INTEGER IEEEOK -* .. -* .. Executable Statements .. -* +C .. +C .. Executable Statements .. +C WRITE( 6, FMT = * ) $ 'We are about to check whether infinity arithmetic' WRITE( 6, FMT = * )'can be trusted. If this test hangs, set' WRITE( 6, FMT = * ) $ 'ILAENV = 0 for ISPEC = 10 in LAPACK/SRC/ilaenv.f' -* +C IEEEOK = ILAENV( 10, 'ILAENV', 'N', 1, 2, 3, 4 ) WRITE( 6, FMT = * ) -* +C IF( IEEEOK.EQ.0 ) THEN WRITE( 6, FMT = * ) $ 'Infinity arithmetic did not perform per the ieee spec' @@ -34,7 +46,7 @@ $ 'guarantee that infinity arithmetic meets the', $ ' ieee spec.' END IF -* +C WRITE( 6, FMT = * ) WRITE( 6, FMT = * ) $ 'We are about to check whether NaN arithmetic' @@ -42,7 +54,7 @@ WRITE( 6, FMT = * ) $ 'ILAENV = 0 for ISPEC = 11 in LAPACK/SRC/ilaenv.f' IEEEOK = ILAENV( 11, 'ILAENV', 'N', 1, 2, 3, 4 ) -* +C WRITE( 6, FMT = * ) IF( IEEEOK.EQ.0 ) THEN WRITE( 6, FMT = * ) @@ -56,147 +68,147 @@ $ ' ieee spec.' END IF WRITE( 6, FMT = * ) -* +C END INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, $ N4 ) -* -* -- LAPACK auxiliary routine (version 3.2) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2006 -* -* .. Scalar Arguments .. +C +C -- LAPACK auxiliary routine (version 3.2) -- +C Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. +C November 2006 +C +C .. Scalar Arguments .. CHARACTER*( * ) NAME, OPTS INTEGER ISPEC, N1, N2, N3, N4 -* .. -* -* Purpose -* ======= -* -* ILAENV is called from the LAPACK routines to choose problem-dependent -* parameters for the local environment. See ISPEC for a description of -* the parameters. -* -* This version provides a set of parameters which should give good, -* but not optimal, performance on many of the currently available -* computers. Users are encouraged to modify this subroutine to set -* the tuning parameters for their particular machine using the option -* and problem size information in the arguments. -* -* This routine will not function correctly if it is converted to all -* lower case. Converting it to all upper case is allowed. -* -* Arguments -* ========= -* -* ISPEC (input) INTEGER -* Specifies the parameter to be returned as the value of -* ILAENV. -* = 1: the optimal blocksize; if this value is 1, an unblocked -* algorithm will give the best performance. -* = 2: the minimum block size for which the block routine -* should be used; if the usable block size is less than -* this value, an unblocked routine should be used. -* = 3: the crossover point (in a block routine, for N less -* than this value, an unblocked routine should be used) -* = 4: the number of shifts, used in the nonsymmetric -* eigenvalue routines -* = 5: the minimum column dimension for blocking to be used; -* rectangular blocks must have dimension at least k by m, -* where k is given by ILAENV(2,...) and m by ILAENV(5,...) -* = 6: the crossover point for the SVD (when reducing an m by n -* matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds -* this value, a QR factorization is used first to reduce -* the matrix to a triangular form.) -* = 7: the number of processors -* = 8: the crossover point for the multishift QR and QZ methods -* for nonsymmetric eigenvalue problems. -* = 9: maximum size of the subproblems at the bottom of the -* computation tree in the divide-and-conquer algorithm -* (used by xGELSD and xGESDD) -* =10: ieee NaN arithmetic can be trusted not to trap -* =11: infinity arithmetic can be trusted not to trap -* -* NAME (input) CHARACTER*(*) -* The name of the calling subroutine, in either upper case or -* lower case. -* -* OPTS (input) CHARACTER*(*) -* The character options to the subroutine NAME, concatenated -* into a single character string. For example, UPLO = 'U', -* TRANS = 'T', and DIAG = 'N' for a triangular routine would -* be specified as OPTS = 'UTN'. -* -* N1 (input) INTEGER -* N2 (input) INTEGER -* N3 (input) INTEGER -* N4 (input) INTEGER -* Problem dimensions for the subroutine NAME; these may not all -* be required. -* -* (ILAENV) (output) INTEGER -* >= 0: the value of the parameter specified by ISPEC -* < 0: if ILAENV = -k, the k-th argument had an illegal value. -* -* Further Details -* =============== -* -* The following conventions have been used when calling ILAENV from the -* LAPACK routines: -* 1) OPTS is a concatenation of all of the character options to -* subroutine NAME, in the same order that they appear in the -* argument list for NAME, even if they are not used in determining -* the value of the parameter specified by ISPEC. -* 2) The problem dimensions N1, N2, N3, N4 are specified in the order -* that they appear in the argument list for NAME. N1 is used -* first, N2 second, and so on, and unused problem dimensions are -* passed a value of -1. -* 3) The parameter value returned by ILAENV is checked for validity in -* the calling subroutine. For example, ILAENV is used to retrieve -* the optimal blocksize for STRTRI as follows: -* -* NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 ) -* IF( NB.LE.1 ) NB = MAX( 1, N ) -* -* ===================================================================== -* -* .. Local Scalars .. +C .. +C +C Purpose +C ======= +C +C ILAENV is called from the LAPACK routines to choose problem-dependent +C parameters for the local environment. See ISPEC for a description of +C the parameters. +C +C This version provides a set of parameters which should give good, +C but not optimal, performance on many of the currently available +C computers. Users are encouraged to modify this subroutine to set +C the tuning parameters for their particular machine using the option +C and problem size information in the arguments. +C +C This routine will not function correctly if it is converted to all +C lower case. Converting it to all upper case is allowed. +C +C Arguments +C ========= +C +C ISPEC (input) INTEGER +C Specifies the parameter to be returned as the value of +C ILAENV. +C = 1: the optimal blocksize; if this value is 1, an unblocked +C algorithm will give the best performance. +C = 2: the minimum block size for which the block routine +C should be used; if the usable block size is less than +C this value, an unblocked routine should be used. +C = 3: the crossover point (in a block routine, for N less +C than this value, an unblocked routine should be used) +C = 4: the number of shifts, used in the nonsymmetric +C eigenvalue routines +C = 5: the minimum column dimension for blocking to be used; +C rectangular blocks must have dimension at least k by m, +C where k is given by ILAENV(2,...) and m by ILAENV(5,...) +C = 6: the crossover point for the SVD (when reducing an m by n +C matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds +C this value, a QR factorization is used first to reduce +C the matrix to a triangular form.) +C = 7: the number of processors +C = 8: the crossover point for the multishift QR and QZ methods +C for nonsymmetric eigenvalue problems. +C = 9: maximum size of the subproblems at the bottom of the +C computation tree in the divide-and-conquer algorithm +C (used by xGELSD and xGESDD) +C =10: ieee NaN arithmetic can be trusted not to trap +C =11: infinity arithmetic can be trusted not to trap +C +C NAME (input) CHARACTER*(*) +C The name of the calling subroutine, in either upper case or +C lower case. +C +C OPTS (input) CHARACTER*(*) +C The character options to the subroutine NAME, concatenated +C into a single character string. For example, UPLO = 'U', +C TRANS = 'T', and DIAG = 'N' for a triangular routine would +C be specified as OPTS = 'UTN'. +C +C N1 (input) INTEGER +C N2 (input) INTEGER +C N3 (input) INTEGER +C N4 (input) INTEGER +C Problem dimensions for the subroutine NAME; these may not all +C be required. +C +C (ILAENV) (output) INTEGER +C >= 0: the value of the parameter specified by ISPEC +C < 0: if ILAENV = -k, the k-th argument had an illegal value. +C +C Further Details +C =============== +C +C The following conventions have been used when calling ILAENV from the +C LAPACK routines: +C 1) OPTS is a concatenation of all of the character options to +C subroutine NAME, in the same order that they appear in the +C argument list for NAME, even if they are not used in determining +C the value of the parameter specified by ISPEC. +C 2) The problem dimensions N1, N2, N3, N4 are specified in the order +C that they appear in the argument list for NAME. N1 is used +C first, N2 second, and so on, and unused problem dimensions are +C passed a value of -1. +C 3) The parameter value returned by ILAENV is checked for validity in +C the calling subroutine. For example, ILAENV is used to retrieve +C the optimal blocksize for STRTRI as follows: +C +C NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 ) +C IF( NB.LE.1 ) NB = MAX( 1, N ) +C +C ===================================================================== +C +C .. Local Scalars .. LOGICAL CNAME, SNAME CHARACTER*1 C1 CHARACTER*2 C2, C4 CHARACTER*3 C3 CHARACTER*6 SUBNAM INTEGER I, IC, IZ, NB, NBMIN, NX -* .. -* .. Intrinsic Functions .. +C .. +C .. Intrinsic Functions .. INTRINSIC CHAR, ICHAR, INT, MIN, REAL -* .. -* .. External Functions .. +C .. +C .. External Functions .. INTEGER IEEECK EXTERNAL IEEECK -* .. -* .. Executable Statements .. -* +C .. +C .. Executable Statements .. +C GO TO ( 100, 100, 100, 400, 500, 600, 700, 800, 900, 1000, $ 1100 ) ISPEC -* -* Invalid value for ISPEC -* +C +C Invalid value for ISPEC +C ILAENV = -1 RETURN -* +C 100 CONTINUE -* -* Convert NAME to upper case if the first character is lower case. -* +C +C Convert NAME to upper case if the first character is lower case. +C ILAENV = 1 SUBNAM = NAME IC = ICHAR( SUBNAM( 1:1 ) ) IZ = ICHAR( 'Z' ) IF( IZ.EQ.90 .OR. IZ.EQ.122 ) THEN -* -* ASCII character set -* +C +C ASCII character set +C IF( IC.GE.97 .AND. IC.LE.122 ) THEN SUBNAM( 1:1 ) = CHAR( IC-32 ) DO 10 I = 2, 6 @@ -205,11 +217,11 @@ $ SUBNAM( I:I ) = CHAR( IC-32 ) 10 CONTINUE END IF -* +C ELSE IF( IZ.EQ.233 .OR. IZ.EQ.169 ) THEN -* -* EBCDIC character set -* +C +C EBCDIC character set +C IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) ) THEN @@ -222,11 +234,11 @@ $ SUBNAM( I:I ) = CHAR( IC+64 ) 20 CONTINUE END IF -* +C ELSE IF( IZ.EQ.218 .OR. IZ.EQ.250 ) THEN -* -* Prime machines: ASCII+128 -* +C +C Prime machines: ASCII+128 +C IF( IC.GE.225 .AND. IC.LE.250 ) THEN SUBNAM( 1:1 ) = CHAR( IC-32 ) DO 30 I = 2, 6 @@ -236,7 +248,7 @@ 30 CONTINUE END IF END IF -* +C C1 = SUBNAM( 1:1 ) SNAME = C1.EQ.'S' .OR. C1.EQ.'D' CNAME = C1.EQ.'C' .OR. C1.EQ.'Z' @@ -245,19 +257,19 @@ C2 = SUBNAM( 2:3 ) C3 = SUBNAM( 4:6 ) C4 = C3( 2:3 ) -* +C GO TO ( 110, 200, 300 ) ISPEC -* +C 110 CONTINUE -* -* ISPEC = 1: block size -* -* In these examples, separate code is provided for setting NB for -* real and complex. We assume that NB will take the same value in -* single or double precision. -* +C +C ISPEC = 1: block size +C +C In these examples, separate code is provided for setting NB for +C real and complex. We assume that NB will take the same value in +C single or double precision. +C NB = 1 -* +C IF( C2.EQ.'GE' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN @@ -402,11 +414,11 @@ END IF ILAENV = NB RETURN -* +C 200 CONTINUE -* -* ISPEC = 2: minimum block size -* +C +C ISPEC = 2: minimum block size +C NBMIN = 2 IF( C2.EQ.'GE' ) THEN IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. @@ -480,11 +492,11 @@ END IF ILAENV = NBMIN RETURN -* +C 300 CONTINUE -* -* ISPEC = 3: crossover point -* +C +C ISPEC = 3: crossover point +C NX = 0 IF( C2.EQ.'GE' ) THEN IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. @@ -534,119 +546,119 @@ END IF ILAENV = NX RETURN -* +C 400 CONTINUE -* -* ISPEC = 4: number of shifts (used by xHSEQR) -* +C +C ISPEC = 4: number of shifts (used by xHSEQR) +C ILAENV = 6 RETURN -* +C 500 CONTINUE -* -* ISPEC = 5: minimum column dimension (not used) -* +C +C ISPEC = 5: minimum column dimension (not used) +C ILAENV = 2 RETURN -* +C 600 CONTINUE -* -* ISPEC = 6: crossover point for SVD (used by xGELSS and xGESVD) -* +C +C ISPEC = 6: crossover point for SVD (used by xGELSS and xGESVD) +C ILAENV = INT( REAL( MIN( N1, N2 ) )*1.6E0 ) RETURN -* +C 700 CONTINUE -* -* ISPEC = 7: number of processors (not used) -* +C +C ISPEC = 7: number of processors (not used) +C ILAENV = 1 RETURN -* +C 800 CONTINUE -* -* ISPEC = 8: crossover point for multishift (used by xHSEQR) -* +C +C ISPEC = 8: crossover point for multishift (used by xHSEQR) +C ILAENV = 50 RETURN -* +C 900 CONTINUE -* -* ISPEC = 9: maximum size of the subproblems at the bottom of the -* computation tree in the divide-and-conquer algorithm -* (used by xGELSD and xGESDD) -* +C +C ISPEC = 9: maximum size of the subproblems at the bottom of the +C computation tree in the divide-and-conquer algorithm +C (used by xGELSD and xGESDD) +C ILAENV = 25 RETURN -* +C 1000 CONTINUE -* -* ISPEC = 10: ieee NaN arithmetic can be trusted not to trap -* +C +C ISPEC = 10: ieee NaN arithmetic can be trusted not to trap +C ILAENV = 1 IF (ILAENV .EQ. 1) THEN ILAENV = IEEECK( 0, 0.0, 1.0 ) ENDIF RETURN -* +C 1100 CONTINUE -* -* ISPEC = 11: infinity arithmetic can be trusted not to trap -* +C +C ISPEC = 11: infinity arithmetic can be trusted not to trap +C ILAENV = 1 IF (ILAENV .EQ. 1) THEN ILAENV = IEEECK( 1, 0.0, 1.0 ) ENDIF RETURN -* -* End of ILAENV -* +C +C End of ILAENV +C END INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) -* -* -- LAPACK auxiliary routine (version 3.2) -- -* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. -* November 2006 -* -* .. Scalar Arguments .. +C +C -- LAPACK auxiliary routine (version 3.2) -- +C Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. +C November 2006 +C +C .. Scalar Arguments .. INTEGER ISPEC REAL ZERO, ONE -* .. -* -* Purpose -* ======= -* -* IEEECK is called from the ILAENV to verify that Inifinity and -* possibly NaN arithmetic is safe (i.e. will not trap). -* -* Arguments -* ========= -* -* ISPEC (input) INTEGER -* Specifies whether to test just for inifinity arithmetic -* or whether to test for infinity and NaN arithmetic. -* = 0: Verify infinity arithmetic only. -* = 1: Verify infinity and NaN arithmetic. -* -* ZERO (input) REAL -* Must contain the value 0.0 -* This is passed to prevent the compiler from optimizing -* away this code. -* -* ONE (input) REAL -* Must contain the value 1.0 -* This is passed to prevent the compiler from optimizing -* away this code. -* -* RETURN VALUE: INTEGER -* = 0: Arithmetic failed to produce the correct answers -* = 1: Arithmetic produced the correct answers -* -* .. Local Scalars .. +C .. +C +C Purpose +C ======= +C +C IEEECK is called from the ILAENV to verify that Inifinity and +C possibly NaN arithmetic is safe (i.e. will not trap). +C +C Arguments +C ========= +C +C ISPEC (input) INTEGER +C Specifies whether to test just for inifinity arithmetic +C or whether to test for infinity and NaN arithmetic. +C = 0: Verify infinity arithmetic only. +C = 1: Verify infinity and NaN arithmetic. +C +C ZERO (input) REAL +C Must contain the value 0.0 +C This is passed to prevent the compiler from optimizing +C away this code. +C +C ONE (input) REAL +C Must contain the value 1.0 +C This is passed to prevent the compiler from optimizing +C away this code. +C +C RETURN VALUE: INTEGER +C = 0: Arithmetic failed to produce the correct answers +C = 1: Arithmetic produced the correct answers +C +C .. Local Scalars .. REAL POSINF, NEGINF, NAN1, NAN2, NAN3, NAN4, NAN5, NAN6, NEGZRO, $ NEWZRO -* .. -* .. Executable Statements .. +C .. +C .. Executable Statements .. IEEECK = 1 POSINF = ONE /ZERO @@ -699,9 +711,9 @@ -* -* Return if we were only asked to check infinity arithmetic -* +C +C Return if we were only asked to check infinity arithmetic +C IF (ISPEC .EQ. 0 ) RETURN NAN1 = POSINF + NEGINF |