summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2011-09-30 18:34:50 +0000
committerjulie <julielangou@users.noreply.github.com>2011-09-30 18:34:50 +0000
commit13acf3d65eb8df4cb8df221509bf0178396dcff1 (patch)
treee3adc3e2fab395b82d4e1bc5111ad5a74afe4be3 /INSTALL
parentd3718a28ef2fad11da862ba0782d39ce506d249f (diff)
downloadlapack-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.f224
-rw-r--r--INSTALL/dlamchtst.f4
-rw-r--r--INSTALL/dsecndtst.f4
-rw-r--r--INSTALL/lsame.f1
-rw-r--r--INSTALL/lsametst.f2
-rw-r--r--INSTALL/second_EXT_ETIME.f2
-rw-r--r--INSTALL/second_EXT_ETIME_.f2
-rw-r--r--INSTALL/second_INT_CPU_TIME.f2
-rw-r--r--INSTALL/second_INT_ETIME.f2
-rw-r--r--INSTALL/second_NONE.f2
-rw-r--r--INSTALL/secondtst.f4
-rw-r--r--INSTALL/slamch.f223
-rw-r--r--INSTALL/slamchtst.f4
-rw-r--r--INSTALL/tstiee.f492
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