about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--include/math.h3
-rw-r--r--src/linux/sincosf.c8
-rw-r--r--src/linux/sincosl.c8
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);
+}