|
| :: String | indentification of caller location for easier debugging
| | -> ufb | | | -> ufb | | | Check internal consistency of the function and report problem if any.
|
|
|
|
|
|
|
|
|
|
| Construct a constant function.
|
|
|
| :: b | value at 0
| | -> Map varid b | ascent of each base vector
| | -> ufb | | | Construct an affine function.
|
|
|
| scale :: b -> ufb -> (ufb, ufb) | Source |
|
| Multiply a function by a scalar,
rounding downwards and upwards.
|
|
| scaleApprox :: ra -> ufb -> (ufb, ufb) | Source |
|
| Multiply a function by an approximation of a scalar,
rounding downwards and upwards.
|
|
| scaleApproxDown :: ra -> ufb -> ufb | Source |
|
| Multiply a function by an approximation of a scalar,
rounding downwards.
|
|
| scaleApproxUp :: ra -> ufb -> ufb | Source |
|
| Multiply a function by an approximation of a scalar,
rounding upwards.
|
|
|
Get the degree of this particular function.
If the function is a polynomial, this function should
return its degree.
|
|
| reduceDegree :: Int -> ufb -> (ufb, ufb) | Source |
|
| Decrease the degree of function approximation,
rounding pointwise downwards and upwards.
|
|
|
| Decrease the degree of function approximation, rounding pointwise downwards.
|
|
|
| Decrease the degree of function approximation, rounding pointwise upwards.
|
|
|
| :: varid | variable to integrate by
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate the integral of p (with 0 at 0) from below and from above.
|
|
|
|
| :: varid | variable to integrate by
| | -> ufb | p(x)
| | -> ufb | | | Approximate the integral of p (with 0 at 0) from below.
|
|
|
|
| :: varid | variable to integrate by
| | -> ufb | p(x)
| | -> ufb | | | Approximate the integral of p (with 0 at 0) from above.
|
|
|
|
| :: [varid] | axes to include in the measuring domain
| | -> ufb | | | -> (b, b) | | | Measure the volume between a function
and the zero hyperplane on the domain [-1,1]^n.
|
|
|
|
| Find an upper bound of the function over [-1,1]^n.
|
|
|
| Find a lower bound of the function over [-1,1]^n.
|
|
|
| :: Int | max degree for result
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate the function max(0,p(x)) from below and from above.
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | | | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate the function 1/p(x) from below and from above.
|
|
|
|
| Approximate the function 1/p(x) from below.
|
|
|
| Approximate the function 1/p(x) from above.
|
|
|
| :: Int | max degree for result
| | -> ufb | p_1(x)
| | -> ufb | p_2(x)
| | -> (ufb, ufb) | | | Approximate the function max(p_1(x),p_2(x)) from below and from above.
|
|
|
|
| :: Int | max degree for result
| | -> ufb | p_1(x)
| | -> ufb | p_2(x)
| | -> ufb | | | Approximate the function max(p_1(x),p_2(x)) from below.
|
|
|
|
| :: Int | max degree for result
| | -> ufb | p_1(x)
| | -> ufb | p_2(x)
| | -> ufb | | | Approximate the function max(p_1(x),p_2(x)) from above.
|
|
|
|
| :: Int | max degree for result
| | -> ufb | p_1(x)
| | -> ufb | p_2(x)
| | -> (ufb, ufb) | | | Approximate the function min(p_1(x),p_2(x)) from below and from above.
|
|
|
|
| :: Int | max degree for result
| | -> ufb | p_1(x)
| | -> ufb | p_2(x)
| | -> ufb | | | Approximate the function min(p_1(x),p_2(x)) from below.
|
|
|
|
| :: Int | max degree for result
| | -> ufb | p_1(x)
| | -> ufb | p_2(x)
| | -> ufb | | | Approximate the function min(p_1(x),p_2(x)) from above.
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | how hard to try when approximating exp as a polynomial
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate sqrt(p(x)) from below and from above.
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | how hard to try when approximating exp as a polynomial
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate exp(p(x)) from below and from above.
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | how hard to try when approximating log as a polynomial
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate log(p(x)) from below and from above.
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | how hard to try when approximating sin as a polynomial
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate sin(p(x)) from below and from above,
assuming the range of p is within [-pi2,pi2].
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | how hard to try when approximating cos as a polynomial
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate cos(p(x)) from below and from above,
assuming the range of p is within [-pi2,pi2].
|
|
|
|
| :: Int | max degree for result
| | -> EffortIndex | how hard to try when approximating cos as a polynomial
| | -> ufb | p(x)
| | -> (ufb, ufb) | | | Approximate atan(p(x)) from below and from above.
|
|
|
| eval :: boxb -> ufb -> (b, b) | Source |
|
| Evaluate at a point, rounding upwards and downwards.
|
|
| evalDown :: boxb -> ufb -> b | Source |
|
| Evaluate at a point, rounding downwards.
|
|
| evalUp :: boxb -> ufb -> b | Source |
|
| Evaluate at a point, rounding downwards.
|
|
| evalApprox :: boxra -> ufb -> ra | Source |
|
| Safely evaluate at a point using a real number approximation
for both the point and the result.
|
|
| partialEvalApprox :: boxra -> ufb -> (ufb, ufb) | Source |
|
| Partially evaluate at a lower-dimensional point
given using a real number approximation.
Approximate the resulting function from below and from above.
|
|
| partialEvalApproxDown :: boxra -> ufb -> ufb | Source |
|
| Partially evaluate at a lower-dimensional point
given using a real number approximation.
Approximate the resulting function from below.
|
|
| partialEvalApproxUp :: boxra -> ufb -> ufb | Source |
|
| Partially evaluate at a lower-dimensional point
given using a real number approximation.
Approximate the resulting function from above.
|
|
|
| :: Int | max degree for result
| | -> ufb | function f
| | -> Map varid ufb | variables to substitute and for each variable v,
function f_v to substitute for v
that maps [-1,1] into [-1,1]
| | -> (ufb, ufb) | upper and lower bounds of f[v |-> f_v]
| | Compose two functions, rounding upwards and downwards
provided each f_v ranges within the domain [-1,1].
|
|
|
|
| :: Int | max degree for result
| | -> ufb | function f1
| | -> Map varid ufb | variables to substitute and for each variable v,
function f_v to substitute for v
that maps [-1,1] into [-1,1]
| | -> ufb | a lower bound of f1.f2
| | Compose two functions, rounding downwards
provided each f_v ranges within the domain [-1,1].
|
|
|
|
| :: Int | max degree for result
| | -> ufb | function f1
| | -> Map varid ufb | variables to substitute and for each variable v,
function f_v to substitute for v
that maps [-1,1] into [-1,1]
| | -> ufb | an upper bound of f1.f2
| | Compose two functions, rounding upwards
provided each f_v ranges within the domain [-1,1].
|
|
|
|
| :: ufb | this parameter is not used except for type checking
| | -> ra | | | -> (b, b) | | | Convert from the interval type to the base type.
(The types are determined by the given example function.)
|
|
|
|
| :: ufb | this parameter is not used except for type checking
| | -> (b, b) | | | -> ra | | | Convert from the base type to the interval type.
(The types are determined by the given example function.)
|
|