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

This class defines a map which describes a family of globally coupled logistic maps. More...

#include <m_globclog.h>

Inheritance diagram for MapGlobCLog:
MapType

Public Member Functions

 MapGlobCLog ()
 The default constructor. More...
 
 ~MapGlobCLog ()
 The destructor. More...
 
void compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const
 Computes the image of a box whose left and right coordinates are given. 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...
 

Private Member Functions

void setDimension (int dim) const
 Sets the space dimension and (re-)allocates memory for the sigma coefficients and variables. More...
 
IntervalTypechangeCoordsIn (IntervalType *input, IntervalType *output, int dim) const
 Applies a coordinate change to the input vector. More...
 
IntervalTypechangeCoordsOut (IntervalType *input, IntervalType *output, int dim) const
 Applies a coordinate change to the output vector. More...
 

Static Private Member Functions

static IntervalType logistic (const IntervalType &x, const IntervalType &a)
 The logistic function f_a (x) = 1 - a x^2. More...
 

Private Attributes

int * sigma
 The extra weights for the maps (for the weighted 2GCM). More...
 
int sigmaSum
 The sum of the sigmas. More...
 
IntervalTypevariables
 A temporary array for the variables. More...
 
int currentDim
 The dimension for which the internal arrays have been allocated. More...
 
double rescaling
 Rescaling factor for the changed coordinates. More...
 

Static Private Attributes

static const bool weighted2GCM = true
 Configuration option: Is this the weighted 2GCM model? More...
 
static const bool changeCoordinates = false
 Configuration option: Should we change the first two coordinates? More...
 

Detailed Description

This class defines a map which describes a family of globally coupled logistic maps.

There are only two parameters of this map: 'a' and 'epsilon'. Warning: This class is not thread-safe!

Definition at line 53 of file m_globclog.h.

Constructor & Destructor Documentation

◆ MapGlobCLog()

MapGlobCLog::MapGlobCLog ( )
inline

The default constructor.

Definition at line 111 of file m_globclog.h.

References testIntervals().

◆ ~MapGlobCLog()

MapGlobCLog::~MapGlobCLog ( )
inline

The destructor.

Definition at line 119 of file m_globclog.h.

References sigma, and variables.

Member Function Documentation

◆ changeCoordsIn()

IntervalType * MapGlobCLog::changeCoordsIn ( IntervalType input,
IntervalType output,
int  dim 
) const
inlineprivate

Applies a coordinate change to the input vector.

Definition at line 158 of file m_globclog.h.

References changeCoordinates, and rescaling.

Referenced by compute().

◆ changeCoordsOut()

IntervalType * MapGlobCLog::changeCoordsOut ( IntervalType input,
IntervalType output,
int  dim 
) const
inlineprivate

Applies a coordinate change to the output vector.

Definition at line 170 of file m_globclog.h.

References changeCoordinates, and rescaling.

Referenced by compute().

◆ compute()

void MapGlobCLog::compute ( const double *  xleft,
const double *  xright,
double *  yleft,
double *  yright,
int  dim,
const spcCoord coord,
int  subdiv 
) const
inlinevirtual

Computes the image of a box whose left and right coordinates are given.

Fills in the images with the left and right coordinates of the image box.

Implements MapType.

Definition at line 182 of file m_globclog.h.

References changeCoordsIn(), changeCoordsOut(), MapType::getLeftParam(), MapType::getRightParam(), logistic(), resetRounding(), setDimension(), sigma, sigmaSum, and variables.

◆ logistic()

IntervalType MapGlobCLog::logistic ( const IntervalType x,
const IntervalType a 
)
inlinestaticprivate

The logistic function f_a (x) = 1 - a x^2.

Definition at line 130 of file m_globclog.h.

Referenced by compute().

◆ setDimension()

void MapGlobCLog::setDimension ( int  dim) const
inlineprivate

Sets the space dimension and (re-)allocates memory for the sigma coefficients and variables.

Definition at line 136 of file m_globclog.h.

References currentDim, sigma, sigmaSum, variables, and weighted2GCM.

Referenced by compute().

Member Data Documentation

◆ changeCoordinates

const bool MapGlobCLog::changeCoordinates = false
staticprivate

Configuration option: Should we change the first two coordinates?

Definition at line 74 of file m_globclog.h.

Referenced by changeCoordsIn(), and changeCoordsOut().

◆ currentDim

int MapGlobCLog::currentDim
mutableprivate

The dimension for which the internal arrays have been allocated.

Definition at line 86 of file m_globclog.h.

Referenced by setDimension().

◆ rescaling

double MapGlobCLog::rescaling
private

Rescaling factor for the changed coordinates.

Definition at line 89 of file m_globclog.h.

Referenced by changeCoordsIn(), and changeCoordsOut().

◆ sigma

int* MapGlobCLog::sigma
mutableprivate

The extra weights for the maps (for the weighted 2GCM).

Definition at line 77 of file m_globclog.h.

Referenced by compute(), setDimension(), and ~MapGlobCLog().

◆ sigmaSum

int MapGlobCLog::sigmaSum
mutableprivate

The sum of the sigmas.

Definition at line 80 of file m_globclog.h.

Referenced by compute(), and setDimension().

◆ variables

IntervalType* MapGlobCLog::variables
mutableprivate

A temporary array for the variables.

Definition at line 83 of file m_globclog.h.

Referenced by compute(), setDimension(), and ~MapGlobCLog().

◆ weighted2GCM

const bool MapGlobCLog::weighted2GCM = true
staticprivate

Configuration option: Is this the weighted 2GCM model?

Definition at line 71 of file m_globclog.h.

Referenced by setDimension().


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