((function tanh
   (signature float
     (parameters
       (declare (in) float x))
     ((return (expression float /
                (expression float -
		  (expression float exp (var_ref x))
		  (expression float exp (expression float neg (var_ref x))))
                (expression float +
		  (expression float exp (var_ref x))
		  (expression float exp (expression float neg (var_ref x))))))))
   (signature vec2
     (parameters
       (declare (in) vec2 x))
     ((return (expression vec2 /
                (expression vec2 -
		  (expression vec2 exp (var_ref x))
		  (expression vec2 exp (expression vec2 neg (var_ref x))))
                (expression vec2 +
		  (expression vec2 exp (var_ref x))
		  (expression vec2 exp (expression vec2 neg (var_ref x))))))))
   (signature vec3
     (parameters
       (declare (in) vec3 x))
     ((return (expression vec3 /
                (expression vec3 -
		  (expression vec3 exp (var_ref x))
		  (expression vec3 exp (expression vec3 neg (var_ref x))))
                (expression vec3 +
		  (expression vec3 exp (var_ref x))
		  (expression vec3 exp (expression vec3 neg (var_ref x))))))))
   (signature vec4
     (parameters
       (declare (in) vec4 x))
     ((return (expression vec4 /
                (expression vec4 -
		  (expression vec4 exp (var_ref x))
		  (expression vec4 exp (expression vec4 neg (var_ref x))))
                (expression vec4 +
		  (expression vec4 exp (var_ref x))
		  (expression vec4 exp (expression vec4 neg (var_ref x))))))))
))
