version 1.2, 2010/04/21 13:45:27
|
version 1.15, 2016/08/27 15:34:43
|
Line 1
|
Line 1
|
|
*> \brief \b IEEECK |
|
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download IEEECK + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ieeeck.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ieeeck.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ieeeck.f"> |
|
*> [TXT]</a> |
|
*> \endhtmlonly |
|
* |
|
* Definition: |
|
* =========== |
|
* |
|
* INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) |
|
* |
|
* .. Scalar Arguments .. |
|
* INTEGER ISPEC |
|
* REAL ONE, ZERO |
|
* .. |
|
* |
|
* |
|
*> \par Purpose: |
|
* ============= |
|
*> |
|
*> \verbatim |
|
*> |
|
*> IEEECK is called from the ILAENV to verify that Infinity and |
|
*> possibly NaN arithmetic is safe (i.e. will not trap). |
|
*> \endverbatim |
|
* |
|
* Arguments: |
|
* ========== |
|
* |
|
*> \param[in] ISPEC |
|
*> \verbatim |
|
*> ISPEC is 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. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] ZERO |
|
*> \verbatim |
|
*> ZERO is REAL |
|
*> Must contain the value 0.0 |
|
*> This is passed to prevent the compiler from optimizing |
|
*> away this code. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] ONE |
|
*> \verbatim |
|
*> ONE is 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 |
|
*> \endverbatim |
|
* |
|
* Authors: |
|
* ======== |
|
* |
|
*> \author Univ. of Tennessee |
|
*> \author Univ. of California Berkeley |
|
*> \author Univ. of Colorado Denver |
|
*> \author NAG Ltd. |
|
* |
|
*> \date November 2011 |
|
* |
|
*> \ingroup auxOTHERauxiliary |
|
* |
|
* ===================================================================== |
INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) |
INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.2) -- |
* -- LAPACK auxiliary routine (version 3.4.0) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2006 |
* November 2011 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER ISPEC |
INTEGER ISPEC |
REAL ONE, ZERO |
REAL ONE, ZERO |
* .. |
* .. |
* |
* |
* Purpose |
* ===================================================================== |
* ======= |
|
* |
|
* IEEECK is called from the ILAENV to verify that Infinity 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 .. |
* .. Local Scalars .. |
REAL NAN1, NAN2, NAN3, NAN4, NAN5, NAN6, NEGINF, |
REAL NAN1, NAN2, NAN3, NAN4, NAN5, NAN6, NEGINF, |
Line 112
|
Line 167
|
* |
* |
NAN5 = NEGINF*NEGZRO |
NAN5 = NEGINF*NEGZRO |
* |
* |
NAN6 = NAN5*0.0 |
NAN6 = NAN5*ZERO |
* |
* |
IF( NAN1.EQ.NAN1 ) THEN |
IF( NAN1.EQ.NAN1 ) THEN |
IEEECK = 0 |
IEEECK = 0 |