Forráskód Böngészése

LibM: Organise math.h so it is less of a wall of functions

The categories are the same categories used by cppreference on its page
for numeric functions.
Mițca Dumitru 4 éve
szülő
commit
7aac174bc8
1 módosított fájl, 100 hozzáadás és 96 törlés
  1. 100 96
      Userland/Libraries/LibM/math.h

+ 100 - 96
Userland/Libraries/LibM/math.h

@@ -77,51 +77,121 @@ __BEGIN_DECLS
 #define DOUBLE_MAX ((double)0b0111111111101111111111111111111111111111111111111111111111111111)
 #define DOUBLE_MIN ((double)0b0000000000010000000000000000000000000000000000000000000000000000)
 
+#define FP_ILOGB0 INT_MIN
+#define FP_ILOGNAN INT_MAX
+
+/* Basic floating point operations */
+long double fabsl(long double) NOEXCEPT;
+double fabs(double) NOEXCEPT;
+float fabsf(float) NOEXCEPT;
+long double fmodl(long double, long double) NOEXCEPT;
+double fmod(double, double) NOEXCEPT;
+float fmodf(float, float) NOEXCEPT;
 long double nanl(const char*) NOEXCEPT;
 double nan(const char*) NOEXCEPT;
 float nanf(const char*) NOEXCEPT;
 
-long double acosl(long double) NOEXCEPT;
-double acos(double) NOEXCEPT;
-float acosf(float) NOEXCEPT;
+/* Exponential functions */
+long double expl(long double) NOEXCEPT;
+double exp(double) NOEXCEPT;
+float expf(float) NOEXCEPT;
+long double exp2l(long double) NOEXCEPT;
+double exp2(double) NOEXCEPT;
+float exp2f(float) NOEXCEPT;
+long double expm1l(long double) NOEXCEPT;
+double expm1(double) NOEXCEPT;
+float expm1f(float) NOEXCEPT;
+long double logl(long double) NOEXCEPT;
+double log(double) NOEXCEPT;
+float logf(float) NOEXCEPT;
+double log2(double) NOEXCEPT;
+float log2f(float) NOEXCEPT;
+long double log2l(long double) NOEXCEPT;
+long double log10l(long double) NOEXCEPT;
+double log10(double) NOEXCEPT;
+float log10f(float) NOEXCEPT;
+long double log1pl(long double) NOEXCEPT;
+double log1p(double) NOEXCEPT;
+float log1pf(float) NOEXCEPT;
+
+/* Power functions */
+long double powl(long double x, long double y) NOEXCEPT;
+double pow(double x, double y) NOEXCEPT;
+float powf(float x, float y) NOEXCEPT;
+long double sqrtl(long double) NOEXCEPT;
+double sqrt(double) NOEXCEPT;
+float sqrtf(float) NOEXCEPT;
+long double cbrtl(long double) NOEXCEPT;
+double cbrt(double) NOEXCEPT;
+float cbrtf(float) NOEXCEPT;
+long double hypotl(long double, long double) NOEXCEPT;
+double hypot(double, double) NOEXCEPT;
+float hypotf(float, float) NOEXCEPT;
+
+/* Trigonometric functions */
+long double sinl(long double) NOEXCEPT;
+double sin(double) NOEXCEPT;
+float sinf(float) NOEXCEPT;
+long double cosl(long double) NOEXCEPT;
+double cos(double) NOEXCEPT;
+float cosf(float) NOEXCEPT;
+long double tanl(long double) NOEXCEPT;
+double tan(double) NOEXCEPT;
+float tanf(float) NOEXCEPT;
 long double asinl(long double) NOEXCEPT;
 double asin(double) NOEXCEPT;
 float asinf(float) NOEXCEPT;
+long double acosl(long double) NOEXCEPT;
+double acos(double) NOEXCEPT;
+float acosf(float) NOEXCEPT;
 long double atanl(long double) NOEXCEPT;
 double atan(double) NOEXCEPT;
 float atanf(float) NOEXCEPT;
 long double atan2l(long double, long double) NOEXCEPT;
 double atan2(double, double) NOEXCEPT;
 float atan2f(float, float) NOEXCEPT;
-long double cosl(long double) NOEXCEPT;
-double cos(double) NOEXCEPT;
-float cosf(float) NOEXCEPT;
-long double coshl(long double) NOEXCEPT;
-double cosh(double) NOEXCEPT;
-float coshf(float) NOEXCEPT;
-long double sinl(long double) NOEXCEPT;
-double sin(double) NOEXCEPT;
-float sinf(float) NOEXCEPT;
+
+/* Hyperbolic functions*/
 long double sinhl(long double) NOEXCEPT;
 double sinh(double) NOEXCEPT;
 float sinhf(float) NOEXCEPT;
-long double tanl(long double) NOEXCEPT;
-double tan(double) NOEXCEPT;
-float tanf(float) NOEXCEPT;
+long double coshl(long double) NOEXCEPT;
+double cosh(double) NOEXCEPT;
+float coshf(float) NOEXCEPT;
 long double tanhl(long double) NOEXCEPT;
 double tanh(double) NOEXCEPT;
 float tanhf(float) NOEXCEPT;
+long double asinhl(long double) NOEXCEPT;
+double asinh(double) NOEXCEPT;
+float asinhf(float) NOEXCEPT;
+long double acoshl(long double) NOEXCEPT;
+double acosh(double) NOEXCEPT;
+float acoshf(float) NOEXCEPT;
+long double atanhl(long double) NOEXCEPT;
+double atanh(double) NOEXCEPT;
+float atanhf(float) NOEXCEPT;
+
+/* Error and gamma functions */
+long double erfl(long double) NOEXCEPT;
+double erf(double) NOEXCEPT;
+float erff(float) NOEXCEPT;
+long double erfcl(long double) NOEXCEPT;
+double erfc(double) NOEXCEPT;
+float erfcf(float) NOEXCEPT;
+double gamma(double) NOEXCEPT;
+
+/* Nearest integer floating point operations */
+long double ceill(long double) NOEXCEPT;
 double ceil(double) NOEXCEPT;
 float ceilf(float) NOEXCEPT;
-long double ceill(long double) NOEXCEPT;
+long double floorl(long double) NOEXCEPT;
 double floor(double) NOEXCEPT;
 float floorf(float) NOEXCEPT;
-long double floorl(long double) NOEXCEPT;
+long double truncl(long double) NOEXCEPT;
 double trunc(double) NOEXCEPT;
 float truncf(float) NOEXCEPT;
-long double truncl(long double) NOEXCEPT;
-double round(double) NOEXCEPT;
 float roundf(float) NOEXCEPT;
+double round(double) NOEXCEPT;
 long double roundl(long double) NOEXCEPT;
 long lroundf(float) NOEXCEPT;
 long lround(double) NOEXCEPT;
@@ -129,108 +199,42 @@ long lroundl(long double) NOEXCEPT;
 long long llroundf(float) NOEXCEPT;
 long long llround(double) NOEXCEPT;
 long long llroundd(long double) NOEXCEPT;
-double rint(double) NOEXCEPT;
 float rintf(float) NOEXCEPT;
+double rint(double) NOEXCEPT;
 long lrintl(long double) NOEXCEPT;
 long lrint(double) NOEXCEPT;
 long lrintf(float) NOEXCEPT;
 long long llrintl(long double) NOEXCEPT;
 long long llrint(double) NOEXCEPT;
 long long llrintf(float) NOEXCEPT;
-long double fabsl(long double) NOEXCEPT;
-double fabs(double) NOEXCEPT;
-float fabsf(float) NOEXCEPT;
-long double fmodl(long double, long double) NOEXCEPT;
-double fmod(double, double) NOEXCEPT;
-float fmodf(float, float) NOEXCEPT;
-long double expl(long double) NOEXCEPT;
-double exp(double) NOEXCEPT;
-float expf(float) NOEXCEPT;
-long double exp2l(long double) NOEXCEPT;
-double exp2(double) NOEXCEPT;
-float exp2f(float) NOEXCEPT;
+
+/* Floating point manipulation functions */
 long double frexpl(long double, int* exp) NOEXCEPT;
 double frexp(double, int* exp) NOEXCEPT;
 float frexpf(float, int* exp) NOEXCEPT;
-long double logl(long double) NOEXCEPT;
-double log(double) NOEXCEPT;
-float logf(float) NOEXCEPT;
-long double log10l(long double) NOEXCEPT;
-double log10(double) NOEXCEPT;
-float log10f(float) NOEXCEPT;
-long double sqrtl(long double) NOEXCEPT;
-double sqrt(double) NOEXCEPT;
-float sqrtf(float) NOEXCEPT;
-
+double ldexp(double, int exp) NOEXCEPT;
+float ldexpf(float, int exp) NOEXCEPT;
 long double modfl(long double, long double*) NOEXCEPT;
 double modf(double, double*) NOEXCEPT;
 float modff(float, float*) NOEXCEPT;
-double ldexp(double, int exp) NOEXCEPT;
-float ldexpf(float, int exp) NOEXCEPT;
-
-long double powl(long double x, long double y) NOEXCEPT;
-double pow(double x, double y) NOEXCEPT;
-float powf(float x, float y) NOEXCEPT;
-
-#define FP_ILOGB0 INT_MIN
-#define FP_ILOGNAN INT_MAX
-
+float scalbnf(float, int) NOEXCEPT;
+double scalbn(double, int) NOEXCEPT;
+long double scalbnl(long double, int) NOEXCEPT;
+float scalbnlf(float, long) NOEXCEPT;
+double scalbln(double, long) NOEXCEPT;
+long double scalblnl(long double, long) NOEXCEPT;
 int ilogbl(long double) NOEXCEPT;
 int ilogb(double) NOEXCEPT;
 int ilogbf(float) NOEXCEPT;
 long double logbl(long double) NOEXCEPT;
 double logb(double) NOEXCEPT;
 float logbf(float) NOEXCEPT;
-double log2(double) NOEXCEPT;
-float log2f(float) NOEXCEPT;
-long double log2l(long double) NOEXCEPT;
-double frexp(double, int*) NOEXCEPT;
-float frexpf(float, int*) NOEXCEPT;
-long double frexpl(long double, int*) NOEXCEPT;
-
-double gamma(double) NOEXCEPT;
-long double expm1l(long double) NOEXCEPT;
-double expm1(double) NOEXCEPT;
-float expm1f(float) NOEXCEPT;
-long double cbrtl(long double) NOEXCEPT;
-double cbrt(double) NOEXCEPT;
-float cbrtf(float) NOEXCEPT;
-long double log1pl(long double) NOEXCEPT;
-double log1p(double) NOEXCEPT;
-float log1pf(float) NOEXCEPT;
-long double acoshl(long double) NOEXCEPT;
-double acosh(double) NOEXCEPT;
-float acoshf(float) NOEXCEPT;
-long double asinhl(long double) NOEXCEPT;
-double asinh(double) NOEXCEPT;
-float asinhf(float) NOEXCEPT;
-long double atanhl(long double) NOEXCEPT;
-double atanh(double) NOEXCEPT;
-float atanhf(float) NOEXCEPT;
-long double hypotl(long double, long double) NOEXCEPT;
-double hypot(double, double) NOEXCEPT;
-float hypotf(float, float) NOEXCEPT;
-long double erfl(long double) NOEXCEPT;
-double erf(double) NOEXCEPT;
-float erff(float) NOEXCEPT;
-long double erfcl(long double) NOEXCEPT;
-double erfc(double) NOEXCEPT;
-float erfcf(float) NOEXCEPT;
-
 double nextafter(double, double) NOEXCEPT;
 float nextafterf(float, float) NOEXCEPT;
 long double nextafterl(long double, long double) NOEXCEPT;
 double nexttoward(double, long double) NOEXCEPT;
 float nexttowardf(float, long double) NOEXCEPT;
 long double nexttowardl(long double, long double) NOEXCEPT;
-
-float scalbnf(float, int) NOEXCEPT;
-double scalbn(double, int) NOEXCEPT;
-long double scalbnl(long double, int) NOEXCEPT;
-float scalbnlf(float, long) NOEXCEPT;
-double scalbln(double, long) NOEXCEPT;
-long double scalblnl(long double, long) NOEXCEPT;
-
 float copysignf(float x, float y) NOEXCEPT;
 double copysign(double x, double y) NOEXCEPT;
 long double copysignl(long double x, long double y) NOEXCEPT;