add DLLEXPORT to files in src and int isopenlibm() = 1 function"

This commit is contained in:
Jameson Nash 2013-08-03 05:15:47 -04:00
parent 522eaccce7
commit f7c5ad7088
203 changed files with 306 additions and 263 deletions

View file

@ -1,4 +1,4 @@
$(CUR_SRCS) = \ $(CUR_SRCS) = common.c \
e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \ e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \
e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \ e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \
e_expf.c e_fmod.c e_fmodf.c e_gamma.c e_gamma_r.c e_gammaf.c \ e_expf.c e_fmod.c e_fmodf.c e_gamma.c e_gamma_r.c e_gammaf.c \

4
src/common.c Normal file
View file

@ -0,0 +1,4 @@
#include "math_private.h"
DLLEXPORT int isopenlibm() {
return 1;
}

View file

@ -61,7 +61,7 @@ qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
double DLLEXPORT double
__ieee754_acos(double x) __ieee754_acos(double x)
{ {
double z,p,q,r,w,s,c,df; double z,p,q,r,w,s,c,df;

View file

@ -31,7 +31,7 @@ pS1 = -4.2743422091e-02,
pS2 = -8.6563630030e-03, pS2 = -8.6563630030e-03,
qS1 = -7.0662963390e-01; qS1 = -7.0662963390e-01;
float DLLEXPORT float
__ieee754_acosf(float x) __ieee754_acosf(float x)
{ {
float z,p,q,r,w,s,c,df; float z,p,q,r,w,s,c,df;

View file

@ -36,7 +36,7 @@ static const double
one = 1.0, one = 1.0,
ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */
double DLLEXPORT double
__ieee754_acosh(double x) __ieee754_acosh(double x)
{ {
double t; double t;

View file

@ -23,7 +23,7 @@ static const float
one = 1.0, one = 1.0,
ln2 = 6.9314718246e-01; /* 0x3f317218 */ ln2 = 6.9314718246e-01; /* 0x3f317218 */
float DLLEXPORT float
__ieee754_acoshf(float x) __ieee754_acoshf(float x)
{ {
float t; float t;

View file

@ -40,7 +40,7 @@ static const long double
pi = 3.14159265358979323846264338327950280e+00L; pi = 3.14159265358979323846264338327950280e+00L;
#endif #endif
long double DLLEXPORT long double
acosl(long double x) acosl(long double x)
{ {
union IEEEl2bits u; union IEEEl2bits u;

View file

@ -67,7 +67,7 @@ qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
double DLLEXPORT double
__ieee754_asin(double x) __ieee754_asin(double x)
{ {
double t=0.0,w,p,q,c,r,s; double t=0.0,w,p,q,c,r,s;

View file

@ -31,7 +31,7 @@ qS1 = -7.0662963390e-01;
static const double static const double
pio2 = 1.570796326794896558e+00; pio2 = 1.570796326794896558e+00;
float DLLEXPORT float
__ieee754_asinf(float x) __ieee754_asinf(float x)
{ {
double s; double s;

View file

@ -30,7 +30,7 @@ static const long double
one = 1.00000000000000000000e+00, one = 1.00000000000000000000e+00,
huge = 1.000e+300; huge = 1.000e+300;
long double DLLEXPORT long double
asinl(long double x) asinl(long double x)
{ {
union IEEEl2bits u; union IEEEl2bits u;

View file

@ -57,7 +57,7 @@ pi = 3.1415926535897931160E+00; /* 0x400921FB, 0x54442D18 */
static volatile double static volatile double
pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
double DLLEXPORT double
__ieee754_atan2(double y, double x) __ieee754_atan2(double y, double x)
{ {
double z; double z;

View file

@ -29,7 +29,7 @@ pi = 3.1415927410e+00; /* 0x40490fdb */
static volatile float static volatile float
pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */ pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */
float DLLEXPORT float
__ieee754_atan2f(float y, float x) __ieee754_atan2f(float y, float x)
{ {
float z; float z;

View file

@ -43,7 +43,7 @@ static const long double
pi = 3.14159265358979323846264338327950280e+00L; pi = 3.14159265358979323846264338327950280e+00L;
#endif #endif
long double DLLEXPORT long double
atan2l(long double y, long double x) atan2l(long double y, long double x)
{ {
union IEEEl2bits ux, uy; union IEEEl2bits ux, uy;

View file

@ -39,7 +39,7 @@
static const double one = 1.0, huge = 1e300; static const double one = 1.0, huge = 1e300;
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_atanh(double x) __ieee754_atanh(double x)
{ {
double t; double t;

View file

@ -23,7 +23,7 @@ static const float one = 1.0, huge = 1e30;
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_atanhf(float x) __ieee754_atanhf(float x)
{ {
float t; float t;

View file

@ -40,7 +40,7 @@
static const double one = 1.0, half=0.5, huge = 1.0e300; static const double one = 1.0, half=0.5, huge = 1.0e300;
double DLLEXPORT double
__ieee754_cosh(double x) __ieee754_cosh(double x)
{ {
double t,w; double t,w;

View file

@ -21,7 +21,7 @@
static const float one = 1.0, half=0.5, huge = 1.0e30; static const float one = 1.0, half=0.5, huge = 1.0e30;
float DLLEXPORT float
__ieee754_coshf(float x) __ieee754_coshf(float x)
{ {
float t,w; float t,w;

View file

@ -101,7 +101,7 @@ P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
static volatile double static volatile double
twom1000= 9.33263618503218878990e-302; /* 2**-1000=0x01700000,0*/ twom1000= 9.33263618503218878990e-302; /* 2**-1000=0x01700000,0*/
double DLLEXPORT double
__ieee754_exp(double x) /* default IEEE double exp */ __ieee754_exp(double x) /* default IEEE double exp */
{ {
double y,hi=0.0,lo=0.0,c,t,twopk; double y,hi=0.0,lo=0.0,c,t,twopk;

View file

@ -41,7 +41,7 @@ P2 = -2.7667332906e-3; /* -0xb55215.0p-32 */
static volatile float twom100 = 7.8886090522e-31; /* 2**-100=0x0d800000 */ static volatile float twom100 = 7.8886090522e-31; /* 2**-100=0x0d800000 */
float DLLEXPORT float
__ieee754_expf(float x) __ieee754_expf(float x)
{ {
float y,hi=0.0,lo=0.0,c,t,twopk; float y,hi=0.0,lo=0.0,c,t,twopk;

View file

@ -25,7 +25,7 @@
static const double one = 1.0, Zero[] = {0.0, -0.0,}; static const double one = 1.0, Zero[] = {0.0, -0.0,};
double DLLEXPORT double
__ieee754_fmod(double x, double y) __ieee754_fmod(double x, double y)
{ {
int32_t n,hx,hy,hz,ix,iy,sx,i; int32_t n,hx,hy,hz,ix,iy,sx,i;

View file

@ -27,7 +27,7 @@
static const float one = 1.0, Zero[] = {0.0, -0.0,}; static const float one = 1.0, Zero[] = {0.0, -0.0,};
float DLLEXPORT float
__ieee754_fmodf(float x, float y) __ieee754_fmodf(float x, float y)
{ {
int32_t n,hx,hy,hz,ix,iy,sx,i; int32_t n,hx,hy,hz,ix,iy,sx,i;

View file

@ -61,7 +61,7 @@ static const long double one = 1.0, Zero[] = {0.0, -0.0,};
* - The high part of the mantissa fits in an int64_t with enough room * - The high part of the mantissa fits in an int64_t with enough room
* for an explicit integer bit in front of the fractional bits. * for an explicit integer bit in front of the fractional bits.
*/ */
long double DLLEXPORT long double
fmodl(long double x, long double y) fmodl(long double x, long double y)
{ {
union IEEEl2bits ux, uy; union IEEEl2bits ux, uy;

View file

@ -26,7 +26,7 @@
extern int signgam; extern int signgam;
double DLLEXPORT double
__ieee754_gamma(double x) __ieee754_gamma(double x)
{ {
return __ieee754_gamma_r(x,&signgam); return __ieee754_gamma_r(x,&signgam);

View file

@ -25,7 +25,7 @@
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h" #include "math_private.h"
double DLLEXPORT double
__ieee754_gamma_r(double x, int *signgamp) __ieee754_gamma_r(double x, int *signgamp)
{ {
return __ieee754_lgamma_r(x,signgamp); return __ieee754_lgamma_r(x,signgamp);

View file

@ -27,7 +27,7 @@
extern int signgam; extern int signgam;
float DLLEXPORT float
__ieee754_gammaf(float x) __ieee754_gammaf(float x)
{ {
return __ieee754_gammaf_r(x,&signgam); return __ieee754_gammaf_r(x,&signgam);

View file

@ -26,7 +26,7 @@
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h" #include "math_private.h"
float DLLEXPORT float
__ieee754_gammaf_r(float x, int *signgamp) __ieee754_gammaf_r(float x, int *signgamp)
{ {
return __ieee754_lgammaf_r(x,signgamp); return __ieee754_lgammaf_r(x,signgamp);

View file

@ -51,7 +51,7 @@
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h" #include "math_private.h"
double DLLEXPORT double
__ieee754_hypot(double x, double y) __ieee754_hypot(double x, double y)
{ {
double a,b,t1,t2,y1,y2,w; double a,b,t1,t2,y1,y2,w;

View file

@ -19,7 +19,7 @@
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h" #include "math_private.h"
float DLLEXPORT float
__ieee754_hypotf(float x, float y) __ieee754_hypotf(float x, float y)
{ {
float a,b,t1,t2,y1,y2,w; float a,b,t1,t2,y1,y2,w;

View file

@ -45,7 +45,7 @@ typedef u_int64_t man_t;
typedef u_int32_t man_t; typedef u_int32_t man_t;
#endif #endif
long double DLLEXPORT long double
hypotl(long double x, long double y) hypotl(long double x, long double y)
{ {
long double a=x,b=y,t1,t2,y1,y2,w; long double a=x,b=y,t1,t2,y1,y2,w;

View file

@ -81,7 +81,7 @@ S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_j0(double x) __ieee754_j0(double x)
{ {
double z, s,c,ss,cc,r,u,v; double z, s,c,ss,cc,r,u,v;
@ -142,7 +142,7 @@ v02 = 7.60068627350353253702e-05, /* 0x3F13ECBB, 0xF578C6C1 */
v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
double DLLEXPORT double
__ieee754_y0(double x) __ieee754_y0(double x)
{ {
double z, s,c,ss,cc,u,v; double z, s,c,ss,cc,u,v;

View file

@ -38,7 +38,7 @@ S04 = 1.1661400734e-09; /* 0x30a045e8 */
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_j0f(float x) __ieee754_j0f(float x)
{ {
float z, s,c,ss,cc,r,u,v; float z, s,c,ss,cc,r,u,v;
@ -99,7 +99,7 @@ v02 = 7.6006865129e-05, /* 0x389f65e0 */
v03 = 2.5915085189e-07, /* 0x348b216c */ v03 = 2.5915085189e-07, /* 0x348b216c */
v04 = 4.4111031494e-10; /* 0x2ff280c2 */ v04 = 4.4111031494e-10; /* 0x2ff280c2 */
float DLLEXPORT float
__ieee754_y0f(float x) __ieee754_y0f(float x)
{ {
float z, s,c,ss,cc,u,v; float z, s,c,ss,cc,u,v;

View file

@ -82,7 +82,7 @@ s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_j1(double x) __ieee754_j1(double x)
{ {
double z, s,c,ss,cc,r,u,v,y; double z, s,c,ss,cc,r,u,v,y;
@ -139,7 +139,7 @@ static const double V0[5] = {
1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */ 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */
}; };
double DLLEXPORT double
__ieee754_y1(double x) __ieee754_y1(double x)
{ {
double z, s,c,ss,cc,u,v; double z, s,c,ss,cc,u,v;

View file

@ -39,7 +39,7 @@ s05 = 1.2354227016e-11; /* 0x2d59567e */
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_j1f(float x) __ieee754_j1f(float x)
{ {
float z, s,c,ss,cc,r,u,v,y; float z, s,c,ss,cc,r,u,v,y;
@ -96,7 +96,7 @@ static const float V0[5] = {
1.6655924903e-11, /* 0x2d9281cf */ 1.6655924903e-11, /* 0x2d9281cf */
}; };
float DLLEXPORT float
__ieee754_y1f(float x) __ieee754_y1f(float x)
{ {
float z, s,c,ss,cc,u,v; float z, s,c,ss,cc,u,v;

View file

@ -50,7 +50,7 @@ one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */
static const double zero = 0.00000000000000000000e+00; static const double zero = 0.00000000000000000000e+00;
double DLLEXPORT double
__ieee754_jn(int n, double x) __ieee754_jn(int n, double x)
{ {
int32_t i,hx,ix,lx, sgn; int32_t i,hx,ix,lx, sgn;
@ -211,7 +211,7 @@ __ieee754_jn(int n, double x)
if(sgn==1) return -b; else return b; if(sgn==1) return -b; else return b;
} }
double DLLEXPORT double
__ieee754_yn(int n, double x) __ieee754_yn(int n, double x)
{ {
int32_t i,hx,ix,lx; int32_t i,hx,ix,lx;

View file

@ -25,7 +25,7 @@ one = 1.0000000000e+00; /* 0x3F800000 */
static const float zero = 0.0000000000e+00; static const float zero = 0.0000000000e+00;
float DLLEXPORT float
__ieee754_jnf(int n, float x) __ieee754_jnf(int n, float x)
{ {
int32_t i,hx,ix, sgn; int32_t i,hx,ix, sgn;
@ -163,7 +163,7 @@ __ieee754_jnf(int n, float x)
if(sgn==1) return -b; else return b; if(sgn==1) return -b; else return b;
} }
float DLLEXPORT float
__ieee754_ynf(int n, float x) __ieee754_ynf(int n, float x)
{ {
int32_t i,hx,ix,ib; int32_t i,hx,ix,ib;

View file

@ -26,7 +26,7 @@
extern int signgam; extern int signgam;
double DLLEXPORT double
__ieee754_lgamma(double x) __ieee754_lgamma(double x)
{ {
return __ieee754_lgamma_r(x,&signgam); return __ieee754_lgamma_r(x,&signgam);

View file

@ -201,7 +201,7 @@ static const double zero= 0.00000000000000000000e+00;
} }
double DLLEXPORT double
__ieee754_lgamma_r(double x, int *signgamp) __ieee754_lgamma_r(double x, int *signgamp)
{ {
double t,y,z,nadj,p,p1,p2,p3,q,r,w; double t,y,z,nadj,p,p1,p2,p3,q,r,w;

View file

@ -27,7 +27,7 @@
extern int signgam; extern int signgam;
float DLLEXPORT float
__ieee754_lgammaf(float x) __ieee754_lgammaf(float x)
{ {
return __ieee754_lgammaf_r(x,&signgam); return __ieee754_lgammaf_r(x,&signgam);

View file

@ -134,7 +134,7 @@ static const float zero= 0.0000000000e+00;
} }
float DLLEXPORT float
__ieee754_lgammaf_r(float x, int *signgamp) __ieee754_lgammaf_r(float x, int *signgamp)
{ {
float t,y,z,nadj,p,p1,p2,p3,q,r,w; float t,y,z,nadj,p,p1,p2,p3,q,r,w;

View file

@ -82,7 +82,7 @@ Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_log(double x) __ieee754_log(double x)
{ {
double hfsq,f,s,z,R,w,t1,t2,dk; double hfsq,f,s,z,R,w,t1,t2,dk;

View file

@ -35,7 +35,7 @@ log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_log10(double x) __ieee754_log10(double x)
{ {
double f,hfsq,hi,lo,r,val_hi,val_lo,w,y,y2; double f,hfsq,hi,lo,r,val_hi,val_lo,w,y,y2;

View file

@ -32,7 +32,7 @@ log10_2lo = 7.9034151668e-07; /* 0x355427db */
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_log10f(float x) __ieee754_log10f(float x)
{ {
float f,hfsq,hi,lo,r,y; float f,hfsq,hi,lo,r,y;

View file

@ -35,7 +35,7 @@ ivln2lo = 1.67517131648865118353e-10; /* 0x3de705fc, 0x2eefa200 */
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_log2(double x) __ieee754_log2(double x)
{ {
double f,hfsq,hi,lo,r,val_hi,val_lo,w,y; double f,hfsq,hi,lo,r,val_hi,val_lo,w,y;

View file

@ -30,7 +30,7 @@ ivln2lo = -1.7605285393e-04; /* 0xb9389ad4 */
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_log2f(float x) __ieee754_log2f(float x)
{ {
float f,hfsq,hi,lo,r,y; float f,hfsq,hi,lo,r,y;

View file

@ -31,7 +31,7 @@ Lg4 = 0xf89e26.0p-26; /* 0.24279078841 */
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_logf(float x) __ieee754_logf(float x)
{ {
float hfsq,f,s,z,R,w,t1,t2,dk; float hfsq,f,s,z,R,w,t1,t2,dk;

View file

@ -93,7 +93,7 @@ ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */
ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
double DLLEXPORT double
__ieee754_pow(double x, double y) __ieee754_pow(double x, double y)
{ {
double z,ax,z_h,z_l,p_h,p_l; double z,ax,z_h,z_l,p_h,p_l;

View file

@ -52,7 +52,7 @@ ivln2 = 1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
ivln2_h = 1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/ ivln2_h = 1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
float DLLEXPORT float
__ieee754_powf(float x, float y) __ieee754_powf(float x, float y)
{ {
float z,ax,z_h,z_l,p_h,p_l; float z,ax,z_h,z_l,p_h,p_l;

View file

@ -52,7 +52,7 @@ pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
extern extern
#endif #endif
//__inline int //__inline int
int DLLEXPORT int
__ieee754_rem_pio2(double x, double *y) __ieee754_rem_pio2(double x, double *y)
{ {
double z,w,t,r,fn; double z,w,t,r,fn;

View file

@ -44,7 +44,7 @@ pio2_1t = 1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */
extern extern
#endif #endif
//__inline int //__inline int
int DLLEXPORT int
__ieee754_rem_pio2f(float x, double *y) __ieee754_rem_pio2f(float x, double *y)
{ {
double w,r,fn; double w,r,fn;

View file

@ -31,7 +31,7 @@
static const double zero = 0.0; static const double zero = 0.0;
double DLLEXPORT double
__ieee754_remainder(double x, double p) __ieee754_remainder(double x, double p)
{ {
int32_t hx,hp; int32_t hx,hp;

View file

@ -22,7 +22,7 @@
static const float zero = 0.0; static const float zero = 0.0;
float DLLEXPORT float
__ieee754_remainderf(float x, float p) __ieee754_remainderf(float x, float p)
{ {
int32_t hx,hp; int32_t hx,hp;

View file

@ -28,8 +28,9 @@
//__FBSDID("$FreeBSD: src/lib/msun/src/e_remainderl.c,v 1.1 2008/03/30 20:47:42 das Exp $"); //__FBSDID("$FreeBSD: src/lib/msun/src/e_remainderl.c,v 1.1 2008/03/30 20:47:42 das Exp $");
#include <openlibm.h> #include <openlibm.h>
#include "math_private.h"
long double DLLEXPORT long double
remainderl(long double x, long double y) remainderl(long double x, long double y)
{ {
int quo; int quo;

View file

@ -24,10 +24,10 @@
#include "math_private.h" #include "math_private.h"
#ifdef _SCALB_INT #ifdef _SCALB_INT
double DLLEXPORT double
__ieee754_scalb(double x, int fn) __ieee754_scalb(double x, int fn)
#else #else
double DLLEXPORT double
__ieee754_scalb(double x, double fn) __ieee754_scalb(double x, double fn)
#endif #endif
{ {

View file

@ -20,10 +20,10 @@
#include "math_private.h" #include "math_private.h"
#ifdef _SCALB_INT #ifdef _SCALB_INT
float DLLEXPORT float
__ieee754_scalbf(float x, int fn) __ieee754_scalbf(float x, int fn)
#else #else
float DLLEXPORT float
__ieee754_scalbf(float x, float fn) __ieee754_scalbf(float x, float fn)
#endif #endif
{ {

View file

@ -37,7 +37,7 @@
static const double one = 1.0, shuge = 1.0e307; static const double one = 1.0, shuge = 1.0e307;
double DLLEXPORT double
__ieee754_sinh(double x) __ieee754_sinh(double x)
{ {
double t,h; double t,h;

View file

@ -21,7 +21,7 @@
static const float one = 1.0, shuge = 1.0e37; static const float one = 1.0, shuge = 1.0e37;
float DLLEXPORT float
__ieee754_sinhf(float x) __ieee754_sinhf(float x)
{ {
float t,h; float t,h;

View file

@ -91,7 +91,7 @@
static const double one = 1.0, tiny=1.0e-300; static const double one = 1.0, tiny=1.0e-300;
double DLLEXPORT double
__ieee754_sqrt(double x) __ieee754_sqrt(double x)
{ {
double z; double z;

View file

@ -18,7 +18,7 @@
static const float one = 1.0, tiny=1.0e-30; static const float one = 1.0, tiny=1.0e-30;
float DLLEXPORT float
__ieee754_sqrtf(float x) __ieee754_sqrtf(float x)
{ {
float z; float z;

View file

@ -32,6 +32,7 @@
#include "fpmath.h" #include "fpmath.h"
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h"
/* Return (x + ulp) for normal positive x. Assumes no overflow. */ /* Return (x + ulp) for normal positive x. Assumes no overflow. */
static inline long double static inline long double
@ -74,7 +75,7 @@ dec(long double x)
* if possible. * if possible.
*/ */
long double DLLEXPORT long double
sqrtl(long double x) sqrtl(long double x)
{ {
union IEEEl2bits u; union IEEEl2bits u;

View file

@ -65,7 +65,7 @@ C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
double DLLEXPORT double
__kernel_cos(double x, double y) __kernel_cos(double x, double y)
{ {
double hz,z,r,w; double hz,z,r,w;

View file

@ -34,7 +34,7 @@ C3 = 0x199342e0ee5069.0p-68; /* 0.0000243904487962774090654 */
extern extern
#endif #endif
//__inline float //__inline float
float DLLEXPORT float
__kernel_cosdf(double x) __kernel_cosdf(double x)
{ {
double r, w, z; double r, w, z;

View file

@ -71,7 +71,7 @@ __frexp_exp(double x, int *expt)
* has filtered out very large x, for which overflow would be inevitable. * has filtered out very large x, for which overflow would be inevitable.
*/ */
double DLLEXPORT double
__ldexp_exp(double x, int expt) __ldexp_exp(double x, int expt)
{ {
double exp_x, scale; double exp_x, scale;
@ -83,7 +83,7 @@ __ldexp_exp(double x, int expt)
return (exp_x * scale); return (exp_x * scale);
} }
double complex DLLEXPORT double complex
__ldexp_cexp(double complex z, int expt) __ldexp_cexp(double complex z, int expt)
{ {
double x, y, exp_x, scale1, scale2; double x, y, exp_x, scale1, scale2;

View file

@ -54,7 +54,7 @@ __frexp_expf(float x, int *expt)
return (exp_x); return (exp_x);
} }
float DLLEXPORT float
__ldexp_expf(float x, int expt) __ldexp_expf(float x, int expt)
{ {
float exp_x, scale; float exp_x, scale;
@ -66,7 +66,7 @@ __ldexp_expf(float x, int expt)
return (exp_x * scale); return (exp_x * scale);
} }
float complex DLLEXPORT float complex
__ldexp_cexpf(float complex z, int expt) __ldexp_cexpf(float complex z, int expt)
{ {
float x, y, exp_x, scale1, scale2; float x, y, exp_x, scale1, scale2;

View file

@ -290,7 +290,7 @@ one = 1.0,
two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
int DLLEXPORT int
__kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec) __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec)
{ {
int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih; int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;

View file

@ -56,7 +56,7 @@ S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
double DLLEXPORT double
__kernel_sin(double x, double y, int iy) __kernel_sin(double x, double y, int iy)
{ {
double z,r,v,w; double z,r,v,w;

View file

@ -33,7 +33,7 @@ S4 = 0x16cd878c3b46a7.0p-71; /* 0.0000027183114939898219064 */
extern extern
#endif #endif
//__inline float //__inline float
float DLLEXPORT float
__kernel_sindf(double x) __kernel_sindf(double x)
{ {
double r, s, w, z; double r, s, w, z;

View file

@ -75,7 +75,7 @@ static const double xxx[] = {
#define T xxx #define T xxx
/* INDENT ON */ /* INDENT ON */
double DLLEXPORT double
__kernel_tan(double x, double y, int iy) { __kernel_tan(double x, double y, int iy) {
double z, r, v, w, s; double z, r, v, w, s;
int32_t ix, hx; int32_t ix, hx;

View file

@ -36,7 +36,7 @@ T[] = {
extern extern
#endif #endif
//__inline float //__inline float
float DLLEXPORT float
__kernel_tandf(double x, int iy) __kernel_tandf(double x, int iy)
{ {
double z,r,w,s,t,u; double z,r,w,s,t,u;

View file

@ -442,4 +442,14 @@ long double __kernel_sinl(long double, long double, int);
long double __kernel_cosl(long double, long double); long double __kernel_cosl(long double, long double);
long double __kernel_tanl(long double, long double, int); long double __kernel_tanl(long double, long double, int);
#ifdef _WIN32
# ifdef IMPORT_EXPORTS
# define DLLEXPORT __declspec(dllimport)
# else
# define DLLEXPORT __declspec(dllexport)
# endif
#else
#define DLLEXPORT __attribute__ ((visibility("default")))
#endif
#endif /* !_MATH_PRIVATE_H_ */ #endif /* !_MATH_PRIVATE_H_ */

View file

@ -32,7 +32,7 @@ one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */
huge= 1.00000000000000000000e+300; huge= 1.00000000000000000000e+300;
double DLLEXPORT double
asinh(double x) asinh(double x)
{ {
double t,w; double t,w;

View file

@ -24,7 +24,7 @@ one = 1.0000000000e+00, /* 0x3F800000 */
ln2 = 6.9314718246e-01, /* 0x3f317218 */ ln2 = 6.9314718246e-01, /* 0x3f317218 */
huge= 1.0000000000e+30; huge= 1.0000000000e+30;
float DLLEXPORT float
asinhf(float x) asinhf(float x)
{ {
float t,w; float t,w;

View file

@ -70,7 +70,7 @@ static const double aT[] = {
one = 1.0, one = 1.0,
huge = 1.0e300; huge = 1.0e300;
double DLLEXPORT double
atan(double x) atan(double x)
{ {
double w,s1,s2,z; double w,s1,s2,z;

View file

@ -45,7 +45,7 @@ static const float
one = 1.0, one = 1.0,
huge = 1.0e30; huge = 1.0e30;
float DLLEXPORT float
atanf(float x) atanf(float x)
{ {
float w,s1,s2,z; float w,s1,s2,z;

View file

@ -29,7 +29,7 @@ static const long double
one = 1.0, one = 1.0,
huge = 1.0e300; huge = 1.0e300;
long double DLLEXPORT long double
atanl(long double x) atanl(long double x)
{ {
union IEEEl2bits u; union IEEEl2bits u;

View file

@ -29,8 +29,9 @@
#include <complex.h> #include <complex.h>
#include <openlibm.h> #include <openlibm.h>
#include "math_private.h"
double DLLEXPORT double
carg(double complex z) carg(double complex z)
{ {

View file

@ -29,8 +29,9 @@
#include <complex.h> #include <complex.h>
#include <openlibm.h> #include <openlibm.h>
#include "math_private.h"
float DLLEXPORT float
cargf(float complex z) cargf(float complex z)
{ {

View file

@ -29,8 +29,9 @@
#include <complex.h> #include <complex.h>
#include <openlibm.h> #include <openlibm.h>
#include "math_private.h"
long double DLLEXPORT long double
cargl(long double complex z) cargl(long double complex z)
{ {

View file

@ -33,7 +33,7 @@ P2 = 1.621429720105354466140, /* 0x3ff9f160, 0x4a49d6c2 */
P3 = -0.758397934778766047437, /* 0xbfe844cb, 0xbee751d9 */ P3 = -0.758397934778766047437, /* 0xbfe844cb, 0xbee751d9 */
P4 = 0.145996192886612446982; /* 0x3fc2b000, 0xd4e4edd7 */ P4 = 0.145996192886612446982; /* 0x3fc2b000, 0xd4e4edd7 */
double DLLEXPORT double
cbrt(double x) cbrt(double x)
{ {
int32_t hx; int32_t hx;

View file

@ -27,7 +27,7 @@ static const unsigned
B1 = 709958130, /* B1 = (127-127.0/3-0.03306235651)*2**23 */ B1 = 709958130, /* B1 = (127-127.0/3-0.03306235651)*2**23 */
B2 = 642849266; /* B2 = (127-127.0/3-24/3-0.03306235651)*2**23 */ B2 = 642849266; /* B2 = (127-127.0/3-24/3-0.03306235651)*2**23 */
float DLLEXPORT float
cbrtf(float x) cbrtf(float x)
{ {
double r,T; double r,T;

View file

@ -33,7 +33,7 @@
static const unsigned static const unsigned
B1 = 709958130; /* B1 = (127-127.0/3-0.03306235651)*2**23 */ B1 = 709958130; /* B1 = (127-127.0/3-0.03306235651)*2**23 */
long double DLLEXPORT long double
cbrtl(long double x) cbrtl(long double x)
{ {
union IEEEl2bits u, v; union IEEEl2bits u, v;

View file

@ -44,7 +44,7 @@
static const double huge = 0x1p1023; static const double huge = 0x1p1023;
double complex DLLEXPORT double complex
ccosh(double complex z) ccosh(double complex z)
{ {
double x, y, h; double x, y, h;
@ -146,7 +146,7 @@ ccosh(double complex z)
return (cpack((x * x) * (y - y), (x + x) * (y - y))); return (cpack((x * x) * (y - y), (x + x) * (y - y)));
} }
double complex DLLEXPORT double complex
ccos(double complex z) ccos(double complex z)
{ {

View file

@ -38,7 +38,7 @@
static const float huge = 0x1p127; static const float huge = 0x1p127;
float complex DLLEXPORT float complex
ccoshf(float complex z) ccoshf(float complex z)
{ {
float x, y, h; float x, y, h;
@ -96,7 +96,7 @@ ccoshf(float complex z)
return (cpackf((x * x) * (y - y), (x + x) * (y - y))); return (cpackf((x * x) * (y - y), (x + x) * (y - y)));
} }
float complex DLLEXPORT float complex
ccosf(float complex z) ccosf(float complex z)
{ {

View file

@ -29,7 +29,7 @@
static const double huge = 1.0e300; static const double huge = 1.0e300;
double DLLEXPORT double
ceil(double x) ceil(double x)
{ {
int32_t i0,i1,j0; int32_t i0,i1,j0;

View file

@ -21,7 +21,7 @@
static const float huge = 1.0e30; static const float huge = 1.0e30;
float DLLEXPORT float
ceilf(float x) ceilf(float x)
{ {
int32_t i0,j0; int32_t i0,j0;

View file

@ -52,7 +52,7 @@
static const long double huge = 1.0e300; static const long double huge = 1.0e300;
long double DLLEXPORT long double
ceill(long double x) ceill(long double x)
{ {
union IEEEl2bits u = { .e = x }; union IEEEl2bits u = { .e = x };

View file

@ -36,7 +36,7 @@ static const u_int32_t
exp_ovfl = 0x40862e42, /* high bits of MAX_EXP * ln2 ~= 710 */ exp_ovfl = 0x40862e42, /* high bits of MAX_EXP * ln2 ~= 710 */
cexp_ovfl = 0x4096b8e4; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */ cexp_ovfl = 0x4096b8e4; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
double complex DLLEXPORT double complex
cexp(double complex z) cexp(double complex z)
{ {
double x, y, exp_x; double x, y, exp_x;

View file

@ -36,7 +36,7 @@ static const u_int32_t
exp_ovfl = 0x42b17218, /* MAX_EXP * ln2 ~= 88.722839355 */ exp_ovfl = 0x42b17218, /* MAX_EXP * ln2 ~= 88.722839355 */
cexp_ovfl = 0x43400074; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */ cexp_ovfl = 0x43400074; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
float complex DLLEXPORT float complex
cexpf(float complex z) cexpf(float complex z)
{ {
float x, y, exp_x; float x, y, exp_x;

View file

@ -29,7 +29,7 @@
#include <complex.h> #include <complex.h>
#include "math_private.h" #include "math_private.h"
double DLLEXPORT double
cimag(double complex z) cimag(double complex z)
{ {
const double_complex z1 = { .f = z }; const double_complex z1 = { .f = z };

View file

@ -29,7 +29,7 @@
#include <complex.h> #include <complex.h>
#include "math_private.h" #include "math_private.h"
float DLLEXPORT float
cimagf(float complex z) cimagf(float complex z)
{ {
const float_complex z1 = { .f = z }; const float_complex z1 = { .f = z };

View file

@ -29,7 +29,7 @@
#include <complex.h> #include <complex.h>
#include "math_private.h" #include "math_private.h"
long double DLLEXPORT long double
cimagl(long double complex z) cimagl(long double complex z)
{ {
const long_double_complex z1 = { .f = z }; const long_double_complex z1 = { .f = z };

View file

@ -30,7 +30,7 @@
#include "math_private.h" #include "math_private.h"
double complex DLLEXPORT double complex
conj(double complex z) conj(double complex z)
{ {

View file

@ -30,7 +30,7 @@
#include "math_private.h" #include "math_private.h"
float complex DLLEXPORT float complex
conjf(float complex z) conjf(float complex z)
{ {

View file

@ -30,7 +30,7 @@
#include "math_private.h" #include "math_private.h"
long double complex DLLEXPORT long double complex
conjl(long double complex z) conjl(long double complex z)
{ {

View file

@ -22,7 +22,7 @@
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h" #include "math_private.h"
double DLLEXPORT double
copysign(double x, double y) copysign(double x, double y)
{ {
u_int32_t hx,hy; u_int32_t hx,hy;

View file

@ -25,7 +25,7 @@
#include "openlibm.h" #include "openlibm.h"
#include "math_private.h" #include "math_private.h"
float DLLEXPORT float
copysignf(float x, float y) copysignf(float x, float y)
{ {
u_int32_t ix,iy; u_int32_t ix,iy;

View file

@ -27,10 +27,10 @@
*/ */
#include <openlibm.h> #include <openlibm.h>
#include "math_private.h"
#include "fpmath.h" #include "fpmath.h"
long double DLLEXPORT long double
copysignl(long double x, long double y) copysignl(long double x, long double y)
{ {
union IEEEl2bits ux, uy; union IEEEl2bits ux, uy;

View file

@ -51,7 +51,7 @@
#include "math_private.h" #include "math_private.h"
//#include "e_rem_pio2.c" //#include "e_rem_pio2.c"
double DLLEXPORT double
cos(double x) cos(double x)
{ {
double y[2],z=0.0; double y[2],z=0.0;

View file

@ -35,7 +35,7 @@ c2pio2 = 2*M_PI_2, /* 0x400921FB, 0x54442D18 */
c3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */ c3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */
c4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */ c4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */
float DLLEXPORT float
cosf(float x) cosf(float x)
{ {
double y; double y;

View file

@ -44,7 +44,7 @@
#error "Unsupported long double format" #error "Unsupported long double format"
#endif #endif
long double DLLEXPORT long double
cosl(long double x) cosl(long double x)
{ {
union IEEEl2bits z; union IEEEl2bits z;

View file

@ -47,8 +47,9 @@
#include <complex.h> #include <complex.h>
#include <float.h> #include <float.h>
#include <openlibm.h> #include <openlibm.h>
#include "math_private.h"
double complex DLLEXPORT double complex
cpow(double complex a, double complex z) cpow(double complex a, double complex z)
{ {
double complex w; double complex w;

Some files were not shown because too many files have changed in this diff Show more