((function atan (signature float (parameters (declare (in) float y_over_x)) ((declare () float s) (call asin (var_ref s) ((expression float * (var_ref y_over_x) (expression float rsq (expression float + (expression float * (var_ref y_over_x) (var_ref y_over_x)) (constant float (1.0))))))) (return (var_ref s)))) (signature vec2 (parameters (declare (in) vec2 y_over_x)) ((declare () vec2 s) (call asin (var_ref s) ((expression vec2 * (var_ref y_over_x) (expression vec2 rsq (expression vec2 + (expression vec2 * (var_ref y_over_x) (var_ref y_over_x)) (constant float (1.0))))))) (return (var_ref s)))) (signature vec3 (parameters (declare (in) vec3 y_over_x)) ((declare () vec3 s) (call asin (var_ref s) ((expression vec3 * (var_ref y_over_x) (expression vec3 rsq (expression vec3 + (expression vec3 * (var_ref y_over_x) (var_ref y_over_x)) (constant float (1.0))))))) (return (var_ref s)))) (signature vec4 (parameters (declare (in) vec4 y_over_x)) ((declare () vec4 s) (call asin (var_ref s) ((expression vec4 * (var_ref y_over_x) (expression vec4 rsq (expression vec4 + (expression vec4 * (var_ref y_over_x) (var_ref y_over_x)) (constant float (1.0))))))) (return (var_ref s)))) (signature float (parameters (declare (in ) float y) (declare (in ) float x) ) ( (declare () float r) (if (expression bool > (expression float abs (var_ref x)) (expression float * (constant float (1.0e-8)) (expression float abs (var_ref y)))) ( (call atan (var_ref r) ((expression float / (var_ref y) (var_ref x)))) (if (expression bool < (var_ref x) (constant float (0.000000)) ) ( (if (expression bool >= (var_ref y) (constant float (0.000000)) ) ((assign (x) (var_ref r) (expression float + (var_ref r) (constant float (3.141593))))) ((assign (x) (var_ref r) (expression float - (var_ref r) (constant float (3.141593)))))) ) ( )) ) ( (declare () float sgn) (assign (x) (var_ref sgn) (expression float sign (var_ref y))) (assign (x) (var_ref r) (expression float * (var_ref sgn) (constant float (1.5707965)))) )) (return (var_ref r) ) )) (signature vec2 (parameters (declare (in) vec2 y) (declare (in) vec2 x)) ((declare () vec2 r) (declare () float temp) (call atan (var_ref temp) ((swiz x (var_ref y)) (swiz x (var_ref x)))) (assign (x) (var_ref r) (var_ref temp)) (call atan (var_ref temp) ((swiz y (var_ref y)) (swiz y (var_ref x)))) (assign (y) (var_ref r) (var_ref temp)) (return (var_ref r)))) (signature vec3 (parameters (declare (in) vec3 y) (declare (in) vec3 x)) ((declare () vec3 r) (declare () float temp) (call atan (var_ref temp) ((swiz x (var_ref y)) (swiz x (var_ref x)))) (assign (x) (var_ref r) (var_ref temp)) (call atan (var_ref temp) ((swiz y (var_ref y)) (swiz y (var_ref x)))) (assign (y) (var_ref r) (var_ref temp)) (call atan (var_ref temp) ((swiz z (var_ref y)) (swiz z (var_ref x)))) (assign (z) (var_ref r) (var_ref temp)) (return (var_ref r)))) (signature vec4 (parameters (declare (in) vec4 y) (declare (in) vec4 x)) ((declare () vec4 r) (declare () float temp) (call atan (var_ref temp) ((swiz x (var_ref y)) (swiz x (var_ref x)))) (assign (x) (var_ref r) (var_ref temp)) (call atan (var_ref temp) ((swiz y (var_ref y)) (swiz y (var_ref x)))) (assign (y) (var_ref r) (var_ref temp)) (call atan (var_ref temp) ((swiz z (var_ref y)) (swiz z (var_ref x)))) (assign (z) (var_ref r) (var_ref temp)) (call atan (var_ref temp) ((swiz w (var_ref y)) (swiz w (var_ref x)))) (assign (w) (var_ref r) (var_ref temp)) (return (var_ref r)))) ))