boundlab.zono.linearizers.Exp#
- class boundlab.zono.linearizers.Exp[source]#
Bases:
OpHandlerChord-slope enclosure of \(e^x\).
With the chord slope \(\lambda = (e^u - e^l)/(u - l)\) (mean value: \(\lambda = e^\xi\) for some interior \(\xi\)), convexity puts the residual’s maximum at the endpoints — where the chord touches, value \(U = e^u - \lambda u\) — and its minimum at the tangency point \(x^* = \log\lambda\), value \(L = \lambda(1 - \log\lambda)\). Centering yields \(\mu = (U + L)/2\), \(\beta = (U - L)/2\). Near-degenerate intervals switch to the midpoint derivative, and any non-finite element falls back to the sound interval enclosure \(e^u/2 \pm e^u/2 \supseteq [0, e^u]\).
Methods
Whether this handler applies to these operands (default: always).
Transform the operands; sub-operations go through
interp.<op>so the enclosing domain's handlers apply to them too.A copy of this handler that takes precedence over
otherwhen both are ready for the same call.- __call__(l, u, x=None)#
Call self as a function.
- __init__(op='exp', apply_bound=<function linearizer_fn.<locals>.decorator.<locals>.LinearizerHandler.<lambda>>)#
- apply_bound(x)#
- condition(x, **kwargs)#
Whether this handler applies to these operands (default: always).
- handle(interp, x, **kwargs)#
Transform the operands; sub-operations go through
interp.<op>so the enclosing domain’s handlers apply to them too.
- override_handler(other)#
A copy of this handler that takes precedence over
otherwhen both are ready for the same call.