min / max / clamp

pub fn min(both: integer, b: integer) -> integer

@PLN25 F1b(b): each has a NON-NULL overload (`-> τ`) and a `τ?` overload (`-> τ?`). The call dispatch picks the `τ?` overload whenever ANY argument is STATICALLY nullable, so an explicit `integer?`/`single?`/`float?` argument — INCLUDING a division result (`1 / z`, now typed `τ?` under DN3) — gets a correctly-typed nullable RESULT and routes to the `τ?` body. The non-null bodies are therefore CLEAN (no `return null` guard): they only ever receive truly-non-null args, so they no longer rely on the STD_SOURCE (N-Store) exemption, which is now retired. The `τ?` overloads carry the propagation: null if either argument is null. Smallest of two integer values.

pub fn max(both: integer, b: integer) -> integer

Largest of two integer values.

pub fn clamp(both: integer, lo: integer, hi: integer) -> integer

Clamps v into the inclusive range [lo, hi]. Returns null if any argument is null.

pub fn min(both: single, b: single) -> single

Smallest of two single-precision float values.

pub fn max(both: single, b: single) -> single

Largest of two single-precision float values.

pub fn clamp(both: single, lo: single, hi: single) -> single

Clamps v into the inclusive range [lo, hi]. Returns null if any argument is null.

pub fn min(both: float, b: float) -> float

Smallest of two double-precision float values.

pub fn max(both: float, b: float) -> float

Largest of two double-precision float values.

pub fn clamp(both: float, lo: float, hi: float) -> float

Clamps v into the inclusive range [lo, hi]. Returns null if any argument is null.

pub fn approx(both: float, b: float, eps: float) -> boolean

Approximate equality: true when a and b differ by at most eps (inclusive). `==` on float/single is EXACT IEEE equality (@PLN102) — use `approx` when you want a tolerance, e.g. comparing computed transcendentals: `approx(sqrt(2.0) * sqrt(2.0), 2.0, 1e-9)`. A null (NaN) operand is not approximately equal to anything, so the result is false.

pub fn approx(both: single, b: single, eps: single) -> boolean

Approximate equality for single-precision floats (see the float overload).