1((function noise3
2  (signature vec3
3    (parameters (declare (in) vec4 p))
4    (
5      (declare () float a)
6      (declare () float b)
7      (declare () float c)
8      (declare () vec3 t)
9
10      (assign (x) (var_ref a) (expression float noise (var_ref p)))
11      (assign (x) (var_ref b) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))
12      (assign (x) (var_ref c) (expression float noise (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0)))))
13
14      (assign (x) (var_ref t) (var_ref a))
15      (assign (y) (var_ref t) (var_ref b))
16      (assign (z) (var_ref t) (var_ref c))
17      (return (var_ref t))
18    ))
19
20  (signature vec3
21    (parameters (declare (in) vec3 p))
22    (
23      (declare () float a)
24      (declare () float b)
25      (declare () float c)
26      (declare () vec3 t)
27
28      (assign (x) (var_ref a) (expression float noise (var_ref p)))
29      (assign (x) (var_ref b) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))
30      (assign (x) (var_ref c) (expression float noise (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0)))))
31
32      (assign (x) (var_ref t) (var_ref a))
33      (assign (y) (var_ref t) (var_ref b))
34      (assign (z) (var_ref t) (var_ref c))
35      (return (var_ref t))
36    ))
37
38  (signature vec3
39    (parameters (declare (in) vec2 p))
40    (
41      (declare () float a)
42      (declare () float b)
43      (declare () float c)
44      (declare () vec3 t)
45
46      (assign (x) (var_ref a) (expression float noise (var_ref p)))
47      (assign (x) (var_ref b) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))
48      (assign (x) (var_ref c) (expression float noise (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0)))))
49
50      (assign (x) (var_ref t) (var_ref a))
51      (assign (y) (var_ref t) (var_ref b))
52      (assign (z) (var_ref t) (var_ref c))
53      (return (var_ref t))
54    ))
55
56  (signature vec3
57    (parameters (declare (in) float p))
58    (
59      (declare () float a)
60      (declare () float b)
61      (declare () float c)
62      (declare () vec3 t)
63
64      (assign (x) (var_ref a) (expression float noise (var_ref p)))
65      (assign (x) (var_ref b) (expression float noise (expression float + (var_ref p) (constant float (601.0)))))
66      (assign (x) (var_ref c) (expression float noise (expression float + (var_ref p) (constant float (1559.0)))))
67
68      (assign (x) (var_ref t) (var_ref a))
69      (assign (y) (var_ref t) (var_ref b))
70      (assign (z) (var_ref t) (var_ref c))
71      (return (var_ref t))
72    ))
73))
74