7 RUDIMENTS_INLINE int32_t math::absoluteValue(int32_t j) {
12 RUDIMENTS_INLINE div_t math::divide(int32_t numer, int32_t denom) {
14 return ldiv(numer,denom);
17 RUDIMENTS_INLINE int64_t math::absoluteValue(int64_t j) {
21 RUDIMENTS_INLINE lldiv_t math::divide(int64_t numer, int64_t denom) {
22 return lldiv(numer,denom);
30 RUDIMENTS_INLINE
bool math::isFinite(
float x) {
34 RUDIMENTS_INLINE
bool math::isNormal(
float x) {
38 RUDIMENTS_INLINE
bool math::isSubNormal(
float x) {
39 return (fpclassify(x)==FP_SUBNORMAL);
42 RUDIMENTS_INLINE
bool math::isNaN(
float x) {
46 RUDIMENTS_INLINE
bool math::isInfinite(
float x) {
50 RUDIMENTS_INLINE
bool math::isGreater(
float x,
float y) {
51 return isgreater(x,y);
54 RUDIMENTS_INLINE
bool math::isGreaterOrEqual(
float x,
float y) {
55 return isgreaterequal(x,y);
58 RUDIMENTS_INLINE
bool math::isLess(
float x,
float y) {
62 RUDIMENTS_INLINE
bool math::isLessOrEqual(
float x,
float y) {
63 return islessequal(x,y);
66 RUDIMENTS_INLINE
bool math::isLessOrGreater(
float x,
float y) {
67 return islessgreater(x,y);
70 RUDIMENTS_INLINE
bool math::areNaN(
float x,
float y) {
71 return isunordered(x,y);
74 RUDIMENTS_INLINE
bool math::isSignBitSet(
float x) {
78 RUDIMENTS_INLINE
float math::arcCosine(
float x) {
82 RUDIMENTS_INLINE
float math::arcSine(
float x) {
86 RUDIMENTS_INLINE
float math::arcTangent(
float x) {
90 RUDIMENTS_INLINE
float math::arcTangent(
float y,
float x) {
94 RUDIMENTS_INLINE
float math::cosine(
float x) {
98 RUDIMENTS_INLINE
float math::sine(
float x) {
102 RUDIMENTS_INLINE
float math::tangent(
float x) {
106 RUDIMENTS_INLINE
float math::hyperbolicArcCosine(
float x) {
110 RUDIMENTS_INLINE
float math::hyperbolicArcSine(
float x) {
114 RUDIMENTS_INLINE
float math::hyperbolicArcTangent(
float x) {
118 RUDIMENTS_INLINE
float math::hyperbolicCosine(
float x) {
122 RUDIMENTS_INLINE
float math::hyperbolicSine(
float x) {
126 RUDIMENTS_INLINE
float math::hyperbolicTangent(
float x) {
130 RUDIMENTS_INLINE
float math::naturalExponent(
float x) {
134 RUDIMENTS_INLINE
float math::normalize(
float x, int32_t *exp) {
135 return frexpf(x,exp);
138 RUDIMENTS_INLINE
float math::naturalLog(
float x) {
142 RUDIMENTS_INLINE
float math::logBase10(
float x) {
146 RUDIMENTS_INLINE
float math::naturalExponentMinusOne(
float x) {
150 RUDIMENTS_INLINE
float math::naturalLogPlusOne(
float x) {
154 RUDIMENTS_INLINE
float math::exponent(
float x) {
158 RUDIMENTS_INLINE
float math::exponentBase2(
float x) {
162 RUDIMENTS_INLINE
float math::logBase2(
float x) {
166 RUDIMENTS_INLINE
float math::power(
float x,
float y) {
170 RUDIMENTS_INLINE
float math::squareRoot(
float x) {
174 RUDIMENTS_INLINE
float math::hypotenuse(
float x,
float y) {
178 RUDIMENTS_INLINE
float math::cubeRoot(
float x) {
182 RUDIMENTS_INLINE
float math::ceiling(
float x) {
186 RUDIMENTS_INLINE
float math::absoluteValue(
float x) {
190 RUDIMENTS_INLINE
float math::floor(
float x) {
194 RUDIMENTS_INLINE
float math::remainder(
float x,
float y) {
198 RUDIMENTS_INLINE
float math::nearbyInteger(
float x) {
199 return nearbyintf(x);
202 RUDIMENTS_INLINE
float math::round(
float x) {
206 RUDIMENTS_INLINE
float math::truncate(
float x) {
210 RUDIMENTS_INLINE
float math::remainder(
float x,
float y, int32_t *quo) {
211 return remquof(x,y,quo);
214 RUDIMENTS_INLINE
long math::roundToLong(
float x) {
218 RUDIMENTS_INLINE int64_t math::roundToLongLong(
float x) {
222 RUDIMENTS_INLINE
long math::roundAwayFromZeroToLong(
float x) {
226 RUDIMENTS_INLINE int64_t math::roundAwayFromZeroToLongLong(
float x) {
230 RUDIMENTS_INLINE
float math::copySignBit(
float x,
float y) {
231 return copysignf(x,y);
234 RUDIMENTS_INLINE
float math::errorFunction(
float x) {
238 RUDIMENTS_INLINE
float math::complementaryErrorFunction(
float x) {
242 RUDIMENTS_INLINE
float math::trueGamma(
float x) {
246 RUDIMENTS_INLINE
float math::naturalLogGamma(
float x) {
250 RUDIMENTS_INLINE
float math::roundInexact(
float x) {
254 RUDIMENTS_INLINE
float math::nextAfter(
float x,
float y) {
255 return nextafterf(x,y);
258 RUDIMENTS_INLINE
float math::nextToward(
float x,
float y) {
259 return nexttowardf(x,y);
262 RUDIMENTS_INLINE
float math::scaleByRadixToPower(
float x,
float n) {
266 RUDIMENTS_INLINE
float math::scaleByRadixToPower(
float x, int32_t n) {
270 RUDIMENTS_INLINE
float math::scaleByRadixToPower(
float x,
long n) {
271 return scalblnf(x,n);
274 RUDIMENTS_INLINE int32_t math::integralExponent(
float x) {
278 RUDIMENTS_INLINE
float math::positiveDifference(
float x,
float y) {
282 RUDIMENTS_INLINE
float math::larger(
float x,
float y) {
286 RUDIMENTS_INLINE
float math::smaller(
float x,
float y) {
290 RUDIMENTS_INLINE
float math::multiplyAndAdd(
float x,
float y,
float z) {
294 RUDIMENTS_INLINE
float math::argument(
float complex z) {
298 RUDIMENTS_INLINE
float complex math::conjugate(
float complex z) {
302 RUDIMENTS_INLINE
float complex math::project(
float complex z) {
306 RUDIMENTS_INLINE
float math::imaginary(
float complex z) {
310 RUDIMENTS_INLINE
float math::real(
float complex z) {
318 RUDIMENTS_INLINE
bool math::isFinite(
double x) {
322 RUDIMENTS_INLINE
bool math::isNormal(
double x) {
326 RUDIMENTS_INLINE
bool math::isSubNormal(
double x) {
327 return (fpclassify(x)==FP_SUBNORMAL);
330 RUDIMENTS_INLINE
bool math::isNaN(
double x) {
334 RUDIMENTS_INLINE
bool math::isInfinite(
double x) {
338 RUDIMENTS_INLINE
bool math::isGreater(
double x,
double y) {
339 return isgreater(x,y);
342 RUDIMENTS_INLINE
bool math::isGreaterOrEqual(
double x,
double y) {
343 return isgreaterequal(x,y);
346 RUDIMENTS_INLINE
bool math::isLess(
double x,
double y) {
350 RUDIMENTS_INLINE
bool math::isLessOrEqual(
double x,
double y) {
351 return islessequal(x,y);
354 RUDIMENTS_INLINE
bool math::isLessOrGreater(
double x,
double y) {
355 return islessgreater(x,y);
358 RUDIMENTS_INLINE
bool math::areNaN(
double x,
double y) {
359 return isunordered(x,y);
362 RUDIMENTS_INLINE
bool math::isSignBitSet(
double x) {
366 RUDIMENTS_INLINE
double math::arcCosine(
double x) {
370 RUDIMENTS_INLINE
double math::arcSine(
double x) {
374 RUDIMENTS_INLINE
double math::arcTangent(
double x) {
378 RUDIMENTS_INLINE
double math::arcTangent(
double y,
double x) {
382 RUDIMENTS_INLINE
double math::cosine(
double x) {
386 RUDIMENTS_INLINE
double math::sine(
double x) {
390 RUDIMENTS_INLINE
double math::tangent(
double x) {
394 RUDIMENTS_INLINE
double math::hyperbolicArcCosine(
double x) {
398 RUDIMENTS_INLINE
double math::hyperbolicArcSine(
double x) {
402 RUDIMENTS_INLINE
double math::hyperbolicArcTangent(
double x) {
406 RUDIMENTS_INLINE
double math::hyperbolicCosine(
double x) {
410 RUDIMENTS_INLINE
double math::hyperbolicSine(
double x) {
414 RUDIMENTS_INLINE
double math::hyperbolicTangent(
double x) {
418 RUDIMENTS_INLINE
double math::naturalExponent(
double x) {
422 RUDIMENTS_INLINE
double math::normalize(
double x, int32_t *exp) {
426 RUDIMENTS_INLINE
double math::naturalLog(
double x) {
430 RUDIMENTS_INLINE
double math::logBase10(
double x) {
434 RUDIMENTS_INLINE
double math::naturalExponentMinusOne(
double x) {
438 RUDIMENTS_INLINE
double math::naturalLogPlusOne(
double x) {
442 RUDIMENTS_INLINE
double math::exponent(
double x) {
446 RUDIMENTS_INLINE
double math::exponentBase2(
double x) {
450 RUDIMENTS_INLINE
double math::logBase2(
double x) {
454 RUDIMENTS_INLINE
double math::power(
double x,
double y) {
458 RUDIMENTS_INLINE
double math::squareRoot(
double x) {
462 RUDIMENTS_INLINE
double math::hypotenuse(
double x,
double y) {
466 RUDIMENTS_INLINE
double math::cubeRoot(
double x) {
470 RUDIMENTS_INLINE
double math::ceiling(
double x) {
474 RUDIMENTS_INLINE
double math::absoluteValue(
double x) {
478 RUDIMENTS_INLINE
double math::floor(
double x) {
482 RUDIMENTS_INLINE
double math::remainder(
double x,
double y) {
486 RUDIMENTS_INLINE
double math::nearbyInteger(
double x) {
490 RUDIMENTS_INLINE
double math::round(
double x) {
494 RUDIMENTS_INLINE
double math::truncate(
double x) {
498 RUDIMENTS_INLINE
double math::remainder(
double x,
double y, int32_t *quo) {
499 return remquo(x,y,quo);
502 RUDIMENTS_INLINE
long math::roundToLong(
double x) {
506 RUDIMENTS_INLINE int64_t math::roundToLongLong(
double x) {
510 RUDIMENTS_INLINE
long math::roundAwayFromZeroToLong(
double x) {
514 RUDIMENTS_INLINE int64_t math::roundAwayFromZeroToLongLong(
double x) {
518 RUDIMENTS_INLINE
double math::copySignBit(
double x,
double y) {
519 return copysign(x,y);
522 RUDIMENTS_INLINE
double math::errorFunction(
double x) {
526 RUDIMENTS_INLINE
double math::complementaryErrorFunction(
double x) {
530 RUDIMENTS_INLINE
double math::trueGamma(
double x) {
534 RUDIMENTS_INLINE
double math::naturalLogGamma(
double x) {
538 RUDIMENTS_INLINE
double math::roundInexact(
double x) {
542 RUDIMENTS_INLINE
double math::nextAfter(
double x,
double y) {
543 return nextafter(x,y);
546 RUDIMENTS_INLINE
double math::nextToward(
double x,
double y) {
547 return nexttoward(x,y);
550 RUDIMENTS_INLINE
double math::scaleByRadixToPower(
double x,
double n) {
554 RUDIMENTS_INLINE
double math::scaleByRadixToPower(
double x, int32_t n) {
558 RUDIMENTS_INLINE
double math::scaleByRadixToPower(
double x,
long n) {
562 RUDIMENTS_INLINE int32_t math::integralExponent(
double x) {
566 RUDIMENTS_INLINE
double math::positiveDifference(
double x,
double y) {
570 RUDIMENTS_INLINE
double math::larger(
double x,
double y) {
574 RUDIMENTS_INLINE
double math::smaller(
double x,
double y) {
578 RUDIMENTS_INLINE
double math::multiplyAndAdd(
double x,
double y,
double z) {
582 RUDIMENTS_INLINE
double math::argument(
double complex z) {
586 RUDIMENTS_INLINE
double complex math::conjugate(
double complex z) {
590 RUDIMENTS_INLINE
double complex math::project(
double complex z) {
594 RUDIMENTS_INLINE
double math::imaginary(
double complex z) {
598 RUDIMENTS_INLINE
double math::real(
double complex z) {
605 RUDIMENTS_INLINE
bool math::isFinite(
long double x) {
609 RUDIMENTS_INLINE
bool math::isNormal(
long double x) {
613 RUDIMENTS_INLINE
bool math::isSubNormal(
long double x) {
614 return (fpclassify(x)==FP_SUBNORMAL);
617 RUDIMENTS_INLINE
bool math::isNaN(
long double x) {
621 RUDIMENTS_INLINE
bool math::isInfinite(
long double x) {
625 RUDIMENTS_INLINE
bool math::isGreater(
long double x,
long double y) {
626 return isgreater(x,y);
629 RUDIMENTS_INLINE
bool math::isGreaterOrEqual(
long double x,
long double y) {
630 return isgreaterequal(x,y);
633 RUDIMENTS_INLINE
bool math::isLess(
long double x,
long double y) {
637 RUDIMENTS_INLINE
bool math::isLessOrEqual(
long double x,
long double y) {
638 return islessequal(x,y);
641 RUDIMENTS_INLINE
bool math::isLessOrGreater(
long double x,
long double y) {
642 return islessgreater(x,y);
645 RUDIMENTS_INLINE
bool math::areNaN(
long double x,
long double y) {
646 return isunordered(x,y);
649 RUDIMENTS_INLINE
bool math::isSignBitSet(
long double x) {
653 RUDIMENTS_INLINE
long double math::arcCosine(
long double x) {
657 RUDIMENTS_INLINE
long double math::arcSine(
long double x) {
661 RUDIMENTS_INLINE
long double math::arcTangent(
long double x) {
665 RUDIMENTS_INLINE
long double math::arcTangent(
long double y,
long double x) {
669 RUDIMENTS_INLINE
long double math::cosine(
long double x) {
673 RUDIMENTS_INLINE
long double math::sine(
long double x) {
677 RUDIMENTS_INLINE
long double math::tangent(
long double x) {
681 RUDIMENTS_INLINE
long double math::hyperbolicArcCosine(
long double x) {
685 RUDIMENTS_INLINE
long double math::hyperbolicArcSine(
long double x) {
689 RUDIMENTS_INLINE
long double math::hyperbolicArcTangent(
long double x) {
693 RUDIMENTS_INLINE
long double math::hyperbolicCosine(
long double x) {
697 RUDIMENTS_INLINE
long double math::hyperbolicSine(
long double x) {
701 RUDIMENTS_INLINE
long double math::hyperbolicTangent(
long double x) {
705 RUDIMENTS_INLINE
long double math::naturalExponent(
long double x) {
709 RUDIMENTS_INLINE
long double math::normalize(
long double x, int32_t *exp) {
710 return frexpl(x,exp);
713 RUDIMENTS_INLINE
long double math::naturalLog(
long double x) {
717 RUDIMENTS_INLINE
long double math::logBase10(
long double x) {
721 RUDIMENTS_INLINE
long double math::naturalExponentMinusOne(
long double x) {
725 RUDIMENTS_INLINE
long double math::naturalLogPlusOne(
long double x) {
729 RUDIMENTS_INLINE
long double math::exponent(
long double x) {
733 RUDIMENTS_INLINE
long double math::exponentBase2(
long double x) {
737 RUDIMENTS_INLINE
long double math::logBase2(
long double x) {
741 RUDIMENTS_INLINE
long double math::power(
long double x,
long double y) {
745 RUDIMENTS_INLINE
long double math::squareRoot(
long double x) {
749 RUDIMENTS_INLINE
long double math::hypotenuse(
long double x,
long double y) {
753 RUDIMENTS_INLINE
long double math::cubeRoot(
long double x) {
757 RUDIMENTS_INLINE
long double math::ceiling(
long double x) {
761 RUDIMENTS_INLINE
long double math::absoluteValue(
long double x) {
765 RUDIMENTS_INLINE
long double math::floor(
long double x) {
769 RUDIMENTS_INLINE
long double math::remainder(
long double x,
long double y) {
773 RUDIMENTS_INLINE
long double math::nearbyInteger(
long double x) {
774 return nearbyintl(x);
777 RUDIMENTS_INLINE
long double math::round(
long double x) {
781 RUDIMENTS_INLINE
long double math::truncate(
long double x) {
785 RUDIMENTS_INLINE
long double math::remainder(
long double x,
786 long double y, int32_t *quo) {
787 return remquol(x,y,quo);
790 RUDIMENTS_INLINE
long math::roundToLong(
long double x) {
794 RUDIMENTS_INLINE int64_t math::roundToLongLong(
long double x) {
798 RUDIMENTS_INLINE
long math::roundAwayFromZeroToLong(
long double x) {
802 RUDIMENTS_INLINE int64_t math::roundAwayFromZeroToLongLong(
long double x) {
806 RUDIMENTS_INLINE
long double math::copySignBit(
long double x,
long double y) {
807 return copysignl(x,y);
810 RUDIMENTS_INLINE
long double math::errorFunction(
long double x) {
814 RUDIMENTS_INLINE
long double math::complementaryErrorFunction(
long double x) {
818 RUDIMENTS_INLINE
long double math::trueGamma(
long double x) {
822 RUDIMENTS_INLINE
long double math::naturalLogGamma(
long double x) {
826 RUDIMENTS_INLINE
long double math::roundInexact(
long double x) {
830 RUDIMENTS_INLINE
long double math::nextAfter(
long double x,
long double y) {
831 return nextafterl(x,y);
834 RUDIMENTS_INLINE
long double math::nextToward(
long double x,
long double y) {
835 return nexttowardl(x,y);
838 RUDIMENTS_INLINE
long double math::scaleByRadixToPower(
long double x,
843 RUDIMENTS_INLINE
long double math::scaleByRadixToPower(
long double x,
848 RUDIMENTS_INLINE
long double math::scaleByRadixToPower(
long double x,
long n) {
849 return scalblnl(x,n);
852 RUDIMENTS_INLINE int32_t math::integralExponent(
long double x) {
856 RUDIMENTS_INLINE
long double math::positiveDifference(
long double x,
861 RUDIMENTS_INLINE
long double math::larger(
long double x,
long double y) {
865 RUDIMENTS_INLINE
long double math::smaller(
long double x,
long double y) {
869 RUDIMENTS_INLINE
long double math::multiplyAndAdd(
long double x,
870 long double y,
long double z) {
874 RUDIMENTS_INLINE
long double math::argument(
long double complex z) {
878 RUDIMENTS_INLINE
long double complex math::conjugate(
long double complex z) {
882 RUDIMENTS_INLINE
long double complex math::project(
long double complex z) {
886 RUDIMENTS_INLINE
long double math::imaginary(
long double complex z) {
890 RUDIMENTS_INLINE
long double math::real(
long double complex z) {
894 RUDIMENTS_INLINE
float math::loadExponent(
float x, int32_t exp) {
895 return ldexpf(x,exp);
898 RUDIMENTS_INLINE
double math::loadExponent(
double x, int32_t exp) {
902 RUDIMENTS_INLINE
long double math::loadExponent(
long double x, int32_t exp) {
903 return ldexpl(x,exp);