47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
#include "clapack.h"
|
|
|
|
logical dlaisnan_(doublereal *din1, doublereal *din2)
|
|
{
|
|
/* System generated locals */
|
|
logical ret_val;
|
|
|
|
|
|
/* -- LAPACK auxiliary routine (version 3.1) -- */
|
|
/* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
|
|
/* November 2006 */
|
|
|
|
/* .. Scalar Arguments .. */
|
|
/* .. */
|
|
|
|
/* Purpose */
|
|
/* ======= */
|
|
|
|
/* This routine is not for general use. It exists solely to avoid */
|
|
/* over-optimization in DISNAN. */
|
|
|
|
/* DLAISNAN checks for NaNs by comparing its two arguments for */
|
|
/* inequality. NaN is the only floating-point value where NaN != NaN */
|
|
/* returns .TRUE. To check for NaNs, pass the same variable as both */
|
|
/* arguments. */
|
|
|
|
/* Strictly speaking, Fortran does not allow aliasing of function */
|
|
/* arguments. So a compiler must assume that the two arguments are */
|
|
/* not the same variable, and the test will not be optimized away. */
|
|
/* Interprocedural or whole-program optimization may delete this */
|
|
/* test. The ISNAN functions will be replaced by the correct */
|
|
/* Fortran 03 intrinsic once the intrinsic is widely available. */
|
|
|
|
/* Arguments */
|
|
/* ========= */
|
|
|
|
/* DIN1 (input) DOUBLE PRECISION */
|
|
/* DIN2 (input) DOUBLE PRECISION */
|
|
/* Two numbers to compare for inequality. */
|
|
|
|
/* ===================================================================== */
|
|
|
|
/* .. Executable Statements .. */
|
|
ret_val = *din1 != *din2;
|
|
return ret_val;
|
|
} /* dlaisnan_ */
|