⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math-convex.h

📁 早期freebsd实现
💻 H
字号:
#ifndef __HAVE_MATH_CONVEX__#define __HAVE_MATH_CONVEX__#define HUGE 	8.98846567431157854e+307	/* max double in native mode */#define HUGE_VAL 8.98846567431157854e+307#define M_E		2.71828182845904523536#define M_LN10		2.30258509299404568402#define M_LN2		0.69314718055994530942#define M_LOG10E	0.43429448190325182765#define M_LOG2E		1.44269504088896340736#define M_PI		3.14159265358979323846#define M_PI_2		1.57079632679489661923#define M_PI_4		0.78539816339744830962#define M_SQRT1_2	0.70710678118654752440#define M_SQRT2		1.41421356237309504880#define M_1_PI		0.31830988618379067154#define M_2_PI		0.63661977236758134308#define M_2_SQRTPI	1.12837916709551257390extern __const__ double acos (double);extern __const__ double asin (double);extern __const__ double atan (double);extern __const__ double atan2 (double, double);extern double atof (__const__ char *);extern __const__ double cabs ();extern __const__ double ceil (double);extern __const__ double cos (double);extern __const__ double cosh (double);extern __const__ double dcvtid (double);extern __const__ double exp (double);extern __const__ double fabs (double);extern __const__ double floor (double);extern double frexp (double, int *);extern __const__ double gamma (double);extern __const__ double hypot (double, double);extern __const__ double idcvtd (double);extern __const__ double ircvtr (double);extern __const__ double j0 (double);extern __const__ double j1 (double);extern __const__ double jn (int, double);extern __const__ double ldexp (double, int);extern __const__ double log (double);extern __const__ double log10 (double);extern __const__ double fmod (double, double);extern double modf (double, double *);extern __const__ double pow (double, double);extern __const__ double rcvtir (double);extern __const__ double sacos (double);extern __const__ double sasin (double);extern __const__ double satan (double);extern __const__ double satan2 (double);extern __const__ double scabs ();extern __const__ double scos (double);extern __const__ double scosh (double);extern __const__ double sexp (double);extern __const__ double sfabs (double);extern __const__ double shypot (double, double);extern __const__ double sin (double);extern __const__ double sinh (double);extern __const__ double slog (double);extern __const__ double slog10 (double);extern __const__ double spow (double);extern __const__ double sqrt (double);extern __const__ double ssin (double);extern __const__ double ssinh (double);extern __const__ double ssqrt (double);extern __const__ double stan (double);extern __const__ double stanh (double);extern __const__ double tan (double);extern __const__ double tanh (double);extern __const__ double y0 (double);extern __const__ double y1 (double);extern __const__ double yn (int, double);extern __const__ long int ipow (int, int);extern __const__ long long int lpow (long long int, long long int);#define fabs(x)		 __builtin_fabs(x)#ifdef __convex__#define frexp(x,y)	__inline_frexp(x,y)#define ldexp(x,y)	__inline_ldexp(x,y)#ifdef __convex_c2__#define ceil(x)		__inline_ceil (x)#define cos(x)		__inline_cos (x)#define exp(x)		__inline_exp (x)#define floor(x)	__inline_floor (x)#define log(x)		__inline_log (x)#define log10(x)	__inline_log10 (x)#define modf(x,y)	__inline_modf ((x), (y))#define sin(x)		__inline_sin (x)#define sqrt(x)		__inline_sqrt (x)#endif __convex_c2____inline__ static __const__ double __inline_ceil (double x){  double z;  __asm__ ("frint.d %1,%0" : "=d" (z) : "d" (x));  if (z < x) z += 1.0;  return z;}__inline__ static __const__ double __inline_cos (double x){  double z;  __asm__ ("cos.d %0" : "=d" (z) : "0" (x));  return z;}__inline__ static __const__ double __inline_exp (double x){  double z;  __asm__ ("exp.d %0" : "=d" (z) : "0" (x));  return z;}__inline__ static __const__ double __inline_floor (double x){  double z;  __asm__ ("frint.d %1,%0" : "=d" (z) : "d" (x));  if (z > x) z -= 1.0;  return z;}__inline__ static __const__ double __inline_frexp (double x, int *np){  union u {double d; unsigned long long ll;} u;  if ((u.d = x) == 0)    *np = 0;  else    {      *np = ((u.ll >> 52) & 03777) - 02000;      u.ll = (u.ll & 0x800fffffffffffffLL) | ((union u) {0.5}).ll;    }  return u.d;}__inline__ static __const__ double __inline_ldexp (double x, int n){  extern int errno;  union {double d; long long ll; unsigned sexp : 12;} u;  if ((u.d = x) != 0)    {      int exp = n + (u.sexp & 03777);      if (exp <= 0)	u.ll = 0, errno = 34;      else if (exp > 03777)	u.ll |= 0x7fffffffffffffffLL, errno = 34;      else	u.ll += (long long) n << 52;    }  return u.d;}__inline__ static __const__ double __inline_log (double x){  double z;  __asm__ ("ln.d %0" : "=d" (z) : "0" (x));  return z;}__inline__ static __const__ double __inline_log10 (double x){  return M_LOG10E * __inline_log (x);}__inline__ static __const__ double __inline_modf (double x, double *np){  double intpart;  __asm__ ("frint.d %1,%0" : "=d" (intpart) : "d" (x));  *np = intpart;  return x - intpart;}__inline__ static __const__ double __inline_sin (double x){  double z;  __asm__ ("sin.d %0" : "=d" (z) : "0" (x));  return z;}__inline__ static __const__ double __inline_sqrt (double x){  double z;  __asm__ ("sqrt.d %0" : "=d" (z) : "0" (x));  return z;}#endif __convex__#endif /* __HAVE_MATH_CONVEX__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -