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

Matching Morse decompositions. More...

#include <vector>
#include <algorithm>
#include <new>
#include "chomp/system/config.h"
#include "chomp/system/textfile.h"
#include "chomp/struct/digraph.h"
#include "chomp/struct/flatmatr.h"
#include "chomp/struct/autoarray.h"
#include "config.h"
#include "typedefs.h"
#include "typedyns.h"
#include "matcharr.h"

Go to the source code of this file.

Functions

template<class typeCubes >
bool intersect (const typeCubes &X, const typeCubes &Y)
 Verifies whether two sets of cubes intersect each other. More...
 
template<class typeCubes >
bool intersectSub (const typeCubes &fine, const typeCubes &coarse)
 Verifies whether two sets of cubes intersect each other. More...
 
bool matchMorseSets (const theMorseDecompositionType &morseDecM, const std::vector< int > &wrongIndM, const theCubMapType &theCubMap1M, std::vector< spcCubes > &refinedM, const theMorseDecompositionType &morseDecN, const std::vector< int > &wrongIndN, const theCubMapType &theCubMap1N, std::vector< spcCubes > &refinedN, bool matchOrdering)
 Verifies if the two given Morse decompositions are equivalent by matching Morse sets which intersect each other. More...
 
void matchMorseDecompositions (const parCubes &paramBoxes, const std::vector< theMorseDecompositionType * > &morseDec, const std::vector< theCubMapType * > &theCubMap1, const std::vector< std::vector< int > > &wrongIndices, const parCoord *parLeft, const parCoord *parRight, std::vector< std::vector< parCube > > &matchClasses)
 Matches Morse decompositions corresponding to parameter cubes in the entire range. More...
 

Detailed Description

Matching Morse decompositions.

This file contains the definitions of a procedure for matching Morse decompositions. A relation between the sets of Morse sets for two Morse decompositions is determined by checking which Morse sets intersect their counterparts. If this relation is a bijection then the edges in Morse graphs is also verified.

Author
Pawel Pilarczyk

Definition in file matchdec.h.

Function Documentation

◆ intersect()

template<class typeCubes >
bool intersect ( const typeCubes &  X,
const typeCubes &  Y 
)
inline

Verifies whether two sets of cubes intersect each other.

Returns "true" if they share at least one common cube or "false" otherwise.

Definition at line 66 of file matchdec.h.

Referenced by matchMorseSets().

◆ intersectSub()

template<class typeCubes >
bool intersectSub ( const typeCubes &  fine,
const typeCubes &  coarse 
)
inline

Verifies whether two sets of cubes intersect each other.

The first set is with respect to a twice finer grid that the other one. Returns "true" if they share at least one common cube or "false" otherwise.

Definition at line 89 of file matchdec.h.

Referenced by matchMorseSets().

◆ matchMorseDecompositions()

void matchMorseDecompositions ( const parCubes paramBoxes,
const std::vector< theMorseDecompositionType * > &  morseDec,
const std::vector< theCubMapType * > &  theCubMap1,
const std::vector< std::vector< int > > &  wrongIndices,
const parCoord parLeft,
const parCoord parRight,
std::vector< std::vector< parCube > > &  matchClasses 
)
inline

Matches Morse decompositions corresponding to parameter cubes in the entire range.

The set of cubes is used to determine the numbers in the indexing of Morse decompositions.

Definition at line 382 of file matchdec.h.

References custom::difference::compareMorseOrdering, matchMorseSets(), and custom::difference::paramDim.

Referenced by Worker::Process().

◆ matchMorseSets()

bool matchMorseSets ( const theMorseDecompositionType morseDecM,
const std::vector< int > &  wrongIndM,
const theCubMapType theCubMap1M,
std::vector< spcCubes > &  refinedM,
const theMorseDecompositionType morseDecN,
const std::vector< int > &  wrongIndN,
const theCubMapType theCubMap1N,
std::vector< spcCubes > &  refinedN,
bool  matchOrdering 
)
inline

Verifies if the two given Morse decompositions are equivalent by matching Morse sets which intersect each other.

If requested, matches also the ordering in the Morse decomposition.

Definition at line 128 of file matchdec.h.

References intersect(), intersectSub(), invariantPart(), custom::difference::maxRefineSize0, and subdivideCubes().

Referenced by matchMorseDecompositions().