1((function mix
2   (signature float
3     (parameters
4       (declare (in) float arg0)
5       (declare (in) float arg1)
6       (declare (in) float arg2))
7     ((return (expression float + (expression float * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression float * (var_ref arg1) (var_ref arg2))))))
8
9   (signature vec2
10     (parameters
11       (declare (in) vec2 arg0)
12       (declare (in) vec2 arg1)
13       (declare (in) vec2 arg2))
14     ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))
15
16   (signature vec3
17     (parameters
18       (declare (in) vec3 arg0)
19       (declare (in) vec3 arg1)
20       (declare (in) vec3 arg2))
21     ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))
22
23   (signature vec4
24     (parameters
25       (declare (in) vec4 arg0)
26       (declare (in) vec4 arg1)
27       (declare (in) vec4 arg2))
28     ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))
29
30   (signature vec2
31     (parameters
32       (declare (in) vec2 arg0)
33       (declare (in) vec2 arg1)
34       (declare (in) float arg2))
35     ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))
36
37   (signature vec3
38     (parameters
39       (declare (in) vec3 arg0)
40       (declare (in) vec3 arg1)
41       (declare (in) float arg2))
42     ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))
43
44   (signature vec4
45     (parameters
46       (declare (in) vec4 arg0)
47       (declare (in) vec4 arg1)
48       (declare (in) float arg2))
49     ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))
50
51   (signature float
52     (parameters
53       (declare (in) float v1)
54       (declare (in) float v2)
55       (declare (in) bool  a))
56     ((assign (var_ref a) (x) (var_ref v1) (var_ref v2))
57      (return (var_ref v1))))
58
59   (signature vec2
60     (parameters
61       (declare (in) vec2 v1)
62       (declare (in) vec2 v2)
63       (declare (in) bvec2 a))
64     ((assign (swiz x (var_ref a)) (x) (var_ref v1) (swiz x (var_ref v2)))
65      (assign (swiz y (var_ref a)) (y) (var_ref v1) (swiz y (var_ref v2)))
66      (return (var_ref v1))))
67
68   (signature vec3
69     (parameters
70       (declare (in) vec3 v1)
71       (declare (in) vec3 v2)
72       (declare (in) bvec3 a))
73     ((assign (swiz x (var_ref a)) (x) (var_ref v1) (swiz x (var_ref v2)))
74      (assign (swiz y (var_ref a)) (y) (var_ref v1) (swiz y (var_ref v2)))
75      (assign (swiz z (var_ref a)) (z) (var_ref v1) (swiz z (var_ref v2)))
76      (return (var_ref v1))))
77
78   (signature vec4
79     (parameters
80       (declare (in) vec4 v1)
81       (declare (in) vec4 v2)
82       (declare (in) bvec4 a))
83     ((assign (swiz x (var_ref a)) (x) (var_ref v1) (swiz x (var_ref v2)))
84      (assign (swiz y (var_ref a)) (y) (var_ref v1) (swiz y (var_ref v2)))
85      (assign (swiz z (var_ref a)) (z) (var_ref v1) (swiz z (var_ref v2)))
86      (assign (swiz w (var_ref a)) (w) (var_ref v1) (swiz w (var_ref v2)))
87      (return (var_ref v1))))
88))
89