((function faceforward (signature float (parameters (declare (in) float N) (declare (in) float I) (declare (in) float Nref)) ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) ((return (var_ref N))) ((return (expression float neg (var_ref N))))))) (signature vec2 (parameters (declare (in) vec2 N) (declare (in) vec2 I) (declare (in) vec2 Nref)) ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) ((return (var_ref N))) ((return (expression vec2 neg (var_ref N))))))) (signature vec3 (parameters (declare (in) vec3 N) (declare (in) vec3 I) (declare (in) vec3 Nref)) ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) ((return (var_ref N))) ((return (expression vec3 neg (var_ref N))))))) (signature vec4 (parameters (declare (in) vec4 N) (declare (in) vec4 I) (declare (in) vec4 Nref)) ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0))) ((return (var_ref N))) ((return (expression vec4 neg (var_ref N))))))) ))