1 ((function outerProduct 2 (signature mat2 3 (parameters 4 (declare (in) vec2 u) 5 (declare (in) vec2 v)) 6 ((declare () mat2 m) 7 (assign (constant bool (1)) (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v)))) 8 (assign (constant bool (1)) (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 (constant bool (1)) (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v)))) 17 (assign (constant bool (1)) (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 (constant bool (1)) (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v)))) 26 (assign (constant bool (1)) (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 (constant bool (1)) (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v)))) 35 (assign (constant bool (1)) (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v)))) 36 (assign (constant bool (1)) (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 (constant bool (1)) (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v)))) 46 (assign (constant bool (1)) (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v)))) 47 (assign (constant bool (1)) (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 (constant bool (1)) (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v)))) 56 (assign (constant bool (1)) (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v)))) 57 (assign (constant bool (1)) (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 (constant bool (1)) (xy) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v)))) 66 (assign (constant bool (1)) (xy) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v)))) 67 (assign (constant bool (1)) (xy) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v)))) 68 (assign (constant bool (1)) (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 (constant bool (1)) (xyz) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v)))) 77 (assign (constant bool (1)) (xyz) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v)))) 78 (assign (constant bool (1)) (xyz) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v)))) 79 (assign (constant bool (1)) (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 (constant bool (1)) (xyzw) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v)))) 88 (assign (constant bool (1)) (xyzw) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v)))) 89 (assign (constant bool (1)) (xyzw) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v)))) 90 (assign (constant bool (1)) (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