|
:: 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.)
|
|