// Copyright 2023 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#define M_PI 3.14159265
#define M_INVPI 0.31830989

float hash_1d(float v) {
  float u = 50.0 * sin(v * 3000.0);
  return 2.0 * fract(2.0 * u * u) - 1.0;
}

float hash_2d(vec2 pos) {
  vec2 uv = 50.0 * fract(pos * M_INVPI);
  return 2.0 * fract(uv.x * uv.y * (uv.x + uv.y)) - 1.0;
}