Skip to content

Commit

Permalink
Add fastsinf_u100000 and fastcosf_u100000
Browse files Browse the repository at this point in the history
  • Loading branch information
shibatch committed Oct 24, 2018
1 parent ae55d71 commit 3625f59
Show file tree
Hide file tree
Showing 17 changed files with 280 additions and 58 deletions.
2 changes: 2 additions & 0 deletions src/arch/helperavx.h
Expand Up @@ -345,9 +345,11 @@ static INLINE vfloat vmin_vf_vf_vf(vfloat x, vfloat y) { return _mm256_min_ps(x,
#if CONFIG == 1
static INLINE vfloat vmla_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vadd_vf_vf_vf(vmul_vf_vf_vf(x, y), z); }
static INLINE vfloat vmlanp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vsub_vf_vf_vf(z, vmul_vf_vf_vf(x, y)); }
static INLINE vfloat vmlapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vsub_vf_vf_vf(vmul_vf_vf_vf(x, y), z); }
#else
static INLINE vfloat vmla_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm256_macc_ps(x, y, z); }
static INLINE vfloat vmlanp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm256_nmacc_ps(x, y, z); }
static INLINE vfloat vmlapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm256_msub_ps(x, y, z); }
static INLINE vfloat vfma_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm256_macc_ps(x, y, z); }
static INLINE vfloat vfmapp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm256_macc_ps(x, y, z); }
static INLINE vfloat vfmapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm256_msub_ps(x, y, z); }
Expand Down
1 change: 1 addition & 0 deletions src/arch/helperavx512f.h
Expand Up @@ -369,6 +369,7 @@ static INLINE vfloat vmlanp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _
#else
static INLINE vfloat vmla_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vadd_vf_vf_vf(vmul_vf_vf_vf(x, y), z); }
static INLINE vfloat vmlanp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vsub_vf_vf_vf(z, vmul_vf_vf_vf(x, y)); }
static INLINE vfloat vmlapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vsub_vf_vf_vf(vmul_vf_vf_vf(x, y), z); }
#endif

static INLINE vfloat vfma_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return _mm512_fmadd_ps(x, y, z); }
Expand Down
1 change: 1 addition & 0 deletions src/arch/helperpurec_scalar.h
Expand Up @@ -303,6 +303,7 @@ static INLINE vfloat vmin_vf_vf_vf(vfloat x, vfloat y) { return x < y ? x : y; }
#ifndef ENABLE_FMA_SP
static INLINE vfloat vmla_vf_vf_vf_vf (vfloat x, vfloat y, vfloat z) { return x * y + z; }
static INLINE vfloat vmlanp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return - x * y + z; }
static INLINE vfloat vmlapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return x * y - z; }
#else
static INLINE vfloat vmla_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return FMAF(x, y, z); }
static INLINE vfloat vmlapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return FMAF(x, y, -z); }
Expand Down
1 change: 1 addition & 0 deletions src/arch/helpersse2.h
Expand Up @@ -308,6 +308,7 @@ static INLINE vfloat vsqrt_vf_vf(vfloat x) { return _mm_sqrt_ps(x); }
static INLINE vfloat vabs_vf_vf(vfloat f) { return vreinterpret_vf_vm(vandnot_vm_vm_vm(vreinterpret_vm_vf(vcast_vf_f(-0.0f)), vreinterpret_vm_vf(f))); }
static INLINE vfloat vneg_vf_vf(vfloat d) { return vreinterpret_vf_vm(vxor_vm_vm_vm(vreinterpret_vm_vf(vcast_vf_f(-0.0f)), vreinterpret_vm_vf(d))); }
static INLINE vfloat vmla_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vadd_vf_vf_vf(vmul_vf_vf_vf(x, y), z); }
static INLINE vfloat vmlapn_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vsub_vf_vf_vf(vmul_vf_vf_vf(x, y), z); }
static INLINE vfloat vmlanp_vf_vf_vf_vf(vfloat x, vfloat y, vfloat z) { return vsub_vf_vf_vf(z, vmul_vf_vf_vf(x, y)); }
static INLINE vfloat vmax_vf_vf_vf(vfloat x, vfloat y) { return _mm_max_ps(x, y); }
static INLINE vfloat vmin_vf_vf_vf(vfloat x, vfloat y) { return _mm_min_ps(x, y); }
Expand Down
10 changes: 10 additions & 0 deletions src/libm-tester/iut.c
Expand Up @@ -569,6 +569,16 @@ int main(int argc, char **argv) {
sscanf(buf, "cospif_u05 %x", &u);
u = f2u(xcospif_u05(u2f(u)));
printf("%x\n", u);
} else if (startsWith(buf, "fastsinf_u100000 ")) {
uint32_t u;
sscanf(buf, "fastsinf_u100000 %x", &u);
u = f2u(xfastsinf_u100000(u2f(u)));
printf("%x\n", u);
} else if (startsWith(buf, "fastcosf_u100000 ")) {
uint32_t u;
sscanf(buf, "fastcosf_u100000 %x", &u);
u = f2u(xfastcosf_u100000(u2f(u)));
printf("%x\n", u);
} else if (startsWith(buf, "tanf_u1 ")) {
uint32_t u;
sscanf(buf, "tanf_u1 %x", &u);
Expand Down
5 changes: 5 additions & 0 deletions src/libm-tester/iutsimd.c
Expand Up @@ -570,6 +570,11 @@ int do_test(int argc, char **argv) {
func_f_f("atanf_u1", xatanf_u1);
func_f_f("logf_u1", xlogf_u1);

func_f_f("fastsinf_u100000", xfastsinf_u100000);
func_f_f("fastcosf_u100000", xfastcosf_u100000);
func_f_f("fastsinf_u35", xfastsinf_u35);
func_f_f("fastcosf_u35", xfastcosf_u35);

func_f_f("exp2f", xexp2f);
func_f_f("exp10f", xexp10f);
func_f_f("expm1f", xexpm1f);
Expand Down
28 changes: 28 additions & 0 deletions src/libm-tester/tester.c
Expand Up @@ -289,6 +289,11 @@ float child_cbrtf_u1(float x) { child_f_f("cbrtf_u1", x); }
float child_atan2f_u1(float y, float x) { child_f_f_f("atan2f_u1", y, x); }
Sleef_float2 child_sincosf_u1(float x) { child_f2_f("sincosf_u1", x); }

float child_fastsinf_u100000(float x) { child_f_f("fastsinf_u100000", x); }
float child_fastcosf_u100000(float x) { child_f_f("fastcosf_u100000", x); }
float child_fastsinf_u35(float x) { child_f_f("fastsinf_u35", x); }
float child_fastcosf_u35(float x) { child_f_f("fastcosf_u35", x); }

float child_powf(float x, float y) { child_f_f_f("powf", x, y); }
float child_sqrtf(float x) { child_f_f("sqrtf", x); }
float child_sqrtf_u05(float x) { child_f_f("sqrtf_u05", x); }
Expand Down Expand Up @@ -4122,6 +4127,19 @@ void do_test() {
break; \
} \
} while(0)

#define checkAccuracy2_f(mpfrFunc, childFunc, argx, bound, abound) do { \
mpfr_set_d(frx, (float)flushToZero(argx), GMP_RNDN); \
mpfrFunc(frc, frx, GMP_RNDN); \
double t = childFunc((float)flushToZero(argx)); \
double ae = fabs(mpfr_get_d(frc, GMP_RNDN) - t); \
if (countULPsp(t, frc) > bound && ae > abound) { \
fprintf(stderr, "\narg = %.20g, test = %.20g, correct = %.20g, ULP = %lf, abserror = %g\n", \
(float)flushToZero(argx), (double)childFunc((float)flushToZero(argx)), mpfr_get_d(frc, GMP_RNDN), countULPsp(childFunc((float)flushToZero(argx)), frc), ae); \
success = 0; \
break; \
} \
} while(0)

//

Expand Down Expand Up @@ -4469,6 +4487,16 @@ void do_test() {

mpfr_set_default_prec(53);

//

fprintf(stderr, "fastsinf_u100000 : ");
for(d = -9;d < 9 && success;d += 0.001) checkAccuracy2_f(mpfr_sin, child_fastsinf_u100000, d, 100000, 1e-6);
showResult(success);

fprintf(stderr, "fastcosf_u100000 : ");
for(d = -9;d < 9 && success;d += 0.001) checkAccuracy2_f(mpfr_cos, child_fastcosf_u100000, d, 100000, 1e-6);
showResult(success);

//

fprintf(stderr, "tanf : ");
Expand Down
7 changes: 7 additions & 0 deletions src/libm/funcproto.h
Expand Up @@ -20,6 +20,7 @@ typedef struct {
2 : "_u05"
3 : "_u35"
4 : "_u15"
5 : "_u100000"
funcType:
0 : vdouble func(vdouble);
Expand All @@ -34,6 +35,7 @@ typedef struct {
flags:
1 : No GNUABI
2 : No double func
*/

funcSpec funcList[] = {
Expand Down Expand Up @@ -66,6 +68,11 @@ funcSpec funcList[] = {
{ "cosh", 35, 3, 0, 0 },
{ "tanh", 35, 3, 0, 0 },

{ "fastsin", 100000, 5, 0, 2 },
{ "fastcos", 100000, 5, 0, 2 },
{ "fastsin", 35, 3, 0, 2 },
{ "fastcos", 35, 3, 0, 2 },

{ "asinh", 10, 0, 0, 0 },
{ "acosh", 10, 0, 0, 0 },
{ "atanh", 10, 0, 0, 0 },
Expand Down
3 changes: 2 additions & 1 deletion src/libm/mkalias.c
Expand Up @@ -36,7 +36,7 @@ int main(int argc, char **argv) {
};
static char *typeSpecS[] = { "", "f" };
static char *typeSpec[] = { "d", "f" };
static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15" };
static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15", "_u100000" };
static char *vparameterStr[7] = { "v", "vv", "", "vv", "v", "vvv", "" };

static char returnType[9][1000];
Expand Down Expand Up @@ -84,6 +84,7 @@ int main(int argc, char **argv) {

if (argc == 6) {
for(int i=0;funcList[i].name != NULL;i++) {
if ((funcList[i].flags & 2) != 0) continue;
if (funcList[i].ulp >= 0) {
printf("EXPORT CONST %s Sleef_%s%s%d_u%02d(%s) __attribute__((alias(\"Sleef_%s%s%d_u%02d%s\"))) %s;\n",
returnType[funcList[i].funcType],
Expand Down
124 changes: 70 additions & 54 deletions src/libm/mkdisp.c
Expand Up @@ -30,13 +30,15 @@ int main(int argc, char **argv) {

switch(funcList[i].funcType) {
case 0:
printf("DISPATCH_vf_vf(%s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_vf_vf(%s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
}

printf("DISPATCH_vf_vf(%s, Sleef_%sf%d%s, pnt_%sf%d%s, disp_%sf%d%s",
vfloatname,
Expand All @@ -48,13 +50,15 @@ int main(int argc, char **argv) {

break;
case 1:
printf("DISPATCH_vf_vf_vf(%s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_vf_vf_vf(%s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
}

printf("DISPATCH_vf_vf_vf(%s, Sleef_%sf%d%s, pnt_%sf%d%s, disp_%sf%d%s",
vfloatname,
Expand All @@ -67,13 +71,15 @@ int main(int argc, char **argv) {
break;
case 2:
case 6:
printf("DISPATCH_vf2_vf(%s, Sleef_%s_2, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename, vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_vf2_vf(%s, Sleef_%s_2, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename, vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
}

printf("DISPATCH_vf2_vf(%s, Sleef_%s_2, Sleef_%sf%d%s, pnt_%sf%d%s, disp_%sf%d%s",
vfloatname, vfloatname,
Expand All @@ -85,31 +91,37 @@ int main(int argc, char **argv) {

break;
case 3:
printf("DISPATCH_vf_vf_vi(%s, %s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename, vintname,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_vf_vf_vi(%s, %s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename, vintname,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
}
break;
case 4:
printf("DISPATCH_vi_vf(%s, %s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename, vintname,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_vi_vf(%s, %s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename, vintname,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
}
break;
case 5:
printf("DISPATCH_vf_vf_vf_vf(%s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_vf_vf_vf_vf(%s, Sleef_%sd%d%s, pnt_%sd%d%s, disp_%sd%d%s",
vdoublename,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0,
funcList[i].name, wdp, ulpSuffix0);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d%s%s", funcList[i].name, wdp, ulpSuffix1, argv[isastart + j]);
printf(")\n");
}

printf("DISPATCH_vf_vf_vf_vf(%s, Sleef_%sf%d%s, pnt_%sf%d%s, disp_%sf%d%s",
vfloatname,
Expand All @@ -128,12 +140,14 @@ int main(int argc, char **argv) {
for(int j=0;j<nisa;j++) printf(", Sleef_%sf%d_%s", funcList[i].name, wsp, argv[isastart + j]);
printf(")\n");

printf("DISPATCH_i_i(Sleef_%sd%d, pnt_%sd%d, disp_%sd%d",
funcList[i].name, wdp,
funcList[i].name, wdp,
funcList[i].name, wdp);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d_%s", funcList[i].name, wdp, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_i_i(Sleef_%sd%d, pnt_%sd%d, disp_%sd%d",
funcList[i].name, wdp,
funcList[i].name, wdp,
funcList[i].name, wdp);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d_%s", funcList[i].name, wdp, argv[isastart + j]);
printf(")\n");
}
break;
case 8:
printf("DISPATCH_p_i(Sleef_%sf%d, pnt_%sf%d, disp_%sf%d",
Expand All @@ -143,12 +157,14 @@ int main(int argc, char **argv) {
for(int j=0;j<nisa;j++) printf(", Sleef_%sf%d_%s", funcList[i].name, wsp, argv[isastart + j]);
printf(")\n");

printf("DISPATCH_p_i(Sleef_%sd%d, pnt_%sd%d, disp_%sd%d",
funcList[i].name, wdp,
funcList[i].name, wdp,
funcList[i].name, wdp);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d_%s", funcList[i].name, wdp, argv[isastart + j]);
printf(")\n");
if ((funcList[i].flags & 2) == 0) {
printf("DISPATCH_p_i(Sleef_%sd%d, pnt_%sd%d, disp_%sd%d",
funcList[i].name, wdp,
funcList[i].name, wdp,
funcList[i].name, wdp);
for(int j=0;j<nisa;j++) printf(", Sleef_%sd%d_%s", funcList[i].name, wdp, argv[isastart + j]);
printf(")\n");
}
break;
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/libm/mkmasked_gnuabi.c
Expand Up @@ -44,7 +44,7 @@ int main(int argc, char **argv) {
static char *vintname[] = { "vint", "vint2" };
static int sizeoffp[] = { 8, 4 };

static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15" };
static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15", "_u100000" };
static char vparameterStr[7][LEN] = { "v", "vv", "vl8l8", "vv", "v", "vvv", "vl8" };
static char *typeSpecS[] = { "", "f" };
static char *typeSpec[] = { "d", "f" };
Expand All @@ -57,6 +57,7 @@ int main(int argc, char **argv) {

for(int i=0;funcList[i].name != NULL;i++) {
if ((funcList[i].flags & 1) != 0) continue;
if (fptype == 0 && (funcList[i].flags & 2) != 0) continue;
if (funcList[i].ulp < 20) {
snprintf(funcname[0], LEN, "_ZGV%sN%s%s_%s%s",
mangledisa, cvw, vparameterStr[funcList[i].funcType], funcList[i].name, typeSpecS[fptype]);
Expand Down
2 changes: 1 addition & 1 deletion src/libm/mkrename.c
Expand Up @@ -32,7 +32,7 @@ int main(int argc, char **argv) {
exit(-1);
}

static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15" };
static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15", "_u100000" };

if (argc == 4 || argc == 5) {
char *atrPrefix = strcmp(argv[1], "-") == 0 ? "" : argv[1];
Expand Down
3 changes: 2 additions & 1 deletion src/libm/mkrename_gnuabi.c
Expand Up @@ -25,12 +25,13 @@ int main(int argc, char **argv) {
if (strcmp(isaname, "sve") == 0)
wdp = wsp = "x";

static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15" };
static char *ulpSuffixStr[] = { "", "_u1", "_u05", "_u35", "_u15", "_u100000" };
static char *vparameterStrDP[] = { "v", "vv", "vl8l8", "vv", "v", "vvv", "vl8" };
static char *vparameterStrSP[] = { "v", "vv", "vl4l4", "vv", "v", "vvv", "vl4" };

for(int i=0;funcList[i].name != NULL;i++) {
if ((funcList[i].flags & 1) != 0) continue;
if ((funcList[i].flags & 2) != 0) continue;
if (funcList[i].ulp < 0) {
printf("#define x%s _ZGV%sN%s%s_%s\n", funcList[i].name,
mangledisa, wdp, vparameterStrDP[funcList[i].funcType], funcList[i].name);
Expand Down
3 changes: 3 additions & 0 deletions src/libm/rename.h
Expand Up @@ -104,6 +104,9 @@
#define xlogf_u1 Sleef_logf_u10
#define xcbrtf_u1 Sleef_cbrtf_u10

#define xfastsinf_u100000 Sleef_fastsinf_u100000
#define xfastcosf_u100000 Sleef_fastcosf_u100000

#define xexpf Sleef_expf_u10
#define xpowf Sleef_powf_u10
#define xsinhf Sleef_sinhf_u10
Expand Down
2 changes: 2 additions & 0 deletions src/libm/sleeflibm_header.h.org
Expand Up @@ -195,6 +195,8 @@ IMPORT CONST float Sleef_cbrtf_u35(float);
IMPORT CONST float Sleef_sinf_u10(float);
IMPORT CONST float Sleef_cosf_u10(float);
IMPORT CONST Sleef_float2 Sleef_sincosf_u10(float);
IMPORT CONST float Sleef_fastsinf_u100000(float);
IMPORT CONST float Sleef_fastcosf_u100000(float);
IMPORT CONST float Sleef_tanf_u10(float);
IMPORT CONST float Sleef_asinf_u10(float);
IMPORT CONST float Sleef_acosf_u10(float);
Expand Down

0 comments on commit 3625f59

Please sign in to comment.