Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
fdlibm.h
Go to the documentation of this file.
1#ifndef FDLIBM_H
2#define FDLIBM_H
3
4#include <errno.h>
5
6/* @(#)fdlibm.h 1.5 04/04/22 */
7/*
8 * ====================================================
9 * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.
10 *
11 * Permission to use, copy, modify, and distribute this
12 * software is freely granted, provided that this notice
13 * is preserved.
14 * ====================================================
15 */
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21/* Sometimes it's necessary to define __LITTLE_ENDIAN explicitly
22 but these catch some common cases. */
23
24#if defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) || \
25 defined(__alpha) || defined(__osf__)
26#define __LITTLE_ENDIAN
27#endif
28
29#ifdef __LITTLE_ENDIAN
30#define __HI(x) *(1 + (int*)&x)
31#define __LO(x) *(int*)&x
32#define __HIp(x) *(1 + (int*)x)
33#define __LOp(x) *(int*)x
34#else
35#define __HI(x) *(int*)&x
36#define __LO(x) *(1 + (int*)&x)
37#define __HIp(x) *(int*)x
38#define __LOp(x) *(1 + (int*)x)
39#endif
40
41// TODO: should __STDC__ actually be defined?
42//#ifdef __STDC__
43#define __P(p) p
44//#else
45//#define __P(p) ()
46//#endif
47
48/*
49 * ANSI/POSIX
50 */
51
52extern int signgam;
53
54#define MAXFLOAT ((float)3.40282346638528860e+38)
55
57
58#define _LIB_VERSION_TYPE enum fdversion
59#define _LIB_VERSION _fdlib_version
60
61/* if global variable _LIB_VERSION is not desirable, one may
62 * change the following to be a constant by:
63 * #define _LIB_VERSION_TYPE const enum version
64 * In that case, after one initializes the value _LIB_VERSION (see
65 * s_lib_version.c) during compile time, it cannot be modified
66 * in the middle of a program
67 */
68extern _LIB_VERSION_TYPE _LIB_VERSION;
69
70#define _IEEE_ fdlibm_ieee
71#define _SVID_ fdlibm_svid
72#define _XOPEN_ fdlibm_xopen
73#define _POSIX_ fdlibm_posix
74
75struct exception {
76 int type;
77 char* name;
78 double arg1;
79 double arg2;
80 double retval;
81};
82
83#define HUGE MAXFLOAT
84
85/*
86 * set X_TLOSS = pi*2**52, which is possibly defined in <values.h"
87 * (one may replace the following line by "#include "values.h"")
88 */
89
90#define X_TLOSS 1.41484755040568800000e+16
91
92#define DOMAIN 1
93#define SING 2
94#define OVERFLOW 3
95#define UNDERFLOW 4
96#define TLOSS 5
97#define PLOSS 6
98
99/*
100 * ANSI/POSIX
101 */
102extern double acos __P((double));
103extern double asin __P((double));
104extern double atan __P((double));
105extern double atan2 __P((double, double));
106extern double cos __P((double));
107extern double sin __P((double));
108extern double tan __P((double));
109
110extern double cosh __P((double));
111extern double sinh __P((double));
112extern double tanh __P((double));
113
114extern double exp __P((double));
115extern double frexp __P((double, int*));
116extern double ldexp __P((double, int));
117extern double log __P((double));
118extern double log10 __P((double));
119extern double modf __P((double, double*));
120
121extern double pow __P((double, double));
122extern double sqrt __P((double));
123
124extern double ceil __P((double));
125extern double fabs __P((double));
126extern double floor __P((double));
127extern double fmod __P((double, double));
128
129extern double erf __P((double));
130extern double erfc __P((double));
131extern double gamma __P((double));
132extern double hypot __P((double, double));
133extern int isnan __P((double));
134extern int finite __P((double));
135extern double j0 __P((double));
136extern double j1 __P((double));
137extern double jn __P((int, double));
138extern double lgamma __P((double));
139extern double y0 __P((double));
140extern double y1 __P((double));
141extern double yn __P((int, double));
142
143extern double acosh __P((double));
144extern double asinh __P((double));
145extern double atanh __P((double));
146extern double cbrt __P((double));
147extern double logb __P((double));
148extern double nextafter __P((double, double));
149extern double remainder __P((double, double));
150#ifdef _SCALB_INT
151extern double scalb __P((double, int));
152#else
153extern double scalb __P((double, double));
154#endif
155
156extern int matherr __P((struct exception*));
157
158/*
159 * IEEE Test Vector
160 */
161extern double significand __P((double));
162
163/*
164 * Functions callable from C, intended to support IEEE arithmetic.
165 */
166extern double copysign __P((double, double));
167extern int ilogb __P((double));
168extern double rint __P((double));
169extern double scalbn __P((double, int));
170
171/*
172 * BSD math library entry points
173 */
174extern double expm1 __P((double));
175extern double log1p __P((double));
176
177/*
178 * Reentrant version of gamma & lgamma; passes signgam back by reference
179 * as the second argument; user must allocate space for signgam.
180 */
181#ifdef _REENTRANT
182extern double gamma_r __P((double, int*));
183extern double lgamma_r __P((double, int*));
184#endif /* _REENTRANT */
185
186/* ieee style elementary functions */
187extern double __ieee754_sqrt __P((double));
188extern double __ieee754_acos __P((double));
189extern double __ieee754_acosh __P((double));
190extern double __ieee754_log __P((double));
191extern double __ieee754_atanh __P((double));
192extern double __ieee754_asin __P((double));
193extern double __ieee754_atan2 __P((double, double));
194extern double __ieee754_exp __P((double));
195extern double __ieee754_cosh __P((double));
196extern double __ieee754_fmod __P((double, double));
197extern double __ieee754_pow __P((double, double));
198extern double __ieee754_lgamma_r __P((double, int*));
199extern double __ieee754_gamma_r __P((double, int*));
200extern double __ieee754_lgamma __P((double));
201extern double __ieee754_gamma __P((double));
202extern double __ieee754_log10 __P((double));
203extern double __ieee754_sinh __P((double));
204extern double __ieee754_hypot __P((double, double));
205extern double __ieee754_j0 __P((double));
206extern double __ieee754_j1 __P((double));
207extern double __ieee754_y0 __P((double));
208extern double __ieee754_y1 __P((double));
209extern double __ieee754_jn __P((int, double));
210extern double __ieee754_yn __P((int, double));
211extern double __ieee754_remainder __P((double, double));
212extern int __ieee754_rem_pio2 __P((double, double*));
213#ifdef _SCALB_INT
214extern double __ieee754_scalb __P((double, int));
215#else
216extern double __ieee754_scalb __P((double, double));
217#endif
218
219/* fdlibm kernel function */
220extern double __kernel_standard __P((double, double, int));
221extern double __kernel_sin __P((double, double, int));
222extern double __kernel_cos __P((double, double));
223extern double __kernel_tan __P((double, double, int));
224extern int __kernel_rem_pio2 __P((double*, double*, int, int, int, const int*));
225
226#ifdef __cplusplus
227};
228#endif
229
230#endif /* FDLIBM_H */
double atan(double)
float fabs(float x)
Definition sdk_math.h:35
double __ieee754_acos(double x) double __ieee754_acos(x) double x
double __ieee754_asin(double x) double __ieee754_asin(x) double x
double __ieee754_atan2(double y, double x) double __ieee754_atan2(y
double __ieee754_exp(double x) double __ieee754_exp(x) double x
double __ieee754_fmod(double x, double y) double __ieee754_fmod(x
double __ieee754_log10(double x) double __ieee754_log10(x) double x
double __ieee754_log(double x) double __ieee754_log(x) double x
double y1
Definition e_pow.c:114
double __ieee754_pow(double x, double y) double __ieee754_pow(x
double __ieee754_sqrt(double x) double __ieee754_sqrt(x) double x
_LIB_VERSION_TYPE _LIB_VERSION
double acos __P((double))
int signgam
fdversion
Definition fdlibm.h:56
@ fdlibm_xopen
Definition fdlibm.h:56
@ fdlibm_svid
Definition fdlibm.h:56
@ fdlibm_ieee
Definition fdlibm.h:56
@ fdlibm_posix
Definition fdlibm.h:56
double __kernel_cos(double x, double y) double __kernel_cos(x
double __kernel_sin(double x, double y, int iy) double __kernel_sin(x
double __kernel_tan(double x, double y, int iy)
Definition k_tan.c:122
double scalbn(double x, int n)
Definition math_sun.c:3
double ceil(double x) double ceil(x) double x
j0
Definition s_ceil.c:40
double copysign(double x, double y) double copysign(x
double cos(double x) double cos(x) double x
double floor(double x) double floor(x) double x
double frexp(double x, int *eptr) double frexp(x
double ldexp(double x, int n)
Definition s_ldexp.c:30
double modf(double x, double *iptr) double modf(x
double sin(double x) double sin(x) double x
double tan(double x) double tan(x) double x
Definition fdlibm.h:75
char * name
Definition fdlibm.h:77
double retval
Definition fdlibm.h:80
int type
Definition fdlibm.h:76
double arg1
Definition fdlibm.h:78
double arg2
Definition fdlibm.h:79
double acos(double x)
Definition w_acos.c:3
double asin(double x)
Definition w_asin.c:3
double atan2(double x, double y)
Definition w_atan2.c:3
double exp(double x)
Definition w_exp.c:3
double fmod(double x, double y)
Definition w_fmod.c:3
double log10(double x) double log10(x) double x
double pow(double x, double y)
Definition w_pow.c:3
double sqrt(double x)
Definition w_sqrt.c:3