1/* Test of <math.h> substitute. 2 Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3 4 This program is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17/* Written by Bruno Haible <bruno@clisp.org>, 2007. */ 18 19#include <config.h> 20 21#include <math.h> 22 23#ifndef NAN 24# error NAN should be defined 25choke me 26#endif 27 28#if 0 29/* Check that NAN expands into a constant expression. */ 30static float n = NAN; 31#endif 32 33/* Compare two numbers with ==. 34 This is a separate function because IRIX 6.5 "cc -O" miscompiles an 35 'x == x' test. */ 36static int 37numeric_equal (double x, double y) 38{ 39 return x == y; 40} 41 42int 43main (void) 44{ 45 double d = NAN; 46 double zero = 0.0; 47 if (numeric_equal (d, d)) 48 return 1; 49 d = HUGE_VAL; 50 if (!numeric_equal (d, 1.0 / zero)) 51 return 1; 52 return 0; 53} 54