Implement 'acos' builtin.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 9 Jun 2010 20:52:32 +0000 (13:52 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 9 Jun 2010 20:52:32 +0000 (13:52 -0700)
This is tacked on to the end of the 'asin' file because acos calls asin,
whech means asin needs to be defined first.  Alphabetical order fail.

builtin_function.cpp
builtins/110/asin

index 754a721c7e7b7b572d1aeab9b3f696cff630de13..083fd314c75dec1b3f41c0548b64ebaa632ab9e7 100644 (file)
@@ -196,6 +196,29 @@ static const char *builtins_110_asin = {
    "                     (expression vec4 *\n"
    "                      (constant float (0.0742610))\n"
    "              (expression vec4 abs (var_ref x))))))))))\n"
+   ")\n"
+   "\n"
+   " (function acos\n"
+   "   (signature float\n"
+   "     (parameters\n"
+   "       (declare (in) float x))\n"
+   "     ((return (expression float - (constant float (1.5707963))\n"
+   "                                  (call asin ((var_ref x)))))))\n"
+   "   (signature vec2\n"
+   "     (parameters\n"
+   "       (declare (in) vec2 x))\n"
+   "     ((return (expression vec2 - (constant float (1.5707963))\n"
+   "                                 (call asin ((var_ref x)))))))\n"
+   "   (signature vec3\n"
+   "     (parameters\n"
+   "       (declare (in) vec3 x))\n"
+   "     ((return (expression vec3 - (constant float (1.5707963))\n"
+   "                                 (call asin ((var_ref x)))))))\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) vec4 x))\n"
+   "     ((return (expression vec4 - (constant float (1.5707963))\n"
+   "                                 (call asin ((var_ref x)))))))\n"
    "))\n"
 };
 
index 0c913b6ae7c0412965681d1e462cb81da612d50c..5e1d16719fc266cd430dde1f392093b088614e02 100644 (file)
                  (expression vec4 *
                   (constant float (0.0742610))
                   (expression vec4 abs (var_ref x))))))))))
+)
+
+ (function acos
+   (signature float
+     (parameters
+       (declare (in) float x))
+     ((return (expression float - (constant float (1.5707963))
+                                  (call asin ((var_ref x)))))))
+   (signature vec2
+     (parameters
+       (declare (in) vec2 x))
+     ((return (expression vec2 - (constant float (1.5707963))
+                                 (call asin ((var_ref x)))))))
+   (signature vec3
+     (parameters
+       (declare (in) vec3 x))
+     ((return (expression vec3 - (constant float (1.5707963))
+                                 (call asin ((var_ref x)))))))
+   (signature vec4
+     (parameters
+       (declare (in) vec4 x))
+     ((return (expression vec4 - (constant float (1.5707963))
+                                 (call asin ((var_ref x)))))))
 ))