9class RUDIMENTS_DLLSPEC
math {
11 static int32_t absoluteValue(int32_t j);
12 static div_t divide(int32_t numer, int32_t denom);
14 static int64_t absoluteValue(int64_t j);
15 static lldiv_t divide(int64_t numer, int64_t denom);
17 static bool isFinite(
float x);
18 static bool isInfinite(
float x);
20 static bool isNaN(
float x);
21 static bool areNaN(
float x,
float y);
23 static bool isNormal(
float x);
24 static bool isSubNormal(
float x);
26 static bool isGreater(
float x,
float y);
27 static bool isGreaterOrEqual(
float x,
float y);
28 static bool isLess(
float x,
float y);
29 static bool isLessOrEqual(
float x,
float y);
30 static bool isLessOrGreater(
float x,
float y);
32 static bool isSignBitSet(
float x);
33 static float copySignBit(
float x,
float y);
35 static float arcCosine(
float x);
36 static float arcSine(
float x);
37 static float arcTangent(
float x);
38 static float arcTangent(
float y,
float x);
40 static float cosine(
float x);
41 static float sine(
float x);
42 static float tangent(
float x);
44 static float hyperbolicArcCosine(
float x);
45 static float hyperbolicArcSine(
float x);
46 static float hyperbolicArcTangent(
float x);
48 static float hyperbolicCosine(
float x);
49 static float hyperbolicSine(
float x);
50 static float hyperbolicTangent(
float x);
52 static float naturalExponent(
float x);
53 static float naturalLog(
float x);
54 static float naturalExponentMinusOne(
float x);
55 static float naturalLogPlusOne(
float x);
57 static float exponent(
float x);
59 static float normalize(
float x, int32_t *exp);
61 static float logBase10(
float x);
63 static float exponentBase2(
float x);
64 static float logBase2(
float x);
66 static float power(
float x,
float y);
68 static float squareRoot(
float x);
69 static float cubeRoot(
float x);
71 static float hypotenuse(
float x,
float y);
73 static float computeExponent(
float x);
74 static int32_t integralExponent(
float x);
75 static float loadExponent(
float x, int32_t exp);
77 static float ceiling(
float x);
78 static float floor(
float x);
79 static float absoluteValue(
float x);
81 static float remainder(
float x,
float y);
82 static float remainder(
float x,
float y, int32_t *quo);
84 static float truncate(
float x);
85 static float nearbyInteger(
float x);
86 static float round(
float x);
87 static float roundInexact(
float x);
88 static long roundToLong(
float x);
89 static int64_t roundToLongLong(
float x);
90 static long roundAwayFromZeroToLong(
float x);
91 static int64_t roundAwayFromZeroToLongLong(
float x);
92 static float nextAfter(
float x,
float y);
93 static float nextToward(
float x,
float y);
95 static float errorFunction(
float x);
96 static float complementaryErrorFunction(
float x);
98 static float trueGamma(
float x);
99 static float naturalLogGamma(
float x);
101 static float scaleByRadixToPower(
float x,
float n);
102 static float scaleByRadixToPower(
float x, int32_t n);
103 static float scaleByRadixToPower(
float x,
long n);
105 static float larger(
float x,
float y);
106 static float smaller(
float x,
float y);
108 static float multiplyAndAdd(
float x,
float y,
float z);
109 static float positiveDifference(
float x,
float y);
111 static float argument(
float complex z);
112 static float complex conjugate(
float complex z);
113 static float complex project(
float complex z);
114 static float imaginary(
float complex z);
115 static float real(
float complex z);
121 static bool isFinite(
double x);
122 static bool isInfinite(
double x);
124 static bool isNaN(
double x);
125 static bool areNaN(
double x,
double y);
127 static bool isNormal(
double x);
128 static bool isSubNormal(
double x);
130 static bool isGreater(
double x,
double y);
131 static bool isGreaterOrEqual(
double x,
double y);
132 static bool isLess(
double x,
double y);
133 static bool isLessOrEqual(
double x,
double y);
134 static bool isLessOrGreater(
double x,
double y);
136 static bool isSignBitSet(
double x);
137 static double copySignBit(
double x,
double y);
139 static double arcCosine(
double x);
140 static double arcSine(
double x);
141 static double arcTangent(
double x);
142 static double arcTangent(
double y,
double x);
144 static double cosine(
double x);
145 static double sine(
double x);
146 static double tangent(
double x);
148 static double hyperbolicArcCosine(
double x);
149 static double hyperbolicArcSine(
double x);
150 static double hyperbolicArcTangent(
double x);
152 static double hyperbolicCosine(
double x);
153 static double hyperbolicSine(
double x);
154 static double hyperbolicTangent(
double x);
156 static double naturalExponent(
double x);
157 static double naturalLog(
double x);
158 static double naturalExponentMinusOne(
double x);
159 static double naturalLogPlusOne(
double x);
161 static double exponent(
double x);
163 static double normalize(
double x, int32_t *exp);
165 static double logBase10(
double x);
167 static double exponentBase2(
double x);
168 static double logBase2(
double x);
170 static double power(
double x,
double y);
172 static double squareRoot(
double x);
173 static double cubeRoot(
double x);
175 static double hypotenuse(
double x,
double y);
177 static double computeExponent(
double x);
178 static int32_t integralExponent(
double x);
179 static double loadExponent(
double x, int32_t exp);
181 static double ceiling(
double x);
182 static double floor(
double x);
183 static double absoluteValue(
double x);
185 static double remainder(
double x,
double y);
186 static double remainder(
double x,
double y, int32_t *quo);
188 static double truncate(
double x);
189 static double nearbyInteger(
double x);
190 static double round(
double x);
191 static double roundInexact(
double x);
192 static long roundToLong(
double x);
193 static int64_t roundToLongLong(
double x);
194 static long roundAwayFromZeroToLong(
double x);
195 static int64_t roundAwayFromZeroToLongLong(
double x);
196 static double nextAfter(
double x,
double y);
197 static double nextToward(
double x,
double y);
199 static double errorFunction(
double x);
200 static double complementaryErrorFunction(
double x);
202 static double trueGamma(
double x);
203 static double naturalLogGamma(
double x);
205 static double scaleByRadixToPower(
double x,
double n);
206 static double scaleByRadixToPower(
double x, int32_t n);
207 static double scaleByRadixToPower(
double x,
long n);
209 static double larger(
double x,
double y);
210 static double smaller(
double x,
double y);
212 static double multiplyAndAdd(
double x,
double y,
double z);
213 static double positiveDifference(
double x,
double y);
215 static double argument(
double complex z);
216 static double complex conjugate(
double complex z);
217 static double complex project(
double complex z);
218 static double imaginary(
double complex z);
219 static double real(
double complex z);
223 static bool isFinite(
long double x);
224 static bool isInfinite(
long double x);
226 static bool isNaN(
long double x);
227 static bool areNaN(
long double x,
long double y);
229 static bool isNormal(
long double x);
230 static bool isSubNormal(
long double x);
232 static bool isGreater(
long double x,
long double y);
233 static bool isGreaterOrEqual(
long double x,
long double y);
234 static bool isLess(
long double x,
long double y);
235 static bool isLessOrEqual(
long double x,
long double y);
236 static bool isLessOrGreater(
long double x,
long double y);
238 static bool isSignBitSet(
long double x);
239 static long double copySignBit(
long double x,
242 static long double arcCosine(
long double x);
243 static long double arcSine(
long double x);
244 static long double arcTangent(
long double x);
245 static long double arcTangent(
long double y,
248 static long double cosine(
long double x);
249 static long double sine(
long double x);
250 static long double tangent(
long double x);
252 static long double hyperbolicArcCosine(
long double x);
253 static long double hyperbolicArcSine(
long double x);
254 static long double hyperbolicArcTangent(
long double x);
256 static long double hyperbolicCosine(
long double x);
257 static long double hyperbolicSine(
long double x);
258 static long double hyperbolicTangent(
long double x);
260 static long double naturalExponent(
long double x);
261 static long double naturalLog(
long double x);
262 static long double naturalExponentMinusOne(
long double x);
263 static long double naturalLogPlusOne(
long double x);
265 static long double exponent(
long double x);
267 static long double normalize(
long double x, int32_t *exp);
269 static long double logBase10(
long double x);
271 static long double exponentBase2(
long double x);
272 static long double logBase2(
long double x);
274 static long double power(
long double x,
long double y);
276 static long double squareRoot(
long double x);
277 static long double cubeRoot(
long double x);
279 static long double hypotenuse(
long double x,
282 static long double computeExponent(
long double x);
283 static int32_t integralExponent(
long double x);
284 static long double loadExponent(
long double x,
287 static long double ceiling(
long double x);
288 static long double floor(
long double x);
289 static long double absoluteValue(
long double x);
291 static long double remainder(
long double x,
293 static long double remainder(
long double x,
297 static long double truncate(
long double x);
298 static long double nearbyInteger(
long double x);
299 static long double round(
long double x);
300 static long double roundInexact(
long double x);
301 static long roundToLong(
long double x);
302 static int64_t roundToLongLong(
long double x);
303 static long roundAwayFromZeroToLong(
long double x);
304 static int64_t roundAwayFromZeroToLongLong(
306 static long double nextAfter(
long double x,
308 static long double nextToward(
long double x,
311 static long double errorFunction(
long double x);
312 static long double complementaryErrorFunction(
315 static long double trueGamma(
long double x);
316 static long double naturalLogGamma(
long double x);
319 static long double scaleByRadixToPower(
long double x,
321 static long double scaleByRadixToPower(
long double x,
323 static long double scaleByRadixToPower(
long double x,
326 static long double larger(
long double x,
long double y);
327 static long double smaller(
long double x,
long double y);
329 static long double multiplyAndAdd(
long double x,
332 static long double positiveDifference(
long double x,
335 static long double argument(
long double complex z);
336 static long double complex conjugate(
long double complex z);
337 static long double complex project(
long double complex z);
338 static long double imaginary(
long double complex z);
339 static long double real(
long double complex z);