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