AERN-RnToRm-0.5.0.1: polynomial function enclosures (PFEs) approximating exact real functions

Portabilityportable
Stabilityexperimental
Maintainermik@konecny.aow.cz

Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Bounds

Description

Internal module for Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.

Implementation of various functions related to the bounds of polynomials.

Synopsis

Documentation

chplUpperBoundSource

Arguments

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

chplLowerBoundSource

Arguments

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

chplBoundsSource

Arguments

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

chplUpperBoundExpensiveSource

Arguments

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

chplLowerBoundExpensiveSource

Arguments

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

chplBoundsExpensiveSource

Arguments

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

chplBoundsAffineSource

Arguments

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

chplBoundsByDerivativeSource

Arguments

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

chplMaxSource

Arguments

:: (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

chplMinSource

Arguments

:: (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

chplNonnegSource

Arguments

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

chplNonnegCubicSource

Arguments

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