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.