A generic map computation routine that computes a rigorous cubical multivalued map based on a function that computes the image of intervals using interval arithmetic.
More...
|
| MapComputation (const double *_offset, const double *_width, int _intwidth, int _subdivdepth, const mapcomp &_M) |
| The default constructor. More...
|
|
| ~MapComputation () |
| The destructor. More...
|
|
int | operator() (const cubetype &q, cubsettype *img, chomp::homology::diGraph<> *g, const cubsettype *codomain, const cubsettype *disjoint, bool throwIfCropped) const |
| The operator for computing the image of a box as a set of boxes, as it is in a combinatorial cubical multivalued map. More...
|
|
int | intWidth () const |
| Returns the width of the phase space in terms of the number of boxes. More...
|
|
int | subdivDepth () const |
| Returns the subdivision depth at which the computations are done. More...
|
|
void | cleanCache () const |
| Cleans the cache of the cubical map, e.g., if the underlying interval map has changed. More...
|
|
template<class mapcomp, class cubetype, class cubsettype = chomp::homology::hashedset<cubetype>>
class MapComputation< mapcomp, cubetype, cubsettype >
A generic map computation routine that computes a rigorous cubical multivalued map based on a function that computes the image of intervals using interval arithmetic.
The "mapcomp" class must have a method called "compute" which is used to compute the map in interval arithmetic.
Definition at line 68 of file mapcomp.h.
template<class mapcomp , class cubetype , class cubsettype >
MapComputation< mapcomp, cubetype, cubsettype >::MapComputation |
( |
const double * |
_offset, |
|
|
const double * |
_width, |
|
|
int |
_intwidth, |
|
|
int |
_subdivdepth, |
|
|
const mapcomp & |
_M |
|
) |
| |
|
inline |
The default constructor.
Remembers the offset and width of the phase space, and the width (the same in each direction) in integers. Note: 'intwidth' does not have to be a power of 2. Note: The arrays of the offset and width of the phase space must exist until the object is deleted; the same for the map.
Definition at line 219 of file mapcomp.h.
References testIntervals().
template<class mapcomp , class cubetype , class cubsettype >
int MapComputation< mapcomp, cubetype, cubsettype >::compute |
( |
const typename cubetype::CoordType * |
coord, |
|
|
int |
dim, |
|
|
typename cubetype::CoordType * |
left, |
|
|
typename cubetype::CoordType * |
right, |
|
|
IntervalType * |
scaledImage |
|
) |
| const |
|
inlineprotected |
Use interval arithmetic to compute the coordinate scope.
The image scaled to the interval grid may be saved if an array of intervals is provided. Note: 'coord' may point to the same location as 'left' or 'right'.
Definition at line 302 of file mapcomp.h.
References resetRounding().
template<class mapcomp , class cubetype , class cubsettype >
template<class IntervalArray >
void MapComputation< mapcomp, cubetype, cubsettype >::encloseIntervalInt |
( |
const IntervalArray & |
box, |
|
|
int |
dim, |
|
|
typename cubetype::CoordType * |
left, |
|
|
typename cubetype::CoordType * |
right |
|
) |
| |
|
inlinestatic |
A helper function that encloses an interval box in the interior of a box with integer coordinates.
Definition at line 268 of file mapcomp.h.
template<class mapcomp , class cubetype , class cubsettype >
int MapComputation< mapcomp, cubetype, cubsettype >::operator() |
( |
const cubetype & |
q, |
|
|
cubsettype * |
img, |
|
|
chomp::homology::diGraph<> * |
g, |
|
|
const cubsettype * |
codomain, |
|
|
const cubsettype * |
disjoint, |
|
|
bool |
throwIfCropped |
|
) |
| const |
|
inline |
The operator for computing the image of a box as a set of boxes, as it is in a combinatorial cubical multivalued map.
The image is restricted to the given codomain (if provided). The integral coefficients of cubes are transformed to real numbers according to the rectangular area defined by offset from the origin and its width, as well as the width of this area in terms of integral coordinates.
Definition at line 362 of file mapcomp.h.
References checkImageSize(), cropRanges(), disjoint(), and intersectionVolume().
template<class mapcomp , class cubetype , class cubsettype = chomp::homology::hashedset<cubetype>>
Map distance measuring object.
This is an auxiliary object for gathering information on the distance of a cube from certain subspaces in comparison to the distance of its image. Please, see the definition of this class for more details.
Definition at line 196 of file mapcomp.h.
template<class mapcomp , class cubetype , class cubsettype >
template<class mapcomp , class cubetype , class cubsettype >