babylon.utils.math

Mathematical utilities for simulation precision.

Gatekeeper Pattern: Quantization at TYPE level (Pydantic validators), not inside formulas. All values snap to 10^-6 grid (default).

Uses ROUND_HALF_UP (symmetric rounding - ties away from zero).

Note: Increased from 5 to 6 decimal places for 100-year (5200 tick) Carceral Equilibrium simulations to reduce cumulative rounding errors.

Functions

get_precision()

Current decimal places for quantization (default 6).

quantize(value)

Snap float to precision grid (ROUND_HALF_UP).

set_precision(decimal_places)

Set quantization precision (1-10 decimal places).

babylon.utils.math.get_precision()[source]

Current decimal places for quantization (default 6).

Return type:

int

babylon.utils.math.set_precision(decimal_places)[source]

Set quantization precision (1-10 decimal places).

Parameters:

decimal_places (int) – 1=coarse (0.1), 6=default (0.000001), 10=ultra.

Raises:

ValueError – If not in range [1, 10].

Return type:

None

babylon.utils.math.quantize(value)[source]

Snap float to precision grid (ROUND_HALF_UP).

Parameters:

value (float) – Float to quantize (None treated as 0.0).

Return type:

float

Returns:

Value on 10^-precision grid.

Examples

>>> quantize(0.123456789)
0.123457
>>> quantize(-0.123456789)
-0.123457