[Libclc-dev] [PATCH] Include exp/log functions for libclc.

Joshua Cranmer pidgeot18 at gmail.com
Wed Apr 18 07:42:17 PDT 2012


---
  include/generic/clc/clc.h              |    8 ++++++++
  include/generic/clc/math/exp.h         |    4 ++++
  include/generic/clc/math/exp2.h        |    6 ++++++
  include/generic/clc/math/log.h         |    4 ++++
  include/generic/clc/math/log2.h        |    6 ++++++
  include/generic/clc/math/native_exp.h  |    1 +
  include/generic/clc/math/native_exp2.h |    1 +
  include/generic/clc/math/native_log.h  |    1 +
  include/generic/clc/math/native_log2.h |    1 +
  9 files changed, 32 insertions(+), 0 deletions(-)
  create mode 100644 include/generic/clc/math/exp.h
  create mode 100644 include/generic/clc/math/exp2.h
  create mode 100644 include/generic/clc/math/log.h
  create mode 100644 include/generic/clc/math/log2.h
  create mode 100644 include/generic/clc/math/native_exp.h
  create mode 100644 include/generic/clc/math/native_exp2.h
  create mode 100644 include/generic/clc/math/native_log.h
  create mode 100644 include/generic/clc/math/native_log2.h

diff --git a/include/generic/clc/clc.h b/include/generic/clc/clc.h
index 33f8bcd..0a8b9cb 100644
--- a/include/generic/clc/clc.h
+++ b/include/generic/clc/clc.h
@@ -23,10 +23,18 @@
   /* 6.11.2 Math Functions */
  #include <clc/math/cos.h>
+#include <clc/math/exp.h>
+#include <clc/math/exp2.h>
+#include <clc/math/log.h>
+#include <clc/math/log2.h>
  #include <clc/math/sin.h>
  #include <clc/math/sqrt.h>
  #include <clc/math/native_cos.h>
  #include <clc/math/native_divide.h>
+#include <clc/math/native_exp.h>
+#include <clc/math/native_exp2.h>
+#include <clc/math/native_log.h>
+#include <clc/math/native_log2.h>
  #include <clc/math/native_sin.h>
  #include <clc/math/native_sqrt.h>
  diff --git a/include/generic/clc/math/exp.h 
b/include/generic/clc/math/exp.h
new file mode 100644
index 0000000..dbc4b84
--- /dev/null
+++ b/include/generic/clc/math/exp.h
@@ -0,0 +1,4 @@
+#undef exp
+
+// exp(x) = exp2(x * log2(e)
+#define exp(val) (__clc_exp2((val) * 1.44269504f))
diff --git a/include/generic/clc/math/exp2.h 
b/include/generic/clc/math/exp2.h
new file mode 100644
index 0000000..eeb0e49
--- /dev/null
+++ b/include/generic/clc/math/exp2.h
@@ -0,0 +1,6 @@
+#undef exp2
+#define exp2 __clc_exp2
+
+#define FUNCTION __clc_exp2
+#define INTRINSIC "llvm.exp2"
+#include <clc/math/_unary_intrin.h>
diff --git a/include/generic/clc/math/log.h b/include/generic/clc/math/log.h
new file mode 100644
index 0000000..644f857
--- /dev/null
+++ b/include/generic/clc/math/log.h
@@ -0,0 +1,4 @@
+#undef log
+
+// log(x) = log2(x) * (1/log2(e))
+#define log(val) (__clc_log2(val) * 0.693147181f)
diff --git a/include/generic/clc/math/log2.h 
b/include/generic/clc/math/log2.h
new file mode 100644
index 0000000..784d445
--- /dev/null
+++ b/include/generic/clc/math/log2.h
@@ -0,0 +1,6 @@
+#undef log2
+#define log2 __clc_log2
+
+#define FUNCTION __clc_log2
+#define INTRINSIC "llvm.log2"
+#include <clc/math/_unary_intrin.h>
diff --git a/include/generic/clc/math/native_exp.h 
b/include/generic/clc/math/native_exp.h
new file mode 100644
index 0000000..e206de6
--- /dev/null
+++ b/include/generic/clc/math/native_exp.h
@@ -0,0 +1 @@
+#define native_exp exp
diff --git a/include/generic/clc/math/native_exp2.h 
b/include/generic/clc/math/native_exp2.h
new file mode 100644
index 0000000..b675939
--- /dev/null
+++ b/include/generic/clc/math/native_exp2.h
@@ -0,0 +1 @@
+#define native_exp2 exp2
diff --git a/include/generic/clc/math/native_log.h 
b/include/generic/clc/math/native_log.h
new file mode 100644
index 0000000..7805a39
--- /dev/null
+++ b/include/generic/clc/math/native_log.h
@@ -0,0 +1 @@
+#define native_log log
diff --git a/include/generic/clc/math/native_log2.h 
b/include/generic/clc/math/native_log2.h
new file mode 100644
index 0000000..0c692ee
--- /dev/null
+++ b/include/generic/clc/math/native_log2.h
@@ -0,0 +1 @@
+#define native_log2 log2
-- 
1.7.9.1



More information about the Libclc-dev mailing list