44 inline constexpr void Add(T x)
noexcept
47 const T delta = x -
Mean;
49 const T delta2 = x -
Mean;
58 inline constexpr T
GetSNR() const noexcept
63 const T variance = (
M2 / (
Count - 1));
72 const T variance = (
M2 / (
Count - 1));
77 static inline constexpr T
ComputeFor(std::span<const T> values)
noexcept
79 const auto count =
static_cast<uint32_t
>(values.size());
87 const T mean = sum / count;
91 sumSq += (v - mean) * (v - mean);
93 return sumSq / (count - 1);
96 static inline constexpr T
ComputeSNRFor(std::span<const T> values)
noexcept
98 const auto count =
static_cast<uint32_t
>(values.size());
106 const T mean = sum / count;
110 sumSq += (v - mean) * (v - mean);
112 const T variance = sumSq / (count - 1);
114 return variance == T(0) ? T(1) : mean /
Math::Sqrt(variance);
Variance estimation utility.
Definition Variance.h:35
static constexpr T ComputeSNRFor(std::span< const T > values) noexcept
Definition Variance.h:96
static constexpr T ComputeFor(std::span< const T > values) noexcept
Definition Variance.h:77
JPL_INLINE constexpr T Sqrt(T x) noexcept
Definition Math.h:269
Definition AcousticMaterial.h:36
typename Variance< float >::Online OnlineVariance
Definition Variance.h:118
typename Variance< simd >::Online OnlineVarianceSIMD
Definition Variance.h:119
T Mean
Definition Variance.h:41
T M2
Definition Variance.h:42
constexpr void Add(T x) noexcept
Definition Variance.h:44
constexpr T GetSNR_r0() const noexcept
Definition Variance.h:67
constexpr T GetSNR() const noexcept
Definition Variance.h:58
uint32_t Count
Definition Variance.h:40
constexpr T GetVariance() const noexcept
Definition Variance.h:53