The Conley-Morse Graphs Software
Functions
invpart.h File Reference

Computation of the invariant part of a set of cubes. More...

#include "chomp/system/textfile.h"
#include "chomp/cubes/cube.h"
#include "chomp/struct/digraph.h"
#include "chomp/struct/multitab.h"
#include "config.h"
#include "typedefs.h"
#include "mapgraph.h"
#include "typedyns.h"

Go to the source code of this file.

Functions

template<class typeCubes >
void invariantPart (typeCubes &X, const chomp::homology::diGraph<> &g, chomp::homology::diGraph<> *gInv=0)
 Computes X := Inv (X) using the algorithm by Bill Kalies and Hyunju Ban. More...
 
template<class typeCubes , class theCubMapType >
int invariantPart (typeCubes &X, const theCubMapType &theCubMap, bool cropping=true)
 Computes X := Inv (X) using the algorithm by Bill Kalies and Hyunju Ban. More...
 
bool checkEmptyInv (const spcCubes &X, int subdivDepth, const double *offset, const double *width, const theMapType &theMap, const theCubMapType &theCubMap0, const theCubMapType &theCubMap1)
 Verifies whether the invariant part of the given set is empty by applying a limited number of refinements until the set is empty or the number of cubes becomes too large. More...
 
template<class CubSetType , class CubSetArrayType , class CubMapType >
int_t findSCCs (const CubSetType &X, const CubMapType &theCubMap, CubSetArrayType &components)
 Computes the strongly connected path components of the graph representation of the multivalued map on the given set. More...
 

Detailed Description

Computation of the invariant part of a set of cubes.

This file contains the definition of a function for the computation of the invariant part of a set of cubes with respect to a given multivalued map. It also contains the procedure for verifying whether the invariant part is nonempty after subdividing the set of cubes a few times.

Author
Pawel Pilarczyk

Definition in file invpart.h.

Function Documentation

◆ checkEmptyInv()

bool checkEmptyInv ( const spcCubes X,
int  subdivDepth,
const double *  offset,
const double *  width,
const theMapType theMap,
const theCubMapType theCubMap0,
const theCubMapType theCubMap1 
)
inline

Verifies whether the invariant part of the given set is empty by applying a limited number of refinements until the set is empty or the number of cubes becomes too large.

Returns "true" if it is empty, "false" if this could not be proved.

Definition at line 171 of file invpart.h.

References invariantPart(), custom::difference::maxImageDiameter, custom::difference::maxImageVolume, custom::difference::maxRefineSize0, custom::difference::maxRefineSize1, custom::difference::refineDepth, and subdivideCubes().

Referenced by invMorseDec().

◆ findSCCs()

template<class CubSetType , class CubSetArrayType , class CubMapType >
int_t findSCCs ( const CubSetType &  X,
const CubMapType &  theCubMap,
CubSetArrayType &  components 
)
inline

Computes the strongly connected path components of the graph representation of the multivalued map on the given set.

Returns the number of components and fills in the array provided or returns -1 in case of failure. Shows messages to 'sbug'.

Definition at line 241 of file invpart.h.

References computeMapGraph().

◆ invariantPart() [1/2]

template<class typeCubes >
void invariantPart ( typeCubes &  X,
const chomp::homology::diGraph<> &  g,
chomp::homology::diGraph<> *  gInv = 0 
)
inline

Computes X := Inv (X) using the algorithm by Bill Kalies and Hyunju Ban.

If the graph 'gInv' is given, then the resulting graph is created, otherwise only the set X is modified.

Definition at line 60 of file invpart.h.

Referenced by checkEmptyInv(), computeConleyIndex(), computeMorseDecomposition(), invariantPart(), and matchMorseSets().

◆ invariantPart() [2/2]

template<class typeCubes , class theCubMapType >
int invariantPart ( typeCubes &  X,
const theCubMapType theCubMap,
bool  cropping = true 
)
inline

Computes X := Inv (X) using the algorithm by Bill Kalies and Hyunju Ban.

Uses the combinatorial cubical multivalued map provided. Returns 0 on success or -1 if failed. Shows messages to 'sbug'.

Definition at line 133 of file invpart.h.

References computeMapGraph(), and invariantPart().