xref: /inferno-os/include/mathi.h (revision 048b3b32a4beb538add2bbb2e9401a24d05e8db6)
1 /*
2  * floating point control and status register masks
3  */
4 enum
5 {
6 	INVAL		= 0x0001,
7 	ZDIV		= 0x0002,
8 	OVFL		= 0x0004,
9 	UNFL		= 0x0008,
10 	INEX		= 0x0010,
11 	RND_NR		= 0x0000,
12 	RND_NINF	= 0x0100,
13 	RND_PINF	= 0x0200,
14 	RND_Z		= 0x0300,
15 	RND_MASK	= 0x0300
16 };
17 
18 extern	double	ipow10(int);
19 extern	void	FPinit(void);
20 extern	double	dot(int, double*, double*);
21 extern	ulong	FPcontrol(ulong, ulong);
22 extern	ulong	FPstatus(ulong, ulong);
23 extern	void	gemm(int, int, int, int, int, double,
24 			double*, int, double*, int, double, double*, int);
25 extern	ulong	getFPstatus(void);
26 extern	ulong	getFPcontrol(void);
27 extern	char*	g_fmt(char *, double, int);
28 extern	int	iamax(int, double*);
29 extern	double	fdim(double, double);
30 extern	double	fmax(double, double);
31 extern	double	fmin(double, double);
32 extern	double	norm2(int, double*);
33 extern	double	norm1(int, double*);
34 extern	double	strtod(const char *, char **);
35 
36 /* fdlibm */
37 extern double __ieee754_acos(double);
38 extern double __ieee754_acosh(double);
39 extern double __ieee754_asin(double);
40 extern double asinh(double);
41 extern double atan(double);
42 extern double __ieee754_atan2(double, double);
43 extern double __ieee754_atanh(double);
44 extern double cbrt(double);
45 extern double ceil(double);
46 extern double copysign(double, double);
47 extern double cos(double);
48 extern double __ieee754_cosh(double);
49 extern double erf(double);
50 extern double erfc(double);
51 extern double __ieee754_exp(double);
52 extern double expm1(double);
53 extern double fabs(double);
54 extern int finite(double);
55 extern double floor(double);
56 extern double __ieee754_fmod(double, double);
57 extern double __ieee754_hypot(double, double);
58 extern int ilogb(double);
59 extern double __ieee754_j0(double);
60 extern double __ieee754_j1(double);
61 extern double __ieee754_jn(int, double);
62 extern double __ieee754_lgamma_r(double,int*);
63 extern double __ieee754_log(double);
64 extern double __ieee754_log10(double);
65 extern double log1p(double);
66 extern double logb(double);
67 extern double modf(double, double *);
68 extern double nextafter(double, double);
69 extern double __ieee754_pow(double, double);
70 extern double __ieee754_remainder(double, double);
71 extern double rint(double);
72 extern double scalbn(double, int);
73 extern double sin(double);
74 extern double __ieee754_sinh(double);
75 extern double __ieee754_sqrt(double);
76 extern double tan(double);
77 extern double tanh(double);
78 extern double __ieee754_y0(double);
79 extern double __ieee754_y1(double);
80 extern double __ieee754_yn(int, double);
81