Mercurial > games > semicongine
annotate fuhtark_test/include/math.h @ 1501:f40d9d814c08 default tip main
did: correct vulkan-api generator
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 23:34:29 +0700 |
| parents | 91c8c3b7cbf0 |
| children |
| rev | line source |
|---|---|
|
1500
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
1 /** |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
2 * This file has no copyright assigned and is placed in the Public Domain. |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
3 * This file is part of the w64 mingw-runtime package. |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
4 * No warranty is given; refer to the file DISCLAIMER within this package. |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
5 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
6 #ifndef _MATH_H_ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
7 #define _MATH_H_ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
8 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
9 #if __GNUC__ >= 3 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
10 #pragma GCC system_header |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
11 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
12 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
13 #include <_mingw.h> |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
14 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
15 struct exception; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
16 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
17 #pragma pack(push,_CRT_PACKING) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
18 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
19 #define _DOMAIN 1 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
20 #define _SING 2 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
21 #define _OVERFLOW 3 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
22 #define _UNDERFLOW 4 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
23 #define _TLOSS 5 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
24 #define _PLOSS 6 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
25 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
26 #ifndef __STRICT_ANSI__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
27 #ifndef NO_OLDNAMES |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
28 #define DOMAIN _DOMAIN |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
29 #define SING _SING |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
30 #define OVERFLOW _OVERFLOW |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
31 #define UNDERFLOW _UNDERFLOW |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
32 #define TLOSS _TLOSS |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
33 #define PLOSS _PLOSS |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
34 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
35 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
36 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
37 #ifndef __STRICT_ANSI__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
38 #define M_E 2.71828182845904523536 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
39 #define M_LOG2E 1.44269504088896340736 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
40 #define M_LOG10E 0.434294481903251827651 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
41 #define M_LN2 0.693147180559945309417 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
42 #define M_LN10 2.30258509299404568402 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
43 #define M_PI 3.14159265358979323846 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
44 #define M_PI_2 1.57079632679489661923 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
45 #define M_PI_4 0.785398163397448309616 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
46 #define M_1_PI 0.318309886183790671538 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
47 #define M_2_PI 0.636619772367581343076 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
48 #define M_2_SQRTPI 1.12837916709551257390 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
49 #define M_SQRT2 1.41421356237309504880 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
50 #define M_SQRT1_2 0.707106781186547524401 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
51 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
52 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
53 #ifndef __STRICT_ANSI__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
54 /* See also float.h */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
55 #ifndef __MINGW_FPCLASS_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
56 #define __MINGW_FPCLASS_DEFINED 1 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
57 #define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
58 #define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
59 #define _FPCLASS_NINF 0x0004 /* Negative Infinity */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
60 #define _FPCLASS_NN 0x0008 /* Negative Normal */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
61 #define _FPCLASS_ND 0x0010 /* Negative Denormal */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
62 #define _FPCLASS_NZ 0x0020 /* Negative Zero */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
63 #define _FPCLASS_PZ 0x0040 /* Positive Zero */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
64 #define _FPCLASS_PD 0x0080 /* Positive Denormal */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
65 #define _FPCLASS_PN 0x0100 /* Positive Normal */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
66 #define _FPCLASS_PINF 0x0200 /* Positive Infinity */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
67 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
68 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
69 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
70 #ifdef __cplusplus |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
71 extern "C" { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
72 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
73 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
74 #ifndef _EXCEPTION_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
75 #define _EXCEPTION_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
76 struct _exception { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
77 int type; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
78 char *name; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
79 double arg1; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
80 double arg2; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
81 double retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
82 }; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
83 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
84 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
85 #ifndef _COMPLEX_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
86 #define _COMPLEX_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
87 struct _complex { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
88 double x,y; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
89 }; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
90 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
91 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
92 #define EDOM 33 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
93 #define ERANGE 34 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
94 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
95 #ifndef _HUGE |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
96 #ifdef _MSVCRT_ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
97 extern double *_HUGE; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
98 #else |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
99 extern double *_imp___HUGE; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
100 #define _HUGE (*_imp___HUGE) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
101 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
102 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
103 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
104 #define HUGE_VAL _HUGE |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
105 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
106 #ifndef _CRT_ABS_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
107 #define _CRT_ABS_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
108 int __cdecl abs(int _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
109 long __cdecl labs(long _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
110 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
111 double __cdecl acos(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
112 double __cdecl asin(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
113 double __cdecl atan(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
114 double __cdecl atan2(double _Y,double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
115 #ifndef _SIGN_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
116 #define _SIGN_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
117 _CRTIMP double __cdecl _copysign (double _Number,double _Sign); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
118 _CRTIMP double __cdecl _chgsign (double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
119 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
120 double __cdecl cos(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
121 double __cdecl cosh(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
122 double __cdecl exp(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
123 double __cdecl expm1(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
124 double __cdecl fabs(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
125 double __cdecl fmod(double _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
126 double __cdecl log(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
127 double __cdecl log10(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
128 double __cdecl pow(double _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
129 double __cdecl sin(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
130 double __cdecl sinh(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
131 double __cdecl tan(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
132 double __cdecl tanh(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
133 double __cdecl sqrt(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
134 #ifndef _CRT_ATOF_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
135 #define _CRT_ATOF_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
136 double __cdecl atof(const char *_String); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
137 double __cdecl _atof_l(const char *_String,_locale_t _Locale); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
138 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
139 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
140 _CRTIMP double __cdecl _cabs(struct _complex _ComplexA); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
141 double __cdecl ceil(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
142 double __cdecl floor(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
143 double __cdecl frexp(double _X,int *_Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
144 double __cdecl _hypot(double _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
145 _CRTIMP double __cdecl _j0(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
146 _CRTIMP double __cdecl _j1(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
147 _CRTIMP double __cdecl _jn(int _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
148 double __cdecl ldexp(double _X,int _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
149 #ifndef _CRT_MATHERR_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
150 #define _CRT_MATHERR_DEFINED |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
151 int __cdecl _matherr(struct _exception *_Except); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
152 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
153 double __cdecl modf(double _X,double *_Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
154 _CRTIMP double __cdecl _y0(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
155 _CRTIMP double __cdecl _y1(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
156 _CRTIMP double __cdecl _yn(int _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
157 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
158 #if(defined(_X86_) && !defined(__x86_64)) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
159 _CRTIMP int __cdecl _set_SSE2_enable(int _Flag); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
160 /* from libmingwex */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
161 float __cdecl _hypotf(float _X,float _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
162 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
163 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
164 float frexpf(float _X,int *_Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
165 float __cdecl ldexpf(float _X,int _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
166 long double __cdecl ldexpl(long double _X,int _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
167 float __cdecl acosf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
168 float __cdecl asinf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
169 float __cdecl atanf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
170 float __cdecl atan2f(float _X,float _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
171 float __cdecl cosf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
172 float __cdecl sinf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
173 float __cdecl tanf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
174 float __cdecl coshf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
175 float __cdecl sinhf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
176 float __cdecl tanhf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
177 float __cdecl expf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
178 float __cdecl expm1f(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
179 float __cdecl logf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
180 float __cdecl log10f(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
181 float __cdecl modff(float _X,float *_Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
182 float __cdecl powf(float _X,float _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
183 float __cdecl sqrtf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
184 float __cdecl ceilf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
185 float __cdecl floorf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
186 float __cdecl fmodf(float _X,float _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
187 float __cdecl _hypotf(float _X,float _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
188 float __cdecl fabsf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
189 #if !defined(__ia64__) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
190 /* from libmingwex */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
191 float __cdecl _copysignf (float _Number,float _Sign); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
192 float __cdecl _chgsignf (float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
193 float __cdecl _logbf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
194 float __cdecl _nextafterf(float _X,float _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
195 int __cdecl _finitef(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
196 int __cdecl _isnanf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
197 int __cdecl _fpclassf(float _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
198 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
199 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
200 #ifndef __cplusplus |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
201 __CRT_INLINE long double __cdecl fabsl (long double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
202 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
203 long double res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
204 __asm__ ("fabs;" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
205 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
206 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
207 #define _hypotl(x,y) ((long double)_hypot((double)(x),(double)(y))) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
208 #define _matherrl _matherr |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
209 __CRT_INLINE long double _chgsignl(long double _Number) { return _chgsign((double)(_Number)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
210 __CRT_INLINE long double _copysignl(long double _Number,long double _Sign) { return _copysign((double)(_Number),(double)(_Sign)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
211 __CRT_INLINE float frexpf(float _X,int *_Y) { return ((float)frexp((double)_X,_Y)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
212 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
213 #if !defined (__ia64__) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
214 __CRT_INLINE float __cdecl fabsf (float x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
215 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
216 float res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
217 __asm__ ("fabs;" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
218 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
219 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
220 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
221 __CRT_INLINE float __cdecl ldexpf (float x, int expn) { return (float) ldexp (x, expn); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
222 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
223 #else |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
224 // cplusplus |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
225 __CRT_INLINE long double __cdecl fabsl (long double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
226 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
227 long double res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
228 __asm__ ("fabs;" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
229 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
230 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
231 __CRT_INLINE long double modfl(long double _X,long double *_Y) { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
232 double _Di,_Df = modf((double)_X,&_Di); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
233 *_Y = (long double)_Di; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
234 return (_Df); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
235 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
236 __CRT_INLINE long double _chgsignl(long double _Number) { return _chgsign(static_cast<double>(_Number)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
237 __CRT_INLINE long double _copysignl(long double _Number,long double _Sign) { return _copysign(static_cast<double>(_Number),static_cast<double>(_Sign)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
238 __CRT_INLINE float frexpf(float _X,int *_Y) { return ((float)frexp((double)_X,_Y)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
239 #ifndef __ia64__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
240 __CRT_INLINE float __cdecl fabsf (float x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
241 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
242 float res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
243 __asm__ ("fabs;" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
244 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
245 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
246 __CRT_INLINE float __cdecl ldexpf (float x, int expn) { return (float) ldexp (x, expn); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
247 #ifndef __x86_64 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
248 __CRT_INLINE float acosf(float _X) { return ((float)acos((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
249 __CRT_INLINE float asinf(float _X) { return ((float)asin((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
250 __CRT_INLINE float atanf(float _X) { return ((float)atan((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
251 __CRT_INLINE float atan2f(float _X,float _Y) { return ((float)atan2((double)_X,(double)_Y)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
252 __CRT_INLINE float ceilf(float _X) { return ((float)ceil((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
253 __CRT_INLINE float cosf(float _X) { return ((float)cos((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
254 __CRT_INLINE float coshf(float _X) { return ((float)cosh((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
255 __CRT_INLINE float expf(float _X) { return ((float)exp((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
256 __CRT_INLINE float floorf(float _X) { return ((float)floor((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
257 __CRT_INLINE float fmodf(float _X,float _Y) { return ((float)fmod((double)_X,(double)_Y)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
258 __CRT_INLINE float logf(float _X) { return ((float)log((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
259 __CRT_INLINE float log10f(float _X) { return ((float)log10((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
260 __CRT_INLINE float modff(float _X,float *_Y) { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
261 double _Di,_Df = modf((double)_X,&_Di); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
262 *_Y = (float)_Di; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
263 return ((float)_Df); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
264 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
265 __CRT_INLINE float powf(float _X,float _Y) { return ((float)pow((double)_X,(double)_Y)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
266 __CRT_INLINE float sinf(float _X) { return ((float)sin((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
267 __CRT_INLINE float sinhf(float _X) { return ((float)sinh((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
268 __CRT_INLINE float sqrtf(float _X) { return ((float)sqrt((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
269 __CRT_INLINE float tanf(float _X) { return ((float)tan((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
270 __CRT_INLINE float tanhf(float _X) { return ((float)tanh((double)_X)); } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
271 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
272 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
273 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
274 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
275 #ifndef NO_OLDNAMES |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
276 #define matherr _matherr |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
277 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
278 #define HUGE _HUGE |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
279 /* double __cdecl cabs(struct _complex _X); */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
280 double __cdecl hypot(double _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
281 _CRTIMP double __cdecl j0(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
282 _CRTIMP double __cdecl j1(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
283 _CRTIMP double __cdecl jn(int _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
284 _CRTIMP double __cdecl y0(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
285 _CRTIMP double __cdecl y1(double _X); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
286 _CRTIMP double __cdecl yn(int _X,double _Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
287 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
288 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
289 #ifndef __NO_ISOCEXT |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
290 #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
291 || !defined __STRICT_ANSI__ || defined __GLIBCPP__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
292 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
293 #define NAN (0.0F/0.0F) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
294 #define HUGE_VALF (1.0F/0.0F) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
295 #define HUGE_VALL (1.0L/0.0L) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
296 #define INFINITY (1.0F/0.0F) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
297 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
298 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
299 #define FP_NAN 0x0100 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
300 #define FP_NORMAL 0x0400 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
301 #define FP_INFINITE (FP_NAN | FP_NORMAL) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
302 #define FP_ZERO 0x4000 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
303 #define FP_SUBNORMAL (FP_NORMAL | FP_ZERO) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
304 /* 0x0200 is signbit mask */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
305 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
306 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
307 /* |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
308 We can't __CRT_INLINE float or double, because we want to ensure truncation |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
309 to semantic type before classification. |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
310 (A normal long double value might become subnormal when |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
311 converted to double, and zero when converted to float.) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
312 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
313 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
314 extern int __cdecl __fpclassifyf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
315 extern int __cdecl __fpclassify (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
316 extern int __cdecl __fpclassifyl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
317 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
318 /* Implemented at tcc/tcc_libm.h */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
319 #define fpclassify(x) (sizeof (x) == sizeof (float) ? __fpclassifyf (x) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
320 : sizeof (x) == sizeof (double) ? __fpclassify (x) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
321 : __fpclassifyl (x)) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
322 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
323 /* 7.12.3.2 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
324 #define isfinite(x) ((fpclassify(x) & FP_NAN) == 0) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
325 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
326 /* 7.12.3.3 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
327 #define isinf(x) (fpclassify(x) == FP_INFINITE) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
328 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
329 /* 7.12.3.4 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
330 /* We don't need to worry about truncation here: |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
331 A NaN stays a NaN. */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
332 #define isnan(x) (fpclassify(x) == FP_NAN) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
333 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
334 /* 7.12.3.5 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
335 #define isnormal(x) (fpclassify(x) == FP_NORMAL) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
336 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
337 /* 7.12.3.6 The signbit macro */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
338 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
339 extern int __cdecl __signbitf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
340 extern int __cdecl __signbit (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
341 extern int __cdecl __signbitl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
342 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
343 /* Implemented at tcc/tcc_libm.h */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
344 #define signbit(x) (sizeof (x) == sizeof (float) ? __signbitf (x) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
345 : sizeof (x) == sizeof (double) ? __signbit (x) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
346 : __signbitl (x)) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
347 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
348 extern double __cdecl exp2(double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
349 extern float __cdecl exp2f(float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
350 extern long double __cdecl exp2l(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
351 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
352 #define FP_ILOGB0 ((int)0x80000000) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
353 #define FP_ILOGBNAN ((int)0x80000000) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
354 extern int __cdecl ilogb (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
355 extern int __cdecl ilogbf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
356 extern int __cdecl ilogbl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
357 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
358 extern double __cdecl log1p(double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
359 extern float __cdecl log1pf(float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
360 extern long double __cdecl log1pl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
361 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
362 extern double __cdecl log2 (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
363 extern float __cdecl log2f (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
364 extern long double __cdecl log2l (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
365 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
366 extern double __cdecl logb (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
367 extern float __cdecl logbf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
368 extern long double __cdecl logbl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
369 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
370 __CRT_INLINE double __cdecl logb (double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
371 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
372 double res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
373 __asm__ ("fxtract\n\t" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
374 "fstp %%st" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
375 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
376 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
377 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
378 __CRT_INLINE float __cdecl logbf (float x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
379 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
380 float res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
381 __asm__ ("fxtract\n\t" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
382 "fstp %%st" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
383 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
384 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
385 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
386 __CRT_INLINE long double __cdecl logbl (long double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
387 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
388 long double res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
389 __asm__ ("fxtract\n\t" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
390 "fstp %%st" : "=t" (res) : "0" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
391 return res; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
392 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
393 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
394 extern long double __cdecl modfl (long double, long double*); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
395 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
396 /* 7.12.6.13 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
397 extern double __cdecl scalbn (double, int); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
398 extern float __cdecl scalbnf (float, int); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
399 extern long double __cdecl scalbnl (long double, int); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
400 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
401 extern double __cdecl scalbln (double, long); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
402 extern float __cdecl scalblnf (float, long); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
403 extern long double __cdecl scalblnl (long double, long); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
404 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
405 /* 7.12.7.1 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
406 /* Implementations adapted from Cephes versions */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
407 extern double __cdecl cbrt (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
408 extern float __cdecl cbrtf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
409 extern long double __cdecl cbrtl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
410 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
411 __CRT_INLINE float __cdecl hypotf (float x, float y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
412 { return (float) hypot (x, y);} |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
413 extern long double __cdecl hypotl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
414 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
415 extern long double __cdecl powl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
416 extern long double __cdecl expl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
417 extern long double __cdecl expm1l(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
418 extern long double __cdecl coshl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
419 extern long double __cdecl fabsl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
420 extern long double __cdecl acosl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
421 extern long double __cdecl asinl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
422 extern long double __cdecl atanl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
423 extern long double __cdecl atan2l(long double,long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
424 extern long double __cdecl sinhl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
425 extern long double __cdecl tanhl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
426 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
427 /* 7.12.8.1 The erf functions */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
428 extern double __cdecl erf (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
429 extern float __cdecl erff (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
430 /* TODO |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
431 extern long double __cdecl erfl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
432 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
433 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
434 /* 7.12.8.2 The erfc functions */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
435 extern double __cdecl erfc (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
436 extern float __cdecl erfcf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
437 /* TODO |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
438 extern long double __cdecl erfcl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
439 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
440 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
441 /* 7.12.8.3 The lgamma functions */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
442 extern double __cdecl lgamma (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
443 extern float __cdecl lgammaf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
444 extern long double __cdecl lgammal (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
445 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
446 /* 7.12.8.4 The tgamma functions */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
447 extern double __cdecl tgamma (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
448 extern float __cdecl tgammaf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
449 extern long double __cdecl tgammal (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
450 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
451 extern long double __cdecl ceill (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
452 extern long double __cdecl floorl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
453 extern long double __cdecl frexpl(long double,int *); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
454 extern long double __cdecl log10l(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
455 extern long double __cdecl logl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
456 extern long double __cdecl cosl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
457 extern long double __cdecl sinl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
458 extern long double __cdecl tanl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
459 extern long double sqrtl(long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
460 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
461 /* 7.12.9.3 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
462 extern double __cdecl nearbyint ( double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
463 extern float __cdecl nearbyintf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
464 extern long double __cdecl nearbyintl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
465 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
466 /* 7.12.9.4 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
467 /* round, using fpu control word settings */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
468 __CRT_INLINE double __cdecl rint (double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
469 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
470 double retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
471 __asm__ ( |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
472 "fldl %1\n" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
473 "frndint \n" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
474 "fstl %0\n" : "=m" (retval) : "m" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
475 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
476 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
477 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
478 __CRT_INLINE float __cdecl rintf (float x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
479 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
480 float retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
481 __asm__ ( |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
482 "flds %1\n" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
483 "frndint \n" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
484 "fsts %0\n" : "=m" (retval) : "m" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
485 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
486 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
487 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
488 __CRT_INLINE long double __cdecl rintl (long double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
489 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
490 long double retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
491 __asm__ ( |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
492 "fldt %1\n" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
493 "frndint \n" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
494 "fstt %0\n" : "=m" (retval) : "m" (x)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
495 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
496 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
497 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
498 /* 7.12.9.5 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
499 __CRT_INLINE long __cdecl lrint (double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
500 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
501 long retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
502 __asm__ __volatile__ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
503 ("fldl %1\n" \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
504 "fistpl %0" : "=m" (retval) : "m" (x)); \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
505 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
506 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
507 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
508 __CRT_INLINE long __cdecl lrintf (float x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
509 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
510 long retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
511 __asm__ __volatile__ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
512 ("flds %1\n" \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
513 "fistpl %0" : "=m" (retval) : "m" (x)); \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
514 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
515 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
516 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
517 __CRT_INLINE long __cdecl lrintl (long double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
518 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
519 long retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
520 __asm__ __volatile__ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
521 ("fldt %1\n" \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
522 "fistpl %0" : "=m" (retval) : "m" (x)); \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
523 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
524 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
525 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
526 __CRT_INLINE long long __cdecl llrint (double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
527 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
528 long long retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
529 __asm__ __volatile__ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
530 ("fldl %1\n" \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
531 "fistpll %0" : "=m" (retval) : "m" (x)); \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
532 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
533 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
534 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
535 __CRT_INLINE long long __cdecl llrintf (float x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
536 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
537 long long retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
538 __asm__ __volatile__ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
539 ("flds %1\n" \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
540 "fistpll %0" : "=m" (retval) : "m" (x)); \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
541 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
542 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
543 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
544 __CRT_INLINE long long __cdecl llrintl (long double x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
545 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
546 long long retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
547 __asm__ __volatile__ \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
548 ("fldt %1\n" \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
549 "fistpll %0" : "=m" (retval) : "m" (x)); \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
550 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
551 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
552 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
553 #define FE_TONEAREST 0x0000 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
554 #define FE_DOWNWARD 0x0400 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
555 #define FE_UPWARD 0x0800 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
556 #define FE_TOWARDZERO 0x0c00 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
557 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
558 __CRT_INLINE double trunc (double _x) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
559 { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
560 double retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
561 unsigned short saved_cw; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
562 unsigned short tmp_cw; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
563 __asm__ ("fnstcw %0;" : "=m" (saved_cw)); /* save FPU control word */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
564 tmp_cw = (saved_cw & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO)) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
565 | FE_TOWARDZERO; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
566 __asm__ ("fldcw %0;" : : "m" (tmp_cw)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
567 __asm__ ("fldl %1;" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
568 "frndint;" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
569 "fstl %0;" : "=m" (retval) : "m" (_x)); /* round towards zero */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
570 __asm__ ("fldcw %0;" : : "m" (saved_cw) ); /* restore saved control word */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
571 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
572 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
573 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
574 /* 7.12.9.6 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
575 /* round away from zero, regardless of fpu control word settings */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
576 extern double __cdecl round (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
577 extern float __cdecl roundf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
578 extern long double __cdecl roundl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
579 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
580 /* 7.12.9.7 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
581 extern long __cdecl lround (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
582 extern long __cdecl lroundf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
583 extern long __cdecl lroundl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
584 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
585 extern long long __cdecl llround (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
586 extern long long __cdecl llroundf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
587 extern long long __cdecl llroundl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
588 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
589 /* 7.12.9.8 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
590 /* round towards zero, regardless of fpu control word settings */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
591 extern double __cdecl trunc (double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
592 extern float __cdecl truncf (float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
593 extern long double __cdecl truncl (long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
594 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
595 extern long double __cdecl fmodl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
596 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
597 /* 7.12.10.2 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
598 extern double __cdecl remainder (double, double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
599 extern float __cdecl remainderf (float, float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
600 extern long double __cdecl remainderl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
601 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
602 /* 7.12.10.3 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
603 extern double __cdecl remquo(double, double, int *); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
604 extern float __cdecl remquof(float, float, int *); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
605 extern long double __cdecl remquol(long double, long double, int *); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
606 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
607 /* 7.12.11.1 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
608 extern double __cdecl copysign (double, double); /* in libmoldname.a */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
609 extern float __cdecl copysignf (float, float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
610 extern long double __cdecl copysignl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
611 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
612 /* 7.12.11.2 Return a NaN */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
613 extern double __cdecl nan(const char *tagp); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
614 extern float __cdecl nanf(const char *tagp); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
615 extern long double __cdecl nanl(const char *tagp); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
616 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
617 #ifndef __STRICT_ANSI__ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
618 #define _nan() nan("") |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
619 #define _nanf() nanf("") |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
620 #define _nanl() nanl("") |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
621 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
622 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
623 /* 7.12.11.3 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
624 extern double __cdecl nextafter (double, double); /* in libmoldname.a */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
625 extern float __cdecl nextafterf (float, float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
626 extern long double __cdecl nextafterl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
627 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
628 /* 7.12.11.4 The nexttoward functions: TODO */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
629 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
630 /* 7.12.12.1 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
631 /* x > y ? (x - y) : 0.0 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
632 extern double __cdecl fdim (double x, double y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
633 extern float __cdecl fdimf (float x, float y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
634 extern long double __cdecl fdiml (long double x, long double y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
635 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
636 /* fmax and fmin. |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
637 NaN arguments are treated as missing data: if one argument is a NaN |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
638 and the other numeric, then these functions choose the numeric |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
639 value. */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
640 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
641 /* 7.12.12.2 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
642 extern double __cdecl fmax (double, double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
643 extern float __cdecl fmaxf (float, float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
644 extern long double __cdecl fmaxl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
645 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
646 /* 7.12.12.3 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
647 extern double __cdecl fmin (double, double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
648 extern float __cdecl fminf (float, float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
649 extern long double __cdecl fminl (long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
650 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
651 /* 7.12.13.1 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
652 /* return x * y + z as a ternary op */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
653 extern double __cdecl fma (double, double, double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
654 extern float __cdecl fmaf (float, float, float); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
655 extern long double __cdecl fmal (long double, long double, long double); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
656 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
657 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
658 #if 0 // gr: duplicate, see below |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
659 /* 7.12.14 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
660 /* |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
661 * With these functions, comparisons involving quiet NaNs set the FP |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
662 * condition code to "unordered". The IEEE floating-point spec |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
663 * dictates that the result of floating-point comparisons should be |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
664 * false whenever a NaN is involved, with the exception of the != op, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
665 * which always returns true: yes, (NaN != NaN) is true). |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
666 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
667 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
668 #if __GNUC__ >= 3 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
669 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
670 #define isgreater(x, y) __builtin_isgreater(x, y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
671 #define isgreaterequal(x, y) __builtin_isgreaterequal(x, y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
672 #define isless(x, y) __builtin_isless(x, y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
673 #define islessequal(x, y) __builtin_islessequal(x, y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
674 #define islessgreater(x, y) __builtin_islessgreater(x, y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
675 #define isunordered(x, y) __builtin_isunordered(x, y) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
676 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
677 #else |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
678 /* helper */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
679 __CRT_INLINE int __cdecl |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
680 __fp_unordered_compare (long double x, long double y){ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
681 unsigned short retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
682 __asm__ ("fucom %%st(1);" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
683 "fnstsw;": "=a" (retval) : "t" (x), "u" (y)); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
684 return retval; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
685 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
686 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
687 #define isgreater(x, y) ((__fp_unordered_compare(x, y) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
688 & 0x4500) == 0) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
689 #define isless(x, y) ((__fp_unordered_compare (y, x) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
690 & 0x4500) == 0) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
691 #define isgreaterequal(x, y) ((__fp_unordered_compare (x, y) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
692 & FP_INFINITE) == 0) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
693 #define islessequal(x, y) ((__fp_unordered_compare(y, x) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
694 & FP_INFINITE) == 0) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
695 #define islessgreater(x, y) ((__fp_unordered_compare(x, y) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
696 & FP_SUBNORMAL) == 0) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
697 #define isunordered(x, y) ((__fp_unordered_compare(x, y) \ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
698 & 0x4500) == 0x4500) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
699 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
700 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
701 #endif //0 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
702 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
703 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
704 #endif /* __STDC_VERSION__ >= 199901L */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
705 #endif /* __NO_ISOCEXT */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
706 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
707 #ifdef __cplusplus |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
708 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
709 extern "C++" { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
710 template<class _Ty> inline _Ty _Pow_int(_Ty _X,int _Y) { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
711 unsigned int _N; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
712 if(_Y >= 0) _N = (unsigned int)_Y; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
713 else _N = (unsigned int)(-_Y); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
714 for(_Ty _Z = _Ty(1);;_X *= _X) { |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
715 if((_N & 1)!=0) _Z *= _X; |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
716 if((_N >>= 1)==0) return (_Y < 0 ? _Ty(1) / _Z : _Z); |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
717 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
718 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
719 } |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
720 #endif |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
721 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
722 #pragma pack(pop) |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
723 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
724 /* 7.12.14 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
725 /* |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
726 * With these functions, comparisons involving quiet NaNs set the FP |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
727 * condition code to "unordered". The IEEE floating-point spec |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
728 * dictates that the result of floating-point comparisons should be |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
729 * false whenever a NaN is involved, with the exception of the != op, |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
730 * which always returns true: yes, (NaN != NaN) is true). |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
731 */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
732 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
733 /* Mini libm (inline __fpclassify*, __signbit* and variants) */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
734 #include "tcc/tcc_libm.h" |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
735 |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
736 #endif /* End _MATH_H_ */ |
|
91c8c3b7cbf0
add: futhark tests for generating vulkan api
sam <sam@basx.dev>
parents:
diff
changeset
|
737 |
