forked from Snider/Poindexter
Centralizes common math operations used across core/go-ai, core/go, and core/mining into Poindexter as the math pillar (alongside Borg=data, Enchantrix=encryption). New modules: - stats: Sum, Mean, Variance, StdDev, MinMax, IsUnderrepresented - scale: Lerp, InverseLerp, Remap, RoundToN, Clamp, MinMaxScale - epsilon: ApproxEqual, ApproxZero - score: WeightedScore, Ratio, Delta, DeltaPercent - signal: RampUp, SineWave, Oscillate, Noise (seeded RNG) 235 LOC implementation, 509 LOC tests, zero external deps, WASM-safe. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
14 lines
364 B
Go
14 lines
364 B
Go
package poindexter
|
|
|
|
import "math"
|
|
|
|
// ApproxEqual returns true if the absolute difference between a and b
|
|
// is less than epsilon.
|
|
func ApproxEqual(a, b, epsilon float64) bool {
|
|
return math.Abs(a-b) < epsilon
|
|
}
|
|
|
|
// ApproxZero returns true if the absolute value of v is less than epsilon.
|
|
func ApproxZero(v, epsilon float64) bool {
|
|
return math.Abs(v) < epsilon
|
|
}
|