This file contains various procedures defined on cubical sets and related to some combinatorial operations or homology computation. More...
#include "chomp/system/config.h"
#include "chomp/system/textfile.h"
#include "chomp/cubes/pointset.h"
#include "chomp/homology/chains.h"
#include "chomp/struct/bitfield.h"
#include "chomp/struct/integer.h"
#include "chomp/struct/hashsets.h"
#include "chomp/struct/setunion.h"
#include "chomp/homology/gcomplex.h"
#include "chomp/cubes/pointbas.h"
#include "chomp/cubes/cube.h"
#include "chomp/cubes/cell.h"
#include "chomp/cubes/cubmaps.h"
#include "chomp/cubes/neighbor.h"
#include "chomp/homology/cubacycl.h"
#include "chomp/homology/tabulate.h"
#include "chomp/homology/known.h"
#include <iostream>
#include <fstream>
#include <cstdlib>
Go to the source code of this file.
Namespaces | |
namespace | chomp |
This namespace contains the entire CHomP library interface. | |
namespace | chomp::homology |
This namespace contains the core of the homology computation procedures and related classes and templates contained in the CHomP C++ library. | |
Functions | |
int | chomp::homology::acyclic (int dim, BitField &b) |
Checks whether this cube's nieghbors form an acyclic set. | |
template<class tCube > | |
bool | chomp::homology::acyclic (const hashedset< tCube > &cset) |
Checks thoroughly whether the given set of cubes is acyclic. | |
template<class tCube , class tCubeSet1 , class tCubeSet2 > | |
bool | chomp::homology::acyclic (const tCube &q, int dim, const tCubeSet1 &cset, BitField *b, int_t maxneighbors, tCubeSet2 *neighbors) |
Verifies the acyclicity of a neighborhood of the given cube. | |
template<class tCube , class tCubeSet > | |
bool | chomp::homology::acyclic (const tCube &q, int dim, const tCubeSet &cset, BitField *b, int_t maxneighbors) |
Verifies the acyclicity of a neighborhood of the given cube. | |
template<class tCube > | |
bool | chomp::homology::acyclic_rel (const tCube &q, int dim, const hashedset< tCube > &cset, const hashedset< tCube > &other, BitField *b, int_t maxneighbors, hashedset< tCube > *neighbors_main, hashedset< tCube > *neighbors_other) |
Verifies whether a cube from the other set can be removed. | |
template<class tCube , class tCell > | |
int_t | chomp::homology::computeimage (hashedset< tCube > &img, const tCell &face, const mvmap< tCube, tCube > &map, const hashedset< tCube > &cset, const tCube &ignore) |
Computes the image of the face under the combinatorial cubical multivalued map, but doesn't take the given cube into consideration. | |
template<class tCube > | |
bool | chomp::homology::remainsacyclic (const mvmap< tCube, tCube > &map, const tCube &q, const hashedset< tCube > &cset1, const hashedset< tCube > *cset2=0) |
Verifies if the map remains acyclic after the addition or removal of the given cube to/from the union of the first and the second set. | |
template<class tCube , class tCubeSet > | |
void | chomp::homology::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. | |
template<class tCube > | |
int_t | chomp::homology::cubreducequiet (const hashedset< tCube > &maincset, hashedset< tCube > &cset, bool quiet=true) |
Reduce the set 'cset' towards 'maincset'. | |
template<class tCube > | |
int_t | chomp::homology::cubreduce (const hashedset< tCube > &maincset, hashedset< tCube > &cset) |
Reduces a pair of sets of cubes for relative homology computation. | |
template<class tCube > | |
int_t | chomp::homology::cubreducequiet (hashedset< tCube > &cset, hashedset< tCube > &other, mvmap< tCube, tCube > &map, const hashedset< tCube > &keep, bool quiet=true) |
Reduces a pair of sets of cubes for relative homology computation. | |
template<class tCube > | |
int_t | chomp::homology::cubreduce (hashedset< tCube > &cset, hashedset< tCube > &other, mvmap< tCube, tCube > &cubmap, const hashedset< tCube > &keep) |
Reduces a pair of sets of cubes for relative homology computation. | |
template<class tCube > | |
int_t | chomp::homology::cubreducequiet (hashedset< tCube > &cset, hashedset< tCube > &other, const hashedset< tCube > &keep, bool quiet=true) |
Reduces a pair of sets of cubes for relative homology computation. | |
template<class tCube > | |
int_t | chomp::homology::cubreduce (hashedset< tCube > &cset, hashedset< tCube > &other, const hashedset< tCube > &keep) |
Reduces a pair of sets of cubes for relative homology computation. | |
template<class tCube > | |
int_t | chomp::homology::cubexpand (hashedset< tCube > &cset, hashedset< tCube > &other, bool quiet=false) |
Expands the set 'other' towards 'cset' without changing the homology of (cset + other, other). | |
template<class tCube > | |
int_t | chomp::homology::cubexpand (hashedset< tCube > &cset, hashedset< tCube > &other, hashedset< tCube > &imgsrc, hashedset< tCube > &img, const mvmap< tCube, tCube > &map, bool indexmap, bool checkacyclic, bool quiet=false) |
Expands the set 'other' towards 'cset' without changing the homology of (cset + other, other). |
This file contains various procedures defined on cubical sets and related to some combinatorial operations or homology computation.
Definition in file cubisets.h.