summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2005-09-13 21:15:42 +0000
committerDavid Schleef <ds@schleef.org>2005-09-13 21:15:42 +0000
commit2c9c450abd2ec054779f573b795c501e4af7c9fd (patch)
treefbcadfc61670fcf7638156867e4f7745fd5a52e6
parent8b6b1130c0eb3bedb2361e28cf17a7329552efc9 (diff)
downloadliboil-2c9c450abd2ec054779f573b795c501e4af7c9fd.tar.gz
* liboil/simdpack/sincos_f64.c: (sincos_f64_sincos): Add impl
using sincos()
-rw-r--r--ChangeLog5
-rw-r--r--liboil/simdpack/sincos_f64.c13
2 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6e7809a..675c72c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-13 David Schleef <ds@schleef.org>
+
+ * liboil/simdpack/sincos_f64.c: (sincos_f64_sincos): Add impl
+ using sincos()
+
2005-08-15 David Schleef <ds@schleef.org>
GCC complains on solaris when isspace() is called with a
diff --git a/liboil/simdpack/sincos_f64.c b/liboil/simdpack/sincos_f64.c
index 8feeb42..1bf54ff 100644
--- a/liboil/simdpack/sincos_f64.c
+++ b/liboil/simdpack/sincos_f64.c
@@ -69,4 +69,17 @@ sincos_f64_i20_fast(double *dest_sin, double *dest_cos, int n, double *offset,
}
OIL_DEFINE_IMPL (sincos_f64_i20_fast, sincos_f64);
+#ifdef _GNU_SOURCE
+static void
+sincos_f64_sincos (double *dest_sin, double *dest_cos, int n, double *offset,
+ double *interval)
+{
+ int i;
+
+ for(i=0;i<n;i++){
+ sincos (*offset + *interval * i, dest_sin + i, dest_cos + i);
+ }
+}
+OIL_DEFINE_IMPL (sincos_f64_sincos, sincos_f64);
+#endif