Xv6 with picoc & Linkage editor
v1.0
The project delineate mutual cohesion between c library, linkage editor ( linker), interpreter and operating system by porting the same on xv6 kernel
|
00001 #ifndef _MATH_H 00002 #define _MATH_H 00003 00004 #include <sys/cdefs.h> 00005 00006 __BEGIN_DECLS 00007 00008 #define M_E 2.7182818284590452354 /* e */ 00009 #define M_LOG2E 1.4426950408889634074 /* log_2 e */ 00010 #define M_LOG10E 0.43429448190325182765 /* log_10 e */ 00011 #define M_LN2 0.69314718055994530942 /* log_e 2 */ 00012 #define M_LN10 2.30258509299404568402 /* log_e 10 */ 00013 #define M_PI 3.14159265358979323846 /* pi */ 00014 #define M_PI_2 1.57079632679489661923 /* pi/2 */ 00015 #define M_PI_4 0.78539816339744830962 /* pi/4 */ 00016 #define M_1_PI 0.31830988618379067154 /* 1/pi */ 00017 #define M_2_PI 0.63661977236758134308 /* 2/pi */ 00018 #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ 00019 #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ 00020 #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ 00021 00022 #define M_El 2.7182818284590452353602874713526625L /* e */ 00023 #define M_LOG2El 1.4426950408889634073599246810018922L /* log_2 e */ 00024 #define M_LOG10El 0.4342944819032518276511289189166051L /* log_10 e */ 00025 #define M_LN2l 0.6931471805599453094172321214581766L /* log_e 2 */ 00026 #define M_LN10l 2.3025850929940456840179914546843642L /* log_e 10 */ 00027 #define M_PIl 3.1415926535897932384626433832795029L /* pi */ 00028 #define M_PI_2l 1.5707963267948966192313216916397514L /* pi/2 */ 00029 #define M_PI_4l 0.7853981633974483096156608458198757L /* pi/4 */ 00030 #define M_1_PIl 0.3183098861837906715377675267450287L /* 1/pi */ 00031 #define M_2_PIl 0.6366197723675813430755350534900574L /* 2/pi */ 00032 #define M_2_SQRTPIl 1.1283791670955125738961589031215452L /* 2/sqrt(pi) */ 00033 #define M_SQRT2l 1.4142135623730950488016887242096981L /* sqrt(2) */ 00034 #define M_SQRT1_2l 0.7071067811865475244008443621048490L /* 1/sqrt(2) */ 00035 00036 double sin(double d) __THROW __attribute__((__const__)); 00037 double cos(double d) __THROW __attribute__((__const__)); 00038 double tan(double d) __THROW __attribute__((__const__)); 00039 00040 double sinh(double d) __THROW __attribute__((__const__)); 00041 double cosh(double d) __THROW __attribute__((__const__)); 00042 double tanh(double d) __THROW __attribute__((__const__)); 00043 00044 double asin(double d) __THROW __attribute__((__const__)); 00045 double acos(double d) __THROW __attribute__((__const__)); 00046 double atan(double d) __THROW __attribute__((__const__)); 00047 00048 double asinh(double d) __THROW __attribute__((__const__)); 00049 double acosh(double d) __THROW __attribute__((__const__)); 00050 double atanh(double d) __THROW __attribute__((__const__)); 00051 00052 double exp(double d) __THROW __attribute__((__const__)); 00053 double exp10(double d) __THROW __attribute__((__const__)); 00054 double log(double d) __THROW __attribute__((__const__)); 00055 double log10(double d) __THROW __attribute__((__const__)); 00056 00057 double exp2(double d) __THROW __attribute__((__const__)); 00058 double log2(double d) __THROW __attribute__((__const__)); 00059 00060 double pow(double x, double y) __THROW __attribute__((__const__)); 00061 00062 double sqrt(double x) __THROW __attribute__((__const__)); 00063 double fabs(double x) __THROW __attribute__((__const__)); 00064 double fmod(double x, double y) __THROW __attribute__((__const__)); 00065 00066 double floor(double x) __attribute__((__const__)); 00067 double ceil(double x) __attribute__((__const__)); 00068 00069 double expm1(double x) __THROW __attribute__((__const__)); 00070 double hypot(double x, double y) __THROW __attribute__((__const__)); 00071 double atan2(double x, double y) __THROW __attribute__((__const__)); 00072 00073 double copysign(double value, double sign) __attribute__((__const__)); 00074 00075 # define HUGE_VAL \ 00076 (__extension__ \ 00077 ((union { unsigned long long __ll; double __d; }) \ 00078 { __ll: 0x7ff0000000000000ULL }).__d) 00079 # define HUGE_VALF \ 00080 (__extension__ \ 00081 ((union { unsigned int __i; float __f; }) \ 00082 { __i: 0x7f800000UL }).__f) 00083 00084 #ifdef _GNU_SOURCE 00085 void sincos(double x, double* sinx, double* cosx); 00086 double ipow (double mant, int expo); 00087 #endif 00088 00089 int isnan(double d) __attribute__((__const__)); 00090 int isinf(double d) __attribute__((__const__)); 00091 int finite(double d) __attribute__((__const__)); 00092 00093 double j0(double x); 00094 double j1(double x); 00095 double jn(int n, double x); 00096 double y0(double x); 00097 double y1(double x); 00098 double yn(int n, double x); 00099 double erf(double x); 00100 double erfc(double x); 00101 double lgamma(double x); 00102 00103 double rint(double x); 00104 00105 double modf(double x, double * iptr); 00106 00107 double frexp(double x, int *exp); 00108 double ldexp(double x, int exp); 00109 00110 __END_DECLS 00111 00112 #endif