summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtins/110/cos21
-rw-r--r--builtins/110/sin21
-rw-r--r--ir.cpp5
-rw-r--r--ir.h8
4 files changed, 55 insertions, 0 deletions
diff --git a/builtins/110/cos b/builtins/110/cos
new file mode 100644
index 0000000000..88f266eccb
--- /dev/null
+++ b/builtins/110/cos
@@ -0,0 +1,21 @@
+((function cos
+ (signature float
+ (parameters
+ (declare (in) float angle))
+ ((return (expression float cos (var_ref angle)))))
+
+ (signature vec2
+ (parameters
+ (declare (in) vec2 angle))
+ ((return (expression vec2 cos (var_ref angle)))))
+
+ (signature vec3
+ (parameters
+ (declare (in) vec3 angle))
+ ((return (expression vec3 cos (var_ref angle)))))
+
+ (signature vec4
+ (parameters
+ (declare (in) vec4 angle))
+ ((return (expression vec4 cos (var_ref angle)))))
+))
diff --git a/builtins/110/sin b/builtins/110/sin
new file mode 100644
index 0000000000..e6009d8ef1
--- /dev/null
+++ b/builtins/110/sin
@@ -0,0 +1,21 @@
+((function sin
+ (signature float
+ (parameters
+ (declare (in) float angle))
+ ((return (expression float sin (var_ref angle)))))
+
+ (signature vec2
+ (parameters
+ (declare (in) vec2 angle))
+ ((return (expression vec2 sin (var_ref angle)))))
+
+ (signature vec3
+ (parameters
+ (declare (in) vec3 angle))
+ ((return (expression vec3 sin (var_ref angle)))))
+
+ (signature vec4
+ (parameters
+ (declare (in) vec4 angle))
+ ((return (expression vec4 sin (var_ref angle)))))
+))
diff --git a/ir.cpp b/ir.cpp
index b927c73ccb..eb12b5fe77 100644
--- a/ir.cpp
+++ b/ir.cpp
@@ -73,6 +73,9 @@ ir_expression::get_num_operands(ir_expression_operation op)
1, /* ir_unop_ceil */
1, /* ir_unop_floor */
+ 1, /* ir_unop_sin */
+ 1, /* ir_unop_cos */
+
2, /* ir_binop_add */
2, /* ir_binop_sub */
2, /* ir_binop_mul */
@@ -131,6 +134,8 @@ static const char *const operator_strs[] = {
"trunc",
"ceil",
"floor",
+ "sin",
+ "cos",
"+",
"-",
"*",
diff --git a/ir.h b/ir.h
index 55a67733fe..df9a8c4174 100644
--- a/ir.h
+++ b/ir.h
@@ -449,6 +449,14 @@ enum ir_expression_operation {
ir_unop_floor,
/*@}*/
+ /**
+ * \name Trigonometric operations.
+ */
+ /*@{*/
+ ir_unop_sin,
+ ir_unop_cos,
+ /*@}*/
+
ir_binop_add,
ir_binop_sub,
ir_binop_mul,