Portability | portable |
---|---|
Stability | experimental |
Maintainer | mik@konecny.aow.cz |
Internal module for Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.
Implementation of various functions related to the bounds of polynomials.
- chplUpperBound :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> b
- chplLowerBound :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> b
- chplBounds :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> (b, b)
- chplUpperBoundExpensive :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> b
- chplLowerBoundExpensive :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> b
- chplBoundsExpensive :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> (b, b)
- chplBoundsAffine :: (ERRealBase b, DomainBox box varid Int, Ord box) => EffortIndex -> ERChebPoly box b -> (b, b)
- chplBoundsByDerivative :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => EffortIndex -> ERChebPoly box b -> (b, b)
- chplMax :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => Int -> Int -> ERChebPoly box b -> ERChebPoly box b -> (ERChebPoly box b, ERChebPoly box b)
- chplMin :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => Int -> Int -> ERChebPoly box b -> ERChebPoly box b -> (ERChebPoly box b, ERChebPoly box b)
- chplNonneg :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => Int -> Int -> ERChebPoly box b -> (ERChebPoly box b, ERChebPoly box b)
- chplNonnegCubic :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => Int -> Int -> ERChebPoly box b -> (ERChebPoly box b, ERChebPoly box b)
- chplTimesLoHi :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => ERChebPoly box b -> (ERChebPoly box b, ERChebPoly box b, b) -> (ERChebPoly box b, ERChebPoly box b, b)
Documentation
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> b |
Find an upper bound on a polynomial over the unit domain [-1,1]^n.
Quick method that does not converge to exact result with increasing effort index.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> b |
Find a lower bound on a polynomial over the unit domain [-1,1]^n.
Quick method that does not converge to exact result with increasing effort index.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> (b, b) |
Find both lower and upper bounds on a polynomial over the unit domain [-1,1]^n.
Quick method that does not converge to exact result with increasing effort index.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> b |
Find an upper bound on a polynomial over the unit domain [-1,1]^n.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> b |
Find a lower bound on a polynomial over the unit domain [-1,1]^n.
Quick method that does not converge to exact result with increasing effort index.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> (b, b) |
Find both lower and upper bounds on a polynomial over the unit domain [-1,1]^n.
Quick method that does not converge to exact result with increasing effort index.
:: (ERRealBase b, DomainBox box varid Int, Ord box) | |
=> EffortIndex | how hard to try |
-> ERChebPoly box b | |
-> (b, b) |
Find bounds on a polynomial over the unit domain [-1,1]^n.
Fast but inaccurate method, in essence taking the maximum of the upper affine reduction.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> EffortIndex | how hard to try looking for peaks |
-> ERChebPoly box b | |
-> (b, b) |
Find a close upper bound of a polynomial over the unit domain [-1,1]^n.
Approximates all local extrema and computes their maximum.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> Int | maximum polynomial degree |
-> Int | maximum term count |
-> ERChebPoly box b | |
-> ERChebPoly box b | |
-> (ERChebPoly box b, ERChebPoly box b) |
Approximate from below and from above the pointwise maximum of two polynomials
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> Int | maximum polynomial degree |
-> Int | maximum term count |
-> ERChebPoly box b | |
-> ERChebPoly box b | |
-> (ERChebPoly box b, ERChebPoly box b) |
Approximate from below and from above the pointwise minimum of two polynomials
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> Int | maximum polynomial degree |
-> Int | maximum term count |
-> ERChebPoly box b | |
-> (ERChebPoly box b, ERChebPoly box b) |
Approximate the function max(0,p(x)) by a polynomial from below and from above.
:: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) | |
=> Int | maximum polynomial degree |
-> Int | maximum term count |
-> ERChebPoly box b | |
-> (ERChebPoly box b, ERChebPoly box b) |
A version of chplNonneg
using a cubic approximation.
chplTimesLoHi :: (ERRealBase b, DomainBox box varid Int, Ord box, Show varid, DomainIntBox boxra varid (ERInterval b), DomainBoxMappable boxra boxras varid (ERInterval b) [ERInterval b]) => ERChebPoly box b -> (ERChebPoly box b, ERChebPoly box b, b) -> (ERChebPoly box b, ERChebPoly box b, b)Source
Multiply a polynomial by an enclosure (with non-negated lower bound).