aboutsummaryrefslogtreecommitdiff
path: root/include/mathi.h
diff options
context:
space:
mode:
authorbhgv <bhgv.empire@gmail.com>2018-03-01 16:54:45 +0200
committerbhgv <bhgv.empire@gmail.com>2018-03-01 16:54:45 +0200
commitb786f20bbab5a59046aa78a2c6c2a11536497202 (patch)
tree0851ecdec889eb9b7ba3751cc04d4f0b474e4a9e /include/mathi.h
inferno-os tree was separated from the inferno-os-android (separated from the Android driver)
Diffstat (limited to 'include/mathi.h')
-rw-r--r--include/mathi.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/include/mathi.h b/include/mathi.h
new file mode 100644
index 0000000..14f62b7
--- /dev/null
+++ b/include/mathi.h
@@ -0,0 +1,80 @@
+/*
+ * floating point control and status register masks
+ */
+enum
+{
+ INVAL = 0x0001,
+ ZDIV = 0x0002,
+ OVFL = 0x0004,
+ UNFL = 0x0008,
+ INEX = 0x0010,
+ RND_NR = 0x0000,
+ RND_NINF = 0x0100,
+ RND_PINF = 0x0200,
+ RND_Z = 0x0300,
+ RND_MASK = 0x0300
+};
+
+extern double ipow10(int);
+extern void FPinit(void);
+extern double dot(int, double*, double*);
+extern ulong FPcontrol(ulong, ulong);
+extern ulong FPstatus(ulong, ulong);
+extern void gemm(int, int, int, int, int, double,
+ double*, int, double*, int, double, double*, int);
+extern ulong getFPstatus(void);
+extern ulong getFPcontrol(void);
+extern char* g_fmt(char *, double, int);
+extern int iamax(int, double*);
+extern double fdim(double, double);
+extern double fmax(double, double);
+extern double fmin(double, double);
+extern double norm2(int, double*);
+extern double norm1(int, double*);
+extern double strtod(const char *, char **);
+
+/* fdlibm */
+extern double __ieee754_acos(double);
+extern double __ieee754_acosh(double);
+extern double __ieee754_asin(double);
+extern double asinh(double);
+extern double atan(double);
+extern double __ieee754_atan2(double, double);
+extern double __ieee754_atanh(double);
+extern double cbrt(double);
+extern double ceil(double);
+extern double copysign(double, double);
+extern double cos(double);
+extern double __ieee754_cosh(double);
+extern double erf(double);
+extern double erfc(double);
+extern double __ieee754_exp(double);
+extern double expm1(double);
+extern double fabs(double);
+extern int finite(double);
+extern double floor(double);
+extern double __ieee754_fmod(double, double);
+extern double __ieee754_hypot(double, double);
+extern int ilogb(double);
+extern double __ieee754_j0(double);
+extern double __ieee754_j1(double);
+extern double __ieee754_jn(int, double);
+extern double __ieee754_lgamma_r(double,int*);
+extern double __ieee754_log(double);
+extern double __ieee754_log10(double);
+extern double log1p(double);
+extern double logb(double);
+extern double modf(double, double *);
+extern double nextafter(double, double);
+extern double __ieee754_pow(double, double);
+extern double __ieee754_remainder(double, double);
+extern double rint(double);
+extern double scalbn(double, int);
+extern double sin(double);
+extern double __ieee754_sinh(double);
+extern double __ieee754_sqrt(double);
+extern double tan(double);
+extern double tanh(double);
+extern double __ieee754_y0(double);
+extern double __ieee754_y1(double);
+extern double __ieee754_yn(int, double);