builtins: Add asin().
authorEric Anholt <eric@anholt.net>
Wed, 19 May 2010 19:19:54 +0000 (12:19 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 1 Jun 2010 22:15:04 +0000 (15:15 -0700)
builtin_function.cpp
builtins/110/asin [new file with mode: 0644]

index 909329c563abf3e8eb913f6d13a3e56876c666c6..f9fdd485e4b61d32b4a553c727f25322ed158130 100644 (file)
@@ -107,6 +107,98 @@ static const char *builtins_110_any = {
    "))\n"
 };
 
+static const char *builtins_110_asin = {
+   "((function asin\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) float x))\n"
+   "     ((return (expression float *\n"
+   "                  (expression float -\n"
+   "           (expression float *\n"
+   "            (constant float (3.1415926))\n"
+   "            (constant float (0.5)))\n"
+   "           (expression float sqrt\n"
+   "            (expression float -\n"
+   "             (constant float (1.0))\n"
+   "             (expression float abs (var_ref x)))))\n"
+   "                  (expression float +\n"
+   "                   (constant float (1.5707288))\n"
+   "           (expression float *\n"
+   "                    (expression float abs (var_ref x))\n"
+   "                    (expression float +\n"
+   "             (constant float (-0.2121144))\n"
+   "                     (expression float *\n"
+   "                      (constant float (0.0742610))\n"
+   "              (expression float abs (var_ref x))))))))))\n"
+   "\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) vec2 x))\n"
+   "     ((return (expression vec2 *\n"
+   "                  (expression vec2 -\n"
+   "           (expression vec2 *\n"
+   "            (constant float (3.1415926))\n"
+   "            (constant float (0.5)))\n"
+   "           (expression vec2 sqrt\n"
+   "            (expression vec2 -\n"
+   "             (constant float (1.0))\n"
+   "             (expression vec2 abs (var_ref x)))))\n"
+   "                  (expression vec2 +\n"
+   "                   (constant float (1.5707288))\n"
+   "           (expression vec2 *\n"
+   "                    (expression vec2 abs (var_ref x))\n"
+   "                    (expression vec2 +\n"
+   "             (constant float (-0.2121144))\n"
+   "                     (expression vec2 *\n"
+   "                      (constant float (0.0742610))\n"
+   "              (expression vec2 abs (var_ref x))))))))))\n"
+   "\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) vec3 x))\n"
+   "     ((return (expression vec3 *\n"
+   "                  (expression vec3 -\n"
+   "           (expression vec3 *\n"
+   "            (constant float (3.1415926))\n"
+   "            (constant float (0.5)))\n"
+   "           (expression vec3 sqrt\n"
+   "            (expression vec3 -\n"
+   "             (constant float (1.0))\n"
+   "             (expression vec3 abs (var_ref x)))))\n"
+   "                  (expression vec3 +\n"
+   "                   (constant float (1.5707288))\n"
+   "           (expression vec3 *\n"
+   "                    (expression vec3 abs (var_ref x))\n"
+   "                    (expression vec3 +\n"
+   "             (constant float (-0.2121144))\n"
+   "                     (expression vec3 *\n"
+   "                      (constant float (0.0742610))\n"
+   "              (expression vec3 abs (var_ref x))))))))))\n"
+   "\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) vec4 x))\n"
+   "     ((return (expression vec4 *\n"
+   "                  (expression vec4 -\n"
+   "           (expression vec4 *\n"
+   "            (constant float (3.1415926))\n"
+   "            (constant float (0.5)))\n"
+   "           (expression vec4 sqrt\n"
+   "            (expression vec4 -\n"
+   "             (constant float (1.0))\n"
+   "             (expression vec4 abs (var_ref x)))))\n"
+   "                  (expression vec4 +\n"
+   "                   (constant float (1.5707288))\n"
+   "           (expression vec4 *\n"
+   "                    (expression vec4 abs (var_ref x))\n"
+   "                    (expression vec4 +\n"
+   "             (constant float (-0.2121144))\n"
+   "                     (expression vec4 *\n"
+   "                      (constant float (0.0742610))\n"
+   "              (expression vec4 abs (var_ref x))))))))))\n"
+   "))\n"
+};
+
 static const char *builtins_110_ceil = {
    "((function ceil\n"
    "   (signature float\n"
@@ -1470,6 +1562,7 @@ static const char *functions_for_110 [] = {
    builtins_110_abs,
    builtins_110_all,
    builtins_110_any,
+   builtins_110_asin,
    builtins_110_ceil,
    builtins_110_clamp,
    builtins_110_cos,
diff --git a/builtins/110/asin b/builtins/110/asin
new file mode 100644 (file)
index 0000000..0c913b6
--- /dev/null
@@ -0,0 +1,89 @@
+((function asin
+   (signature float
+     (parameters
+       (declare (in) float x))
+     ((return (expression float *
+              (expression float -
+               (expression float *
+                (constant float (3.1415926))
+                (constant float (0.5)))
+               (expression float sqrt
+                (expression float -
+                 (constant float (1.0))
+                 (expression float abs (var_ref x)))))
+              (expression float +
+               (constant float (1.5707288))
+               (expression float *
+                (expression float abs (var_ref x))
+                (expression float +
+                 (constant float (-0.2121144))
+                 (expression float *
+                  (constant float (0.0742610))
+                  (expression float abs (var_ref x))))))))))
+
+   (signature float
+     (parameters
+       (declare (in) vec2 x))
+     ((return (expression vec2 *
+              (expression vec2 -
+               (expression vec2 *
+                (constant float (3.1415926))
+                (constant float (0.5)))
+               (expression vec2 sqrt
+                (expression vec2 -
+                 (constant float (1.0))
+                 (expression vec2 abs (var_ref x)))))
+              (expression vec2 +
+               (constant float (1.5707288))
+               (expression vec2 *
+                (expression vec2 abs (var_ref x))
+                (expression vec2 +
+                 (constant float (-0.2121144))
+                 (expression vec2 *
+                  (constant float (0.0742610))
+                  (expression vec2 abs (var_ref x))))))))))
+
+   (signature float
+     (parameters
+       (declare (in) vec3 x))
+     ((return (expression vec3 *
+              (expression vec3 -
+               (expression vec3 *
+                (constant float (3.1415926))
+                (constant float (0.5)))
+               (expression vec3 sqrt
+                (expression vec3 -
+                 (constant float (1.0))
+                 (expression vec3 abs (var_ref x)))))
+              (expression vec3 +
+               (constant float (1.5707288))
+               (expression vec3 *
+                (expression vec3 abs (var_ref x))
+                (expression vec3 +
+                 (constant float (-0.2121144))
+                 (expression vec3 *
+                  (constant float (0.0742610))
+                  (expression vec3 abs (var_ref x))))))))))
+
+   (signature float
+     (parameters
+       (declare (in) vec4 x))
+     ((return (expression vec4 *
+              (expression vec4 -
+               (expression vec4 *
+                (constant float (3.1415926))
+                (constant float (0.5)))
+               (expression vec4 sqrt
+                (expression vec4 -
+                 (constant float (1.0))
+                 (expression vec4 abs (var_ref x)))))
+              (expression vec4 +
+               (constant float (1.5707288))
+               (expression vec4 *
+                (expression vec4 abs (var_ref x))
+                (expression vec4 +
+                 (constant float (-0.2121144))
+                 (expression vec4 *
+                  (constant float (0.0742610))
+                  (expression vec4 abs (var_ref x))))))))))
+))