Commit 21d9e03758

Koki Ueha <jeamsblue@gmail.com>
2025-05-30 17:32:52
libc: replace musl's trigonometric functions with compiler_rt's
- sin - sinf - cos - cosf - sincos - sincosf - tan - tanf
1 parent 0cbff2f
Changed files (10)
lib/libc/musl/src/math/cos.c
@@ -1,77 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_cos.c */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-/* cos(x)
- * Return cosine function of x.
- *
- * kernel function:
- *      __sin           ... sine function on [-pi/4,pi/4]
- *      __cos           ... cosine function on [-pi/4,pi/4]
- *      __rem_pio2      ... argument reduction routine
- *
- * Method.
- *      Let S,C and T denote the sin, cos and tan respectively on
- *      [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
- *      in [-pi/4 , +pi/4], and let n = k mod 4.
- *      We have
- *
- *          n        sin(x)      cos(x)        tan(x)
- *     ----------------------------------------------------------
- *          0          S           C             T
- *          1          C          -S            -1/T
- *          2         -S          -C             T
- *          3         -C           S            -1/T
- *     ----------------------------------------------------------
- *
- * Special cases:
- *      Let trig be any of sin, cos, or tan.
- *      trig(+-INF)  is NaN, with signals;
- *      trig(NaN)    is that NaN;
- *
- * Accuracy:
- *      TRIG(x) returns trig(x) nearly rounded
- */
-
-#include "libm.h"
-
-double cos(double x)
-{
-	double y[2];
-	uint32_t ix;
-	unsigned n;
-
-	GET_HIGH_WORD(ix, x);
-	ix &= 0x7fffffff;
-
-	/* |x| ~< pi/4 */
-	if (ix <= 0x3fe921fb) {
-		if (ix < 0x3e46a09e) {  /* |x| < 2**-27 * sqrt(2) */
-			/* raise inexact if x!=0 */
-			FORCE_EVAL(x + 0x1p120f);
-			return 1.0;
-		}
-		return __cos(x, 0);
-	}
-
-	/* cos(Inf or NaN) is NaN */
-	if (ix >= 0x7ff00000)
-		return x-x;
-
-	/* argument reduction */
-	n = __rem_pio2(x, y);
-	switch (n&3) {
-	case 0: return  __cos(y[0], y[1]);
-	case 1: return -__sin(y[0], y[1], 1);
-	case 2: return -__cos(y[0], y[1]);
-	default:
-		return  __sin(y[0], y[1], 1);
-	}
-}
lib/libc/musl/src/math/cosf.c
@@ -1,78 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_cosf.c */
-/*
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include "libm.h"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-c1pio2 = 1*M_PI_2, /* 0x3FF921FB, 0x54442D18 */
-c2pio2 = 2*M_PI_2, /* 0x400921FB, 0x54442D18 */
-c3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */
-c4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */
-
-float cosf(float x)
-{
-	double y;
-	uint32_t ix;
-	unsigned n, sign;
-
-	GET_FLOAT_WORD(ix, x);
-	sign = ix >> 31;
-	ix &= 0x7fffffff;
-
-	if (ix <= 0x3f490fda) {  /* |x| ~<= pi/4 */
-		if (ix < 0x39800000) {  /* |x| < 2**-12 */
-			/* raise inexact if x != 0 */
-			FORCE_EVAL(x + 0x1p120f);
-			return 1.0f;
-		}
-		return __cosdf(x);
-	}
-	if (ix <= 0x407b53d1) {  /* |x| ~<= 5*pi/4 */
-		if (ix > 0x4016cbe3)  /* |x|  ~> 3*pi/4 */
-			return -__cosdf(sign ? x+c2pio2 : x-c2pio2);
-		else {
-			if (sign)
-				return __sindf(x + c1pio2);
-			else
-				return __sindf(c1pio2 - x);
-		}
-	}
-	if (ix <= 0x40e231d5) {  /* |x| ~<= 9*pi/4 */
-		if (ix > 0x40afeddf)  /* |x| ~> 7*pi/4 */
-			return __cosdf(sign ? x+c4pio2 : x-c4pio2);
-		else {
-			if (sign)
-				return __sindf(-x - c3pio2);
-			else
-				return __sindf(x - c3pio2);
-		}
-	}
-
-	/* cos(Inf or NaN) is NaN */
-	if (ix >= 0x7f800000)
-		return x-x;
-
-	/* general argument reduction needed */
-	n = __rem_pio2f(x,&y);
-	switch (n&3) {
-	case 0: return  __cosdf(y);
-	case 1: return  __sindf(-y);
-	case 2: return -__cosdf(y);
-	default:
-		return  __sindf(y);
-	}
-}
lib/libc/musl/src/math/sin.c
@@ -1,78 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_sin.c */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-/* sin(x)
- * Return sine function of x.
- *
- * kernel function:
- *      __sin            ... sine function on [-pi/4,pi/4]
- *      __cos            ... cose function on [-pi/4,pi/4]
- *      __rem_pio2       ... argument reduction routine
- *
- * Method.
- *      Let S,C and T denote the sin, cos and tan respectively on
- *      [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
- *      in [-pi/4 , +pi/4], and let n = k mod 4.
- *      We have
- *
- *          n        sin(x)      cos(x)        tan(x)
- *     ----------------------------------------------------------
- *          0          S           C             T
- *          1          C          -S            -1/T
- *          2         -S          -C             T
- *          3         -C           S            -1/T
- *     ----------------------------------------------------------
- *
- * Special cases:
- *      Let trig be any of sin, cos, or tan.
- *      trig(+-INF)  is NaN, with signals;
- *      trig(NaN)    is that NaN;
- *
- * Accuracy:
- *      TRIG(x) returns trig(x) nearly rounded
- */
-
-#include "libm.h"
-
-double sin(double x)
-{
-	double y[2];
-	uint32_t ix;
-	unsigned n;
-
-	/* High word of x. */
-	GET_HIGH_WORD(ix, x);
-	ix &= 0x7fffffff;
-
-	/* |x| ~< pi/4 */
-	if (ix <= 0x3fe921fb) {
-		if (ix < 0x3e500000) {  /* |x| < 2**-26 */
-			/* raise inexact if x != 0 and underflow if subnormal*/
-			FORCE_EVAL(ix < 0x00100000 ? x/0x1p120f : x+0x1p120f);
-			return x;
-		}
-		return __sin(x, 0.0, 0);
-	}
-
-	/* sin(Inf or NaN) is NaN */
-	if (ix >= 0x7ff00000)
-		return x - x;
-
-	/* argument reduction needed */
-	n = __rem_pio2(x, y);
-	switch (n&3) {
-	case 0: return  __sin(y[0], y[1], 1);
-	case 1: return  __cos(y[0], y[1]);
-	case 2: return -__sin(y[0], y[1], 1);
-	default:
-		return -__cos(y[0], y[1]);
-	}
-}
lib/libc/musl/src/math/sincos.c
@@ -1,69 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_sin.c */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#define _GNU_SOURCE
-#include "libm.h"
-
-void sincos(double x, double *sin, double *cos)
-{
-	double y[2], s, c;
-	uint32_t ix;
-	unsigned n;
-
-	GET_HIGH_WORD(ix, x);
-	ix &= 0x7fffffff;
-
-	/* |x| ~< pi/4 */
-	if (ix <= 0x3fe921fb) {
-		/* if |x| < 2**-27 * sqrt(2) */
-		if (ix < 0x3e46a09e) {
-			/* raise inexact if x!=0 and underflow if subnormal */
-			FORCE_EVAL(ix < 0x00100000 ? x/0x1p120f : x+0x1p120f);
-			*sin = x;
-			*cos = 1.0;
-			return;
-		}
-		*sin = __sin(x, 0.0, 0);
-		*cos = __cos(x, 0.0);
-		return;
-	}
-
-	/* sincos(Inf or NaN) is NaN */
-	if (ix >= 0x7ff00000) {
-		*sin = *cos = x - x;
-		return;
-	}
-
-	/* argument reduction needed */
-	n = __rem_pio2(x, y);
-	s = __sin(y[0], y[1], 1);
-	c = __cos(y[0], y[1]);
-	switch (n&3) {
-	case 0:
-		*sin = s;
-		*cos = c;
-		break;
-	case 1:
-		*sin = c;
-		*cos = -s;
-		break;
-	case 2:
-		*sin = -s;
-		*cos = -c;
-		break;
-	case 3:
-	default:
-		*sin = -c;
-		*cos = s;
-		break;
-	}
-}
lib/libc/musl/src/math/sincosf.c
@@ -1,117 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_sinf.c */
-/*
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#define _GNU_SOURCE
-#include "libm.h"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-s1pio2 = 1*M_PI_2, /* 0x3FF921FB, 0x54442D18 */
-s2pio2 = 2*M_PI_2, /* 0x400921FB, 0x54442D18 */
-s3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */
-s4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */
-
-void sincosf(float x, float *sin, float *cos)
-{
-	double y;
-	float_t s, c;
-	uint32_t ix;
-	unsigned n, sign;
-
-	GET_FLOAT_WORD(ix, x);
-	sign = ix >> 31;
-	ix &= 0x7fffffff;
-
-	/* |x| ~<= pi/4 */
-	if (ix <= 0x3f490fda) {
-		/* |x| < 2**-12 */
-		if (ix < 0x39800000) {
-			/* raise inexact if x!=0 and underflow if subnormal */
-			FORCE_EVAL(ix < 0x00100000 ? x/0x1p120f : x+0x1p120f);
-			*sin = x;
-			*cos = 1.0f;
-			return;
-		}
-		*sin = __sindf(x);
-		*cos = __cosdf(x);
-		return;
-	}
-
-	/* |x| ~<= 5*pi/4 */
-	if (ix <= 0x407b53d1) {
-		if (ix <= 0x4016cbe3) {  /* |x| ~<= 3pi/4 */
-			if (sign) {
-				*sin = -__cosdf(x + s1pio2);
-				*cos = __sindf(x + s1pio2);
-			} else {
-				*sin = __cosdf(s1pio2 - x);
-				*cos = __sindf(s1pio2 - x);
-			}
-			return;
-		}
-		/* -sin(x+c) is not correct if x+c could be 0: -0 vs +0 */
-		*sin = -__sindf(sign ? x + s2pio2 : x - s2pio2);
-		*cos = -__cosdf(sign ? x + s2pio2 : x - s2pio2);
-		return;
-	}
-
-	/* |x| ~<= 9*pi/4 */
-	if (ix <= 0x40e231d5) {
-		if (ix <= 0x40afeddf) {  /* |x| ~<= 7*pi/4 */
-			if (sign) {
-				*sin = __cosdf(x + s3pio2);
-				*cos = -__sindf(x + s3pio2);
-			} else {
-				*sin = -__cosdf(x - s3pio2);
-				*cos = __sindf(x - s3pio2);
-			}
-			return;
-		}
-		*sin = __sindf(sign ? x + s4pio2 : x - s4pio2);
-		*cos = __cosdf(sign ? x + s4pio2 : x - s4pio2);
-		return;
-	}
-
-	/* sin(Inf or NaN) is NaN */
-	if (ix >= 0x7f800000) {
-		*sin = *cos = x - x;
-		return;
-	}
-
-	/* general argument reduction needed */
-	n = __rem_pio2f(x, &y);
-	s = __sindf(y);
-	c = __cosdf(y);
-	switch (n&3) {
-	case 0:
-		*sin = s;
-		*cos = c;
-		break;
-	case 1:
-		*sin = c;
-		*cos = -s;
-		break;
-	case 2:
-		*sin = -s;
-		*cos = -c;
-		break;
-	case 3:
-	default:
-		*sin = -c;
-		*cos = s;
-		break;
-	}
-}
lib/libc/musl/src/math/sinf.c
@@ -1,76 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_sinf.c */
-/*
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include "libm.h"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-s1pio2 = 1*M_PI_2, /* 0x3FF921FB, 0x54442D18 */
-s2pio2 = 2*M_PI_2, /* 0x400921FB, 0x54442D18 */
-s3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */
-s4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */
-
-float sinf(float x)
-{
-	double y;
-	uint32_t ix;
-	int n, sign;
-
-	GET_FLOAT_WORD(ix, x);
-	sign = ix >> 31;
-	ix &= 0x7fffffff;
-
-	if (ix <= 0x3f490fda) {  /* |x| ~<= pi/4 */
-		if (ix < 0x39800000) {  /* |x| < 2**-12 */
-			/* raise inexact if x!=0 and underflow if subnormal */
-			FORCE_EVAL(ix < 0x00800000 ? x/0x1p120f : x+0x1p120f);
-			return x;
-		}
-		return __sindf(x);
-	}
-	if (ix <= 0x407b53d1) {  /* |x| ~<= 5*pi/4 */
-		if (ix <= 0x4016cbe3) {  /* |x| ~<= 3pi/4 */
-			if (sign)
-				return -__cosdf(x + s1pio2);
-			else
-				return __cosdf(x - s1pio2);
-		}
-		return __sindf(sign ? -(x + s2pio2) : -(x - s2pio2));
-	}
-	if (ix <= 0x40e231d5) {  /* |x| ~<= 9*pi/4 */
-		if (ix <= 0x40afeddf) {  /* |x| ~<= 7*pi/4 */
-			if (sign)
-				return __cosdf(x + s3pio2);
-			else
-				return -__cosdf(x - s3pio2);
-		}
-		return __sindf(sign ? x + s4pio2 : x - s4pio2);
-	}
-
-	/* sin(Inf or NaN) is NaN */
-	if (ix >= 0x7f800000)
-		return x - x;
-
-	/* general argument reduction needed */
-	n = __rem_pio2f(x, &y);
-	switch (n&3) {
-	case 0: return  __sindf(y);
-	case 1: return  __cosdf(y);
-	case 2: return  __sindf(-y);
-	default:
-		return -__cosdf(y);
-	}
-}
lib/libc/musl/src/math/tan.c
@@ -1,70 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_tan.c */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-/* tan(x)
- * Return tangent function of x.
- *
- * kernel function:
- *      __tan           ... tangent function on [-pi/4,pi/4]
- *      __rem_pio2      ... argument reduction routine
- *
- * Method.
- *      Let S,C and T denote the sin, cos and tan respectively on
- *      [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
- *      in [-pi/4 , +pi/4], and let n = k mod 4.
- *      We have
- *
- *          n        sin(x)      cos(x)        tan(x)
- *     ----------------------------------------------------------
- *          0          S           C             T
- *          1          C          -S            -1/T
- *          2         -S          -C             T
- *          3         -C           S            -1/T
- *     ----------------------------------------------------------
- *
- * Special cases:
- *      Let trig be any of sin, cos, or tan.
- *      trig(+-INF)  is NaN, with signals;
- *      trig(NaN)    is that NaN;
- *
- * Accuracy:
- *      TRIG(x) returns trig(x) nearly rounded
- */
-
-#include "libm.h"
-
-double tan(double x)
-{
-	double y[2];
-	uint32_t ix;
-	unsigned n;
-
-	GET_HIGH_WORD(ix, x);
-	ix &= 0x7fffffff;
-
-	/* |x| ~< pi/4 */
-	if (ix <= 0x3fe921fb) {
-		if (ix < 0x3e400000) { /* |x| < 2**-27 */
-			/* raise inexact if x!=0 and underflow if subnormal */
-			FORCE_EVAL(ix < 0x00100000 ? x/0x1p120f : x+0x1p120f);
-			return x;
-		}
-		return __tan(x, 0.0, 0);
-	}
-
-	/* tan(Inf or NaN) is NaN */
-	if (ix >= 0x7ff00000)
-		return x - x;
-
-	/* argument reduction */
-	n = __rem_pio2(x, y);
-	return __tan(y[0], y[1], n&1);
-}
lib/libc/musl/src/math/tanf.c
@@ -1,64 +0,0 @@
-/* origin: FreeBSD /usr/src/lib/msun/src/s_tanf.c */
-/*
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include "libm.h"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-t1pio2 = 1*M_PI_2, /* 0x3FF921FB, 0x54442D18 */
-t2pio2 = 2*M_PI_2, /* 0x400921FB, 0x54442D18 */
-t3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */
-t4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */
-
-float tanf(float x)
-{
-	double y;
-	uint32_t ix;
-	unsigned n, sign;
-
-	GET_FLOAT_WORD(ix, x);
-	sign = ix >> 31;
-	ix &= 0x7fffffff;
-
-	if (ix <= 0x3f490fda) {  /* |x| ~<= pi/4 */
-		if (ix < 0x39800000) {  /* |x| < 2**-12 */
-			/* raise inexact if x!=0 and underflow if subnormal */
-			FORCE_EVAL(ix < 0x00800000 ? x/0x1p120f : x+0x1p120f);
-			return x;
-		}
-		return __tandf(x, 0);
-	}
-	if (ix <= 0x407b53d1) {  /* |x| ~<= 5*pi/4 */
-		if (ix <= 0x4016cbe3)  /* |x| ~<= 3pi/4 */
-			return __tandf((sign ? x+t1pio2 : x-t1pio2), 1);
-		else
-			return __tandf((sign ? x+t2pio2 : x-t2pio2), 0);
-	}
-	if (ix <= 0x40e231d5) {  /* |x| ~<= 9*pi/4 */
-		if (ix <= 0x40afeddf)  /* |x| ~<= 7*pi/4 */
-			return __tandf((sign ? x+t3pio2 : x-t3pio2), 1);
-		else
-			return __tandf((sign ? x+t4pio2 : x-t4pio2), 0);
-	}
-
-	/* tan(Inf or NaN) is NaN */
-	if (ix >= 0x7f800000)
-		return x - x;
-
-	/* argument reduction */
-	n = __rem_pio2f(x, &y);
-	return __tandf(y, n&1);
-}
src/libs/musl.zig
@@ -886,9 +886,7 @@ const src_files = [_][]const u8{
     "musl/src/math/copysignf.c",
     "musl/src/math/copysignl.c",
     "musl/src/math/__cos.c",
-    "musl/src/math/cos.c",
     "musl/src/math/__cosdf.c",
-    "musl/src/math/cosf.c",
     "musl/src/math/cosh.c",
     "musl/src/math/coshf.c",
     "musl/src/math/coshl.c",
@@ -1194,12 +1192,8 @@ const src_files = [_][]const u8{
     "musl/src/math/significand.c",
     "musl/src/math/significandf.c",
     "musl/src/math/__sin.c",
-    "musl/src/math/sin.c",
-    "musl/src/math/sincos.c",
-    "musl/src/math/sincosf.c",
     "musl/src/math/sincosl.c",
     "musl/src/math/__sindf.c",
-    "musl/src/math/sinf.c",
     "musl/src/math/sinh.c",
     "musl/src/math/sinhf.c",
     "musl/src/math/sinhl.c",
@@ -1210,9 +1204,7 @@ const src_files = [_][]const u8{
     "musl/src/math/sqrtf.c",
     "musl/src/math/sqrtl.c",
     "musl/src/math/__tan.c",
-    "musl/src/math/tan.c",
     "musl/src/math/__tandf.c",
-    "musl/src/math/tanf.c",
     "musl/src/math/tanh.c",
     "musl/src/math/tanhf.c",
     "musl/src/math/tanhl.c",
src/libs/wasi_libc.zig
@@ -728,9 +728,7 @@ const libc_top_half_src_files = [_][]const u8{
     "musl/src/math/ceill.c",
     "musl/src/math/copysignl.c",
     "musl/src/math/__cos.c",
-    "musl/src/math/cos.c",
     "musl/src/math/__cosdf.c",
-    "musl/src/math/cosf.c",
     "musl/src/math/coshl.c",
     "musl/src/math/__cosl.c",
     "musl/src/math/cosl.c",
@@ -871,21 +869,15 @@ const libc_top_half_src_files = [_][]const u8{
     "musl/src/math/significand.c",
     "musl/src/math/significandf.c",
     "musl/src/math/__sin.c",
-    "musl/src/math/sin.c",
-    "musl/src/math/sincos.c",
-    "musl/src/math/sincosf.c",
     "musl/src/math/sincosl.c",
     "musl/src/math/__sindf.c",
-    "musl/src/math/sinf.c",
     "musl/src/math/sinhl.c",
     "musl/src/math/__sinl.c",
     "musl/src/math/sinl.c",
     "musl/src/math/sqrt_data.c",
     "musl/src/math/sqrtl.c",
     "musl/src/math/__tan.c",
-    "musl/src/math/tan.c",
     "musl/src/math/__tandf.c",
-    "musl/src/math/tanf.c",
     "musl/src/math/tanh.c",
     "musl/src/math/tanhf.c",
     "musl/src/math/tanhl.c",