File: isnan.c

package info (click to toggle)
ruby2.3 2.3.3-1%2Bdeb9u8
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 65,344 kB
  • sloc: ruby: 639,947; ansic: 317,772; xml: 25,445; yacc: 9,068; javascript: 6,648; lisp: 2,568; tcl: 949; makefile: 623; sh: 533; perl: 62; sed: 53; python: 47; awk: 36; asm: 35
file content (32 lines) | stat: -rw-r--r-- 667 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* public domain rewrite of isnan(3) */

#include "ruby/missing.h"

/*
 * isnan() may be a macro, a function or both.
 * (The C99 standard defines that isnan() is a macro, though.)
 * http://www.gnu.org/software/automake/manual/autoconf/Function-Portability.html
 *
 * macro only: uClibc
 * both: GNU libc
 *
 * This file is compile if no isnan() function is available.
 * (autoconf AC_REPLACE_FUNCS detects only the function.)
 * The macro is detected by following #ifndef.
 */

#ifndef isnan
static int double_ne(double n1, double n2);

int
isnan(double n)
{
    return double_ne(n, n);
}

static int
double_ne(double n1, double n2)
{
    return n1 != n2;
}
#endif