#pragma once

#include <cstdint>

static inline float bellCurveApproximation(float x, float inverseWidth)
{
  if (x < 0)
    x = -x;

  const auto nx = x * inverseWidth * 4;
  if (nx > 2)
    return 0.0f;

  const auto x2 = nx * nx;
  const auto x3 = x2 * nx;
  const auto res = 1.0f + 0.27606958941084f * x3 - 0.80213917882168f * x2;

  return res < 0.0f ? 0.0f : res;
}