Rational and binary-grid expression backends #
Backend.ofRounding combines the interval operations with any rational outward rounder.
Backend.rational keeps exact rational endpoints. Backend.binaryGrid uses integer arithmetic
for algebraic operations and rounds rational elementary-function bounds back onto its grid.
The elementary enclosures and their domain checks are shared by all endpoint backends.
BackendsProof proves the common Backend.Sound contract for all three backends.
Rational enclosures for elementary expression operations.
Arithmetic constructors return none; the backends dispatch them to their own arithmetic.
Logarithm requires a positive lower endpoint, and square root requires a nonnegative one.
Inverse sine and cosine require inputs in [-1, 1]; tangent requires a cosine enclosure
that excludes zero.
Instances For
Build an expression backend from a partial rational outward rounder.
Algebraic operations compute exact rational endpoint bounds before rounding. Elementary
operations first produce rational enclosures at the configured accuracy, then round outward.
Failed decoding, rejected domains, and unrepresentable output bounds propagate as none.
Instances For
Integer endpoints representing multiples of 2^(-config.precision).
Arithmetic, absolute value, powers, and endpoint comparisons stay in integer arithmetic. Elementary functions decode their input once and round the rational result bounds onto the same grid. The scale is supplied by this backend, so intervals from different grids must be converted before they are combined.
Instances For
Adapt an existing unary elementary enclosure to the extension interface.
Instances For
Inverse hyperbolic sine enclosure for registered evaluation.
Instances For
Inverse hyperbolic cosine enclosure for registered evaluation.
Instances For
Inverse hyperbolic tangent enclosure for registered evaluation.
Instances For
Real powers on positive bases for registered evaluation.
Instances For
Logarithms with a supplied positive base separated from one.