((function normalize
   (signature float
     (parameters
       (declare (in) float arg0))
     ((return (expression float sign (var_ref arg0)))))

   (signature vec2
     (parameters
       (declare (in) vec2 arg0))
     ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))

   (signature vec3
     (parameters
       (declare (in) vec3 arg0))
     ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))

   (signature vec4
     (parameters
       (declare (in) vec4 arg0))
     ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))
))
