μMath
Set of practical math utils to shorten code.
var round = require('mumath/round');
round(123.32, .5); //123.5
//require any function as
//var <fn> = require('mumath/<fn>');
API
round(value, step?)
Rounds value to optional step
.
round(0.3, .5)
→ .5
len(a, b)
Return length of a vector.
precision(value)
Get precision from float:
1.1 → 1, 1234 → 0, .1234 → 4
clamp(value, left, right)
Return value clamped by left/right limits (or vice-versa).
lerp(x, y, ratio)
Return value interpolated between x and y.
within(value, left, right)
Whether element is between left & right, including.
mod(value, min?, max)
An enhanced mod-loop — loops value within a frame.
closest(value, list)
Get closest value out of a set.
scale(value, list)
Get first scale out of a list of basic scales, aligned to the power. E. g.
step(.37, [1, 2, 5])
→ .5
step(456, [1, 2])
→ 1000
Similar to closest, but takes all possible powers of scales.
order(value)
Get order of magnitude for a number.
order(123) → 100; order(-0.0003) → 0.0001;
isMultiple(a, b, eps?)
Same as a % b === 0
, but with precision check.
Related
- bit-twiddle — utils for power-of-two numbers.
- pretty-number — format number to pretty view.