34 #ifndef _FINRESDYN_MAPHENON_H_    35 #define _FINRESDYN_MAPHENON_H_    53 template <
class NumType>
    61         tMapHenon (
const NumType &aNumerator = 14,
    62                 const NumType &aDenominator = 10,
    63                 const NumType &bNumerator = 3,
    64                 const NumType &bDenominator = 10);
    77         template <
class InputType, 
class ResultType>
    78         void image (
const InputType *xMin, 
const InputType *xMax,
    79                 ResultType *yMin, ResultType *yMax) 
const;
    98 template <
class NumType>
   100         (
const NumType &aNumerator, 
const NumType &aDenominator,
   101         const NumType &bNumerator, 
const NumType &bDenominator):
   108                 throw "Trying to use negative parameters of the Henon map.";
   112 template <
class NumType>
   118 template <
class NumType>
   123         for (
int i = 0; i < iterCount; ++ i)
   125                 NumType tmp = 1 + x [1] - 
aMin * x [0] * x [0];
   126                 x [1] = 
bMin * x [0];
   132 template <
class NumType>
   133 template <
class InputType, 
class ResultType>
   135         (
const InputType *xMin, 
const InputType *xMax,
   136         ResultType *yMin, ResultType *yMax) 
const   142         ResultType x2Min, x2Max;
   143         openSqr (xMin [0], xMax [0], x2Min, x2Max);
   144         ResultType ax2Min = rnd::mul_down (
aMin, x2Min);
   145         ResultType ax2Max = rnd::mul_up (
aMax, x2Max);
   146         ResultType y1Min = rnd::add_down (1, xMin [1]);
   147         ResultType y1Max = rnd::add_up (1, xMax [1]);
   148         ResultType bxMin = rnd::mul_down (
bMin, xMin [0]);
   149         ResultType bxMax = rnd::mul_up (
bMax, xMax [0]);
   152         yMin [0] = rnd::sub_down (y1Min, ax2Max);
   153         yMax [0] = rnd::sub_up (y1Max, ax2Min);
   161 #endif // _FINRESDYN_MAPHENON_H_ 
void openSqr(const NumType &xLeft, const NumType &xRight, NumType &yLeft, NumType &yRight)
Computes the square f (x) = x^2 in the open interval arithmetic. 
NumType NumberType
The type of numbers in the Henon map. 
Rigorous rounding of arithmetic operations. 
const NumType aMin
A lower bound for the parameter 'a' in the Henon map. 
A class for rounding operations which uses the BOOST library. 
static int dim()
Returns the dimension of the phase space. 
tMapHenon(const NumType &aNumerator=14, const NumType &aDenominator=10, const NumType &bNumerator=3, const NumType &bDenominator=10)
The constructor of a Henon map object. 
An open-interval version of the square function. 
void initialPoint(NumType *x, int iterCount) const
Returns an initial point for constructing a cover of the attractor. 
const NumType bMin
A lower bound for the parameter 'b' in the Henon map. 
const NumType aMax
An upper bound for the parameter 'a' in the Henon map. 
void image(const InputType *xMin, const InputType *xMax, ResultType *yMin, ResultType *yMax) const
Returns a rigorous bound of the image of the given rectangle by the Henon map. 
const NumType bMax
An upper bound for the parameter 'b' in the Henon map.