diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-03-15 02:38:42 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-03-15 02:38:42 -0400 |
commit | 5657cc58e5e135bba85c9a7045e10d8de4b1be0a (patch) | |
tree | 9eb1a46ac4ea495e3b90d11a42f33c05102a854b | |
parent | 46702f68f98244f7384d6ac1742a452f0d7a2610 (diff) | |
download | musl-5657cc58e5e135bba85c9a7045e10d8de4b1be0a.tar.gz musl-5657cc58e5e135bba85c9a7045e10d8de4b1be0a.tar.xz musl-5657cc58e5e135bba85c9a7045e10d8de4b1be0a.zip |
implement sincosf and sincosl functions; add prototypes
presumably broken gcc may generate calls to these, and it's said that ffmpeg makes use of sincosf.
-rw-r--r-- | include/math.h | 3 | ||||
-rw-r--r-- | src/linux/sincosf.c | 8 | ||||
-rw-r--r-- | src/linux/sincosl.c | 8 |
3 files changed, 19 insertions, 0 deletions
diff --git a/include/math.h b/include/math.h index f320b8e9..e9871516 100644 --- a/include/math.h +++ b/include/math.h @@ -382,6 +382,9 @@ long double ynl(int, long double); double scalb(double, double); float scalbf(float, float); long double scalbl(long double, long double); +void sincosf(float, float *, float *); +void sincos(double, double *, double *); +void sincosl(long double, long double *, long double *); #endif #ifdef __cplusplus diff --git a/src/linux/sincosf.c b/src/linux/sincosf.c new file mode 100644 index 00000000..5d8d4458 --- /dev/null +++ b/src/linux/sincosf.c @@ -0,0 +1,8 @@ +#define _GNU_SOURCE +#include <math.h> + +void sincosf(float t, float *y, float *x) +{ + *y = sinf(t); + *x = cosf(t); +} diff --git a/src/linux/sincosl.c b/src/linux/sincosl.c new file mode 100644 index 00000000..2bfc4862 --- /dev/null +++ b/src/linux/sincosl.c @@ -0,0 +1,8 @@ +#define _GNU_SOURCE +#include <math.h> + +void sincosl(long double t, long double *y, long double *x) +{ + *y = sinl(t); + *x = cosl(t); +} |