ScaleApprox #
Scale-aware approximation helpers.
This module adds an optional layer that tracks a per-tensor "scale bound" (a nonnegative bound
on linf_norm) alongside the existing eps error bounds.
It is designed to be used to derive readable abs+rel tolerances from existing eps-style proofs:
given an error budget eps and a scale bound B, we can form an ApproxTol whose rel component
is computed from (eps / B) (with safe handling of B = 0).
Nothing here changes existing forward/backward frameworks; it only provides new predicates and lemmas you can opt into.
PyTorch correspondence / citations #
This is the proof-oriented analogue of reasoning with a magnitude/scale estimate (e.g. ‖x‖∞ ≤ B)
to turn an absolute error budget into an rtol-style relative tolerance.
https://pytorch.org/docs/stable/generated/torch.allclose.html
Nonnegative scale bounds aligned with a context shape list.
- nil : BList []
- cons {s : Spec.Shape} {ss : List Spec.Shape} : NNReal → BList ss → BList (s :: ss)
Instances For
Transport a BList along an equality of the underlying shape lists.
Instances For
Append one additional scale bound at the end of a BList.
Instances For
Split a BList (ss ++ [τ]) into its prefix and the last bound.
Instances For
A scale bound says both spec and runtime (mapped to spec) norms are bounded by B.
Instances For
Default scale predicate on tensors (uses linf_norm).
Instances For
Context-level scale predicate aligned with a BList.
Instances For
A derived tolerance from an absolute error eps and a scale bound B.
We always keep the absolute component (abs = eps) for safety. The relative component is
computed as eps / B (with a B = 0 guard) and then clamped to be nonnegative via toNNReal
inside ApproxTol.ofReal.