The Conley-Morse Graphs Software
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MapOdeTimeT Class Reference

This class defines a map for the nonlinear density dependent overcompensatory Leslie population model. More...

#include <odetimet.h>

Inheritance diagram for MapOdeTimeT:
MapTight MapType MapInf MapLorenz MapOdeApprox MapVanderPol MapDuffingApprox MapLorenzApprox MapRoesslerApprox MapVanderPolApprox

Public Member Functions

 MapOdeTimeT (const std::string &formula, int order, double step, int n)
 The constructor which takes the formula for the ODE in the format used in the CAPD library. More...
 
 ~MapOdeTimeT ()
 The destructor. More...
 
void setParam (const double *left, const double *right, int n)
 Sets the parameters to the given intervals defined by their left and right coordinates. More...
 
void compute (const IntervalVectorType &x, RectSetType &y, int dim, const spcCoord *coord, int subdiv) const
 Computes a rectangular set that is an outer enclosure of the image of the given box. More...
 
void setBoundingBox (const double *left, const double *right, int dim, int stepsBetweenChecks)
 Sets a bounding box for the area of interest. More...
 
void setDefaultBoundingBox ()
 Sets the bounding box to the default one, as defined when setting the phase space. More...
 
bool adjust (bool successful, int subdiv)
 Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision depth. More...
 
std::string getOptInfo () const
 Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values. More...
 
void useOptInfo (const std::string &info)
 Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values. More...
 
void saveInternals (chomp::multiwork::mwData &data) const
 Saves the internal parameters and other data of the map to the mwData structure. More...
 
void loadInternals (chomp::multiwork::mwData &data)
 Retrieves the internal paramters and other data of the map from the mwData structure. More...
 
double getTimeStep (int subdiv) const
 Returns an approximation of the currently recommended integration time t for the time-t map at the given subdivision depth. More...
 
- Public Member Functions inherited from MapTight
 MapTight ()
 The default constructor of an object which describes a map. More...
 
 ~MapTight ()
 The destructor of an object which describe a map. More...
 
void compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const
 Computes an interval bounding box for the image of a given box. More...
 
virtual void compute (const IntervalVectorType &x, RectSetType &y, int dim, const spcCoord *coord, int subdiv) const =0
 Computes a rectangular set that is an outer enclosure of the image of the given box. More...
 
- Public Member Functions inherited from MapType
 MapType ()
 The default constructor of an object which describes a map. More...
 
virtual ~MapType ()
 The destructor of an object which describe a map. More...
 
virtual void setParam (const double *left, const double *right, int n)
 Sets the parameters to the given intervals defined by their left and right coordinates. More...
 
const double & getLeftParam (int n) const
 Returns the left value of the given parameter. More...
 
const double & getRightParam (int n) const
 Returns the right value of the given parameter. More...
 
virtual void compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const =0
 Computes the image of a box whose left and right coordinates are given. More...
 
void operator() (const IntervalType *x, IntervalType *y, int dim, const spcCoord *coord, int subdiv) const
 An interface to the function 'compute' based on intervals. More...
 
bool adjust (bool successful, int subdiv)
 Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision level. More...
 
std::string getOptInfo () const
 Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values. More...
 
void useOptInfo (const std::string &info)
 Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values. More...
 
void saveInternals (chomp::multiwork::mwData &data) const
 Saves the internal parameters and other data of the map to the mwData structure. More...
 
void loadInternals (chomp::multiwork::mwData &data)
 Retrieves the internal paramters and other data of the map from the mwData structure. More...
 
virtual double getTimeStep (int subdiv) const
 Returns the time step, which is 1 for a map, or the time t of integration in case of a time-t map of a flow. More...
 
virtual std::string name () const
 Returns the name of the map. More...
 

Static Public Member Functions

template<class Array1 , class Array2 >
static void setPhaseSpace (const Array1 &offset, const Array2 &width, int dim, int subdivDepth, int stepsBetweenChecks=2)
 Sets the phase space for an automatic generation of bounding boxes. More...
 

Protected Attributes

double * boundingBox
 A bounding box for the area where the trajectories are computed. More...
 
int boundingBoxDim
 The dimension of the bounding box. More...
 

Private Types

typedef capd::IMatrix IntervalMatrixType
 The interval matrix type. More...
 
typedef capd::IMap IntervalMapType
 The type of a map to be used for the Taylor method. More...
 
typedef capd::dynsys::Solver< IntervalMapTypeTaylorType
 The type of fixed step control. More...
 

Private Member Functions

 MapOdeTimeT (const MapOdeTimeT &)
 The copy constructor should not be used. More...
 
MapOdeTimeToperator= (const MapOdeTimeT &)
 The assignment operator should not be used. More...
 
bool checkOutside (double *x, int dim) const
 Verifies if the given point is outside the bounding box set with the method "setBoundingBox". More...
 
bool checkOutside (IntervalVectorType &v, int dim) const
 A version of the checkOutside procedure for interval vectors. More...
 
bool checkOutside (double *left, double *right, int dim) const
 Verifies if the given interval vector is completely outside the bounding box set with the method "setBoundingBox". More...
 
void iterateLohnerSet (RectSetType &lohnerSet, TaylorType &theTaylorMethod, int steps, int dim) const
 Iterates the given Lohner set, using the Taylor method objects. More...
 

Private Attributes

std::string mapFormula
 The formula for the map in the text format used in CAPD. More...
 
OdeIntegrParam odeIntegrParam
 An object for adjusting ODE integration parameters. More...
 
IntervalMapTypetheMap
 The map object to be used in the Taylor method object. More...
 
int checkEvery
 The number of steps after which the box should be checked if it is still contained in the bounding box. More...
 
long integrations
 The numbers of successful integrations. More...
 

Static Private Attributes

static std::vector< double > defaultBoundingBox
 The default bounding box to be used if no bounding box is set. More...
 
static int defaultCheckEvery = 2
 The default number of steps to check the bounding box. More...
 

Detailed Description

This class defines a map for the nonlinear density dependent overcompensatory Leslie population model.

The interpretation of parameters depends on the dimension.

Definition at line 81 of file odetimet.h.

Member Typedef Documentation

◆ IntervalMapType

typedef capd::IMap MapOdeTimeT::IntervalMapType
private

The type of a map to be used for the Taylor method.

Definition at line 175 of file odetimet.h.

◆ IntervalMatrixType

typedef capd::IMatrix MapOdeTimeT::IntervalMatrixType
private

The interval matrix type.

Definition at line 172 of file odetimet.h.

◆ TaylorType

typedef capd::dynsys::Solver<IntervalMapType> MapOdeTimeT::TaylorType
private

The type of fixed step control.

The Taylor method type.

Definition at line 188 of file odetimet.h.

Constructor & Destructor Documentation

◆ MapOdeTimeT() [1/2]

MapOdeTimeT::MapOdeTimeT ( const std::string &  formula,
int  order,
double  step,
int  n 
)
inline

The constructor which takes the formula for the ODE in the format used in the CAPD library.

The names of parameters in the formula must be "pa", "pb", etc. The order of the Taylor method to use must be given (e.g. 2), the integration step size, and the number of steps. The total translation in the flow equals step * n. Note: The step should be a representable number (for example, a multiple of a power of 2, like 3.0/256).

Definition at line 272 of file odetimet.h.

References mapFormula, resetRounding(), setDefaultBoundingBox(), and testIntervals().

◆ ~MapOdeTimeT()

MapOdeTimeT::~MapOdeTimeT ( )
inline

The destructor.

Definition at line 342 of file odetimet.h.

References boundingBox, integrations, resetRounding(), and theMap.

◆ MapOdeTimeT() [2/2]

MapOdeTimeT::MapOdeTimeT ( const MapOdeTimeT )
private

The copy constructor should not be used.

Member Function Documentation

◆ adjust()

bool MapOdeTimeT::adjust ( bool  successful,
int  subdiv 
)
inline

Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision depth.

Returns true iff it is necessary to repeat the computation.

Definition at line 646 of file odetimet.h.

References adjust(), and odeIntegrParam.

Referenced by adjust().

◆ checkOutside() [1/3]

bool MapOdeTimeT::checkOutside ( double *  left,
double *  right,
int  dim 
) const
inlineprivate

Verifies if the given interval vector is completely outside the bounding box set with the method "setBoundingBox".

Returns true if the bounding box was set, its dimension conforms to the dimension of the vector, and the interval vector is outside the interior of the box; in this case the vector is projected onto the hyperplane containing the corresponding face of the bounding box. Otherwise returns false.

Definition at line 593 of file odetimet.h.

References boundingBox, and boundingBoxDim.

◆ checkOutside() [2/3]

bool MapOdeTimeT::checkOutside ( double *  x,
int  dim 
) const
inlineprivate

Verifies if the given point is outside the bounding box set with the method "setBoundingBox".

Returns true if the bounding box was set, its dimension conforms to the dimension of the vector, and the point is outside the box (weak inequality); in this case the point is projected onto the hyperplane containing the corresponding face of the bounding box. Otherwise returns false.

Definition at line 567 of file odetimet.h.

References boundingBox, and boundingBoxDim.

Referenced by iterateLohnerSet().

◆ checkOutside() [3/3]

bool MapOdeTimeT::checkOutside ( IntervalVectorType v,
int  dim 
) const
inlineprivate

A version of the checkOutside procedure for interval vectors.

Definition at line 620 of file odetimet.h.

References boundingBox, and boundingBoxDim.

◆ compute()

void MapOdeTimeT::compute ( const IntervalVectorType x,
RectSetType y,
int  dim,
const spcCoord coord,
int  subdiv 
) const
inlinevirtual

Computes a rectangular set that is an outer enclosure of the image of the given box.

Implements MapTight.

Definition at line 436 of file odetimet.h.

References integrations, iterateLohnerSet(), odeIntegrParam, resetRounding(), and theMap.

◆ getOptInfo()

std::string MapOdeTimeT::getOptInfo ( ) const
inline

Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values.

Definition at line 651 of file odetimet.h.

References odeIntegrParam.

◆ getTimeStep()

double MapOdeTimeT::getTimeStep ( int  subdiv) const
inlinevirtual

Returns an approximation of the currently recommended integration time t for the time-t map at the given subdivision depth.

Reimplemented from MapType.

Definition at line 684 of file odetimet.h.

References odeIntegrParam.

◆ iterateLohnerSet()

void MapOdeTimeT::iterateLohnerSet ( RectSetType lohnerSet,
TaylorType theTaylorMethod,
int  steps,
int  dim 
) const
inlineprivate

Iterates the given Lohner set, using the Taylor method objects.

Definition at line 414 of file odetimet.h.

References checkEvery, and checkOutside().

Referenced by compute().

◆ loadInternals()

void MapOdeTimeT::loadInternals ( chomp::multiwork::mwData &  data)
inline

Retrieves the internal paramters and other data of the map from the mwData structure.

Definition at line 673 of file odetimet.h.

References MapType::loadInternals(), and odeIntegrParam.

◆ operator=()

MapOdeTimeT & MapOdeTimeT::operator= ( const MapOdeTimeT )
private

The assignment operator should not be used.

◆ saveInternals()

void MapOdeTimeT::saveInternals ( chomp::multiwork::mwData &  data) const
inline

Saves the internal parameters and other data of the map to the mwData structure.

Definition at line 662 of file odetimet.h.

References odeIntegrParam, and MapType::saveInternals().

◆ setBoundingBox()

void MapOdeTimeT::setBoundingBox ( const double *  left,
const double *  right,
int  dim,
int  stepsBetweenChecks 
)
inline

Sets a bounding box for the area of interest.

Every time the provided number of itereates is made, the iterated set is verified whether it is contained in the bounding box. If it is completely outside then it is projected to the boundary of the box and the iterations are halted.

Definition at line 513 of file odetimet.h.

References boundingBox, boundingBoxDim, and checkEvery.

Referenced by setDefaultBoundingBox().

◆ setDefaultBoundingBox()

void MapOdeTimeT::setDefaultBoundingBox ( )
inline

Sets the bounding box to the default one, as defined when setting the phase space.

Definition at line 250 of file odetimet.h.

References defaultBoundingBox, defaultCheckEvery, and setBoundingBox().

Referenced by MapOdeTimeT().

◆ setParam()

void MapOdeTimeT::setParam ( const double *  left,
const double *  right,
int  n 
)
inlinevirtual

Sets the parameters to the given intervals defined by their left and right coordinates.

This function actually calls the original function from the master class, and also resets the Taylor class iterator.

Reimplemented from MapType.

Definition at line 305 of file odetimet.h.

References mapFormula, odeIntegrParam, resetRounding(), MapType::setParam(), setParam(), and theMap.

Referenced by setParam().

◆ setPhaseSpace()

template<class Array1 , class Array2 >
void MapOdeTimeT::setPhaseSpace ( const Array1 &  offset,
const Array2 &  width,
int  dim,
int  subdivDepth,
int  stepsBetweenChecks = 2 
)
inlinestatic

Sets the phase space for an automatic generation of bounding boxes.

Definition at line 536 of file odetimet.h.

References defaultBoundingBox, and defaultCheckEvery.

◆ useOptInfo()

void MapOdeTimeT::useOptInfo ( const std::string &  info)
inline

Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values.

The map object may be fed with several lines and should interprete them to set up its optimization parameters.

Definition at line 656 of file odetimet.h.

References odeIntegrParam.

Member Data Documentation

◆ boundingBox

double* MapOdeTimeT::boundingBox
protected

A bounding box for the area where the trajectories are computed.

If an iterated set gets outside the given ranges of coordinates then it is projected to the boundary of this box and the iterating process is halted. The array contains left1, right1, left2, right2, etc.

Definition at line 165 of file odetimet.h.

Referenced by checkOutside(), MapOdeApprox::fadeVectorField(), setBoundingBox(), and ~MapOdeTimeT().

◆ boundingBoxDim

int MapOdeTimeT::boundingBoxDim
protected

The dimension of the bounding box.

Definition at line 168 of file odetimet.h.

Referenced by checkOutside(), MapOdeApprox::fadeVectorField(), and setBoundingBox().

◆ checkEvery

int MapOdeTimeT::checkEvery
private

The number of steps after which the box should be checked if it is still contained in the bounding box.

Definition at line 207 of file odetimet.h.

Referenced by iterateLohnerSet(), and setBoundingBox().

◆ defaultBoundingBox

std::vector< double > MapOdeTimeT::defaultBoundingBox
staticprivate

The default bounding box to be used if no bounding box is set.

Definition at line 203 of file odetimet.h.

Referenced by setDefaultBoundingBox(), and setPhaseSpace().

◆ defaultCheckEvery

int MapOdeTimeT::defaultCheckEvery = 2
staticprivate

The default number of steps to check the bounding box.

Definition at line 210 of file odetimet.h.

Referenced by setDefaultBoundingBox(), and setPhaseSpace().

◆ integrations

long MapOdeTimeT::integrations
mutableprivate

The numbers of successful integrations.

Definition at line 244 of file odetimet.h.

Referenced by compute(), and ~MapOdeTimeT().

◆ mapFormula

std::string MapOdeTimeT::mapFormula
private

The formula for the map in the text format used in CAPD.

Definition at line 194 of file odetimet.h.

Referenced by MapOdeTimeT(), and setParam().

◆ odeIntegrParam

OdeIntegrParam MapOdeTimeT::odeIntegrParam
mutableprivate

An object for adjusting ODE integration parameters.

Definition at line 197 of file odetimet.h.

Referenced by adjust(), compute(), getOptInfo(), getTimeStep(), loadInternals(), saveInternals(), setParam(), and useOptInfo().

◆ theMap

IntervalMapType* MapOdeTimeT::theMap
private

The map object to be used in the Taylor method object.

Definition at line 200 of file odetimet.h.

Referenced by compute(), setParam(), and ~MapOdeTimeT().


The documentation for this class was generated from the following files: