((function noise4
  (signature vec4
    (parameters (declare (in) vec4 p))
    (
      (declare () float _x)
      (declare () float _y)
      (declare () float _z)
      (declare () float _w)
      (declare () vec4 _r)

      (declare () vec4 _p)
      (assign (xyzw) (var_ref _p) (expression vec4 + (var_ref p) (constant vec4 (1559.0 113.0 1861.0 797.0))) )

      (assign (x) (var_ref _x) (expression float noise(var_ref p)))
      (assign (x) (var_ref _y) (expression float noise(expression vec4 + (var_ref p) (constant vec4 (601.0 313.0 29.0 277.0)))))
      (assign (x) (var_ref _z) (expression float noise(var_ref _p)))
      (assign (x) (var_ref _w) (expression float noise(expression vec4 + (var_ref _p) (constant vec4 (601.0 313.0 29.0 277.0)))))

      (assign (x) (var_ref _r) (var_ref _x))
      (assign (y) (var_ref _r) (var_ref _y))
      (assign (z) (var_ref _r) (var_ref _z))
      (assign (w) (var_ref _r) (var_ref _w))
      (return (var_ref _r))
    ))

  (signature vec4
    (parameters (declare (in) vec3 p))
    (
      (declare () float _x)
      (declare () float _y)
      (declare () float _z)
      (declare () float _w)
      (declare () vec4 _r)

      (declare () vec3 _p)
      (assign (xyz) (var_ref _p) (expression vec3 + (var_ref p) (constant vec3 (1559.0 113.0 1861.0))) )

      (assign (x) (var_ref _x) (expression float noise(var_ref p)))
      (assign (x) (var_ref _y) (expression float noise(expression vec3 + (var_ref p) (constant vec3 (601.0 313.0 29.0)))))
      (assign (x) (var_ref _z) (expression float noise(var_ref _p)))
      (assign (x) (var_ref _w) (expression float noise(expression vec3 + (var_ref _p) (constant vec3 (601.0 313.0 29.0)))))

      (assign (x) (var_ref _r) (var_ref _x))
      (assign (y) (var_ref _r) (var_ref _y))
      (assign (z) (var_ref _r) (var_ref _z))
      (assign (w) (var_ref _r) (var_ref _w))
      (return (var_ref _r))
    ))

  (signature vec4
    (parameters (declare (in) vec2 p))
    (
      (declare () float _x)
      (declare () float _y)
      (declare () float _z)
      (declare () float _w)
      (declare () vec4 _r)

      (declare () vec2 _p)
      (assign (xy) (var_ref _p) (expression vec2 + (var_ref p) (constant vec2 (1559.0 113.0))) )

      (assign (x) (var_ref _x) (expression float noise(var_ref p)))
      (assign (x) (var_ref _y) (expression float noise(expression vec2 + (var_ref p) (constant vec2 (601.0 313.0)))))
      (assign (x) (var_ref _z) (expression float noise(var_ref _p)))
      (assign (x) (var_ref _w) (expression float noise(expression vec2 + (var_ref _p) (constant vec2 (601.0 313.0)))))

      (assign (x) (var_ref _r) (var_ref _x))
      (assign (y) (var_ref _r) (var_ref _y))
      (assign (z) (var_ref _r) (var_ref _z))
      (assign (w) (var_ref _r) (var_ref _w))
      (return (var_ref _r))
    ))

  (signature vec4
    (parameters (declare (in) float p))
    (
      (declare () float _x)
      (declare () float _y)
      (declare () float _z)
      (declare () float _w)
      (declare () vec4 _r)

      (declare () float _p)
      (assign (x) (var_ref _p) (expression float + (var_ref p) (constant float (1559.0))) )

      (assign (x) (var_ref _x) (expression float noise(var_ref p)))
      (assign (x) (var_ref _y) (expression float noise(expression float + (var_ref p) (constant float (601.0 313.0 29.0 277.0)))))
      (assign (x) (var_ref _z) (expression float noise(var_ref _p)))
      (assign (x) (var_ref _w) (expression float noise(expression float + (var_ref _p) (constant float (601.0 313.0 29.0 277.0)))))

      (assign (x) (var_ref _r) (var_ref _x))
      (assign (y) (var_ref _r) (var_ref _y))
      (assign (z) (var_ref _r) (var_ref _z))
      (assign (w) (var_ref _r) (var_ref _w))
      (return (var_ref _r))
    ))
))
