|
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 |