NN.MLTheory.CROWN.Operators.Arithmetic #
IBP and affine transfer rules for arithmetic primitives (negation, absolute value, reciprocal, square root, powers, min/max) used by the CROWN bound propagation engine.
Negation #
Negation, $f(x)=-x$, is the simplest linear operation.
Instances For
IBP for negation. Just swaps and negates bounds.
Instances For
IBP for negation on boxes.
Instances For
Derivative of negation (constant -1).
Instances For
Absolute Value #
Absolute value: $f(x)=|x|$.
Instances For
Interval propagation rule for scalar absolute value over [l,u].
Instances For
Apply the scalar absolute-value interval rule coordinatewise to a vector box.
Instances For
Affine lower and upper bounds for absolute value on an ordered interval [l, u].
On an interval crossing zero, the lower bound is the zero line and the upper bound is the secant
through (l, -l) and (u, u). The degenerate interval [0, 0] is represented by the zero line.
Instances For
Reciprocal #
Reciprocal: $f(x)=1/x$.
Instances For
IBP for reciprocal on boxes, defined only when every coordinate interval excludes zero.
Instances For
Power #
Helper for positive integer power.
Instances For
Integer power: $f(x)=x^n$.
Instances For
IBP for x².
Instances For
IBP for x² on boxes.
Instances For
Min/Max #
Elementwise minimum of two boxes.
Instances For
Elementwise maximum of two boxes.
Instances For
Clamp one scalar with the same composition used by Spec.clampSpec:
min clamp_hi (max clamp_lo x).
In particular, when clamp_lo > clamp_hi, the result is clamp_hi. This agrees with PyTorch's
documented behavior instead of silently switching the two bounds.
Instances For
Clamp operation: clamp(x, lo, hi) = min(hi, max(lo, x)).
Instances For
Interval propagation for clamp, applied coordinatewise to a vector box.