The Original CHomP Software
|
Functions | |
template<class tCube , class tCubeSet > | |
void | addcubeneighbors (const tCube &q, int dim, const tCubeSet &cubset, bitfield *b, hashedset< tCube > &neighbors, hashedset< tCube > &queue, const hashedset< tCube > ¬these) |
A small helper function which adds neighbors of the given cube to the given set. More... | |
template<class tCube , class tVerify > | |
int_t | cubreducequiet (const hashedset< tCube > &maincset, hashedset< tCube > &cset, hashedset< tCube > &other, const hashedset< tCube > &keep, const tVerify &verify, bool quiet=true) |
Reduces a pair of sets of cubes for relative homology computation. More... | |
template<class tCube , class tVerify > | |
int_t | cubexpand (hashedset< tCube > &cset, hashedset< tCube > &other, const tVerify &verify, bool quiet=false) |
Expands the set 'other' towards 'cset' without changing the homology of (cset + other, other). More... | |
|
inline |
A small helper function which adds neighbors of the given cube to the given set.
All the neighbors of 'q' which appear in 'cubset' are added to the set 'neighbors' using the 'getneighbors' function if BDDs are in use. Otherwise, it is assumed that all the neighbors of 'q' are already in the set 'neighbors'. Then all the neighbors which are not in the 'notthese' set are added to the queue.
Definition at line 78 of file cubired1.h.
References chomp::homology::getneighbors(), and chomp::homology::MaxBddDim.
Referenced by cubreducequiet().
int_t chomp::homology::reduction1::cubexpand | ( | hashedset< tCube > & | cset, |
hashedset< tCube > & | other, | ||
const tVerify & | verify, | ||
bool | quiet = false |
||
) |
Expands the set 'other' towards 'cset' without changing the homology of (cset + other, other).
The two sets must be disjoint. Increases 'img' if necessary to cover F (other), but moves cubes only if it can prove that the inclusion of the old 'img' into the new, enlarged 'img' induces an isomorphism in homology. Every cube added to 'img' is removed from 'imgsrc'.
Definition at line 390 of file cubired1.h.
References chomp::homology::acyclic(), chomp::homology::getmaxneighbors(), chomp::homology::getneighbors(), chomp::homology::scon, and chomp::homology::sseq.
int_t chomp::homology::reduction1::cubreducequiet | ( | const hashedset< tCube > & | maincset, |
hashedset< tCube > & | cset, | ||
hashedset< tCube > & | other, | ||
const hashedset< tCube > & | keep, | ||
const tVerify & | verify, | ||
bool | quiet = true |
||
) |
Reduces a pair of sets of cubes for relative homology computation.
The pair is (maincset + cset + other, other), where the cubes in maincset are not to be removed (this is like the "core" of the pair that should be fixed),, the cubes in cset and other are to be considered for removal and could be removed if this is found feasible. The sets maincset + cset and other are disjoint. Does not remove any cubes that are listed in the set keep. Does additional verification, e.g., makes sure that the acyclicity of the given map is preserved. If 'quiet' is set to true then suppresses any messages. Returns the number of cubes removed from both sets.
Definition at line 114 of file cubired1.h.
References chomp::homology::acyclic(), chomp::homology::acyclic_rel(), addcubeneighbors(), chomp::homology::getmaxneighbors(), chomp::homology::makesetunion(), chomp::homology::scon, and chomp::homology::sseq.