|         |      1 /************************************************************************* | 
|         |      2  * | 
|         |      3  * Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net> | 
|         |      4  * | 
|         |      5  * Permission to use, copy, modify, and distribute this software for any | 
|         |      6  * purpose with or without fee is hereby granted, provided that the above | 
|         |      7  * copyright notice and this permission notice appear in all copies. | 
|         |      8  * | 
|         |      9  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED | 
|         |     10  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF | 
|         |     11  * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND | 
|         |     12  * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. | 
|         |     13  * | 
|         |     14  * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.  | 
|         |     15  ************************************************************************/ | 
|         |     16  | 
|         |     17 /** @file | 
|         |     18 @publishedPartner | 
|         |     19 @released  | 
|         |     20 */  | 
|         |     21 #ifndef TRIO_NAN_H | 
|         |     22 #define TRIO_NAN_H | 
|         |     23  | 
|         |     24 #include <xmlengtriodef.h> | 
|         |     25  | 
|         |     26 #ifdef __cplusplus | 
|         |     27 extern "C" { | 
|         |     28 #endif | 
|         |     29  | 
|         |     30 enum { | 
|         |     31   TRIO_FP_INFINITE, | 
|         |     32   TRIO_FP_NAN, | 
|         |     33   TRIO_FP_NORMAL, | 
|         |     34   TRIO_FP_SUBNORMAL, | 
|         |     35   TRIO_FP_ZERO | 
|         |     36 }; | 
|         |     37  | 
|         |     38 /* | 
|         |     39  * Return NaN (Not-a-Number). | 
|         |     40  */ | 
|         |     41 TRIO_PUBLIC double trio_nan TRIO_PROTO((void)); | 
|         |     42  | 
|         |     43 /* | 
|         |     44  * Return positive infinity. | 
|         |     45  */ | 
|         |     46 TRIO_PUBLIC double trio_pinf TRIO_PROTO((void)); | 
|         |     47  | 
|         |     48 /* | 
|         |     49  * Return negative infinity. | 
|         |     50  */ | 
|         |     51 TRIO_PUBLIC double trio_ninf TRIO_PROTO((void)); | 
|         |     52  | 
|         |     53 /* | 
|         |     54  * Return negative zero. | 
|         |     55  */ | 
|         |     56 TRIO_PUBLIC double trio_nzero TRIO_PROTO((TRIO_NOARGS)); | 
|         |     57  | 
|         |     58 /* | 
|         |     59  * If number is a NaN return non-zero, otherwise return zero. | 
|         |     60  */ | 
|         |     61 TRIO_PUBLIC int trio_isnan TRIO_PROTO((double number)); | 
|         |     62  | 
|         |     63 /* | 
|         |     64  * If number is positive infinity return 1, if number is negative | 
|         |     65  * infinity return -1, otherwise return 0. | 
|         |     66  */ | 
|         |     67 TRIO_PUBLIC int trio_isinf TRIO_PROTO((double number)); | 
|         |     68  | 
|         |     69 /* | 
|         |     70  * If number is finite return non-zero, otherwise return zero. | 
|         |     71  */ | 
|         |     72 #if 0 | 
|         |     73      | 
|         |     74 TRIO_PUBLIC int trio_isfinite TRIO_PROTO((double number)); | 
|         |     75  | 
|         |     76 TRIO_PUBLIC int trio_fpclassify TRIO_PROTO((double number)); | 
|         |     77 #endif | 
|         |     78  | 
|         |     79 TRIO_PUBLIC int trio_signbit TRIO_PROTO((double number)); | 
|         |     80  | 
|         |     81 TRIO_PUBLIC int trio_fpclassify_and_signbit TRIO_PROTO((double number, int *is_negative)); | 
|         |     82  | 
|         |     83 #ifdef __cplusplus | 
|         |     84 } | 
|         |     85 #endif | 
|         |     86  | 
|         |     87 #endif /* TRIO_NAN_H */ | 
|         |     88  |