1 ((function outerProduct 2 (signature mat2 3 (parameters 4 (declare (in) vec2 u) 5 (declare (in) vec2 v)) 6 ((declare () mat2 m) 7 (assign (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v)))) 8 (assign (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v)))) 9 (return (var_ref m)))) 10 11 (signature mat2x3 12 (parameters 13 (declare (in) vec3 u) 14 (declare (in) vec2 v)) 15 ((declare () mat2x3 m) 16 (assign (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v)))) 17 (assign (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v)))) 18 (return (var_ref m)))) 19 20 (signature mat2x4 21 (parameters 22 (declare (in) vec4 u) 23 (declare (in) vec2 v)) 24 ((declare () mat2x4 m) 25 (assign (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v)))) 26 (assign (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v)))) 27 (return (var_ref m)))) 28 29 (signature mat3x2 30 (parameters 31 (declare (in) vec2 u) 32 (declare (in) vec3 v)) 33 ((declare () mat3x2 m) 34 (assign (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v)))) 35 (assign (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v)))) 36 (assign (xy) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v)))) 37 (return (var_ref m)) 38 )) 39 40 (signature mat3 41 (parameters 42 (declare (in) vec3 u) 43 (declare (in) vec3 v)) 44 ((declare () mat3 m) 45 (assign (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v)))) 46 (assign (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v)))) 47 (assign (xyz) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v)))) 48 (return (var_ref m)))) 49 50 (signature mat3x4 51 (parameters 52 (declare (in) vec4 u) 53 (declare (in) vec3 v)) 54 ((declare () mat3x4 m) 55 (assign (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v)))) 56 (assign (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v)))) 57 (assign (xyzw) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v)))) 58 (return (var_ref m)))) 59 60 (signature mat4x2 61 (parameters 62 (declare (in) vec2 u) 63 (declare (in) vec4 v)) 64 ((declare () mat4x2 m) 65 (assign (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v)))) 66 (assign (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v)))) 67 (assign (xy) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v)))) 68 (assign (xy) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref u) (swiz w (var_ref v)))) 69 (return (var_ref m)))) 70 71 (signature mat4x3 72 (parameters 73 (declare (in) vec3 u) 74 (declare (in) vec4 v)) 75 ((declare () mat4x3 m) 76 (assign (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v)))) 77 (assign (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v)))) 78 (assign (xyz) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v)))) 79 (assign (xyz) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref u) (swiz w (var_ref v)))) 80 (return (var_ref m)))) 81 82 (signature mat4 83 (parameters 84 (declare (in) vec4 u) 85 (declare (in) vec4 v)) 86 ((declare () mat4 m) 87 (assign (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v)))) 88 (assign (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v)))) 89 (assign (xyzw) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v)))) 90 (assign (xyzw) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref u) (swiz w (var_ref v)))) 91 (return (var_ref m)))) 92 )) 93