Switch to FreeBSD's actual sincos.
Before:
BM_math_sin_fast 48 ns 48 ns 14693053
BM_math_sincos 61 ns 61 ns 11470219
After:
BM_math_sin_fast 48 ns 48 ns 14725120
BM_math_sincos 43 ns 43 ns 16329843
Bug: N/A
Test: ran tests, benchmarks
Change-Id: I8693c64135233c0641af5302c38748f47ac76737
diff --git a/libm/fake_long_double.c b/libm/fake_long_double.c
index fd983ed..fb79af4 100644
--- a/libm/fake_long_double.c
+++ b/libm/fake_long_double.c
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#define _GNU_SOURCE
#include <float.h>
#include <math.h>
@@ -37,6 +38,7 @@
long double modfl(long double a1, long double* a2) { double i; double f = modf(a1, &i); *a2 = i; return f; }
float nexttowardf(float a1, long double a2) { return nextafterf(a1, (float) a2); }
long double roundl(long double a1) { return round(a1); }
+void sincosl(long double x, long double* s, long double* c) { return sincos(x, (double*) s, (double*) c); }
#endif // __LP64__