xref: /inferno-os/include/mathi.h (revision d3641b487cf5cdc46e9b537d30eb37736e5c7b1a)
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