The Original CHomP Software
Classes | Functions
chomp::homengin Namespace Reference

This namespace contains a multi-engine interface to the homology computation procedures. More...

Classes

class  algstruct
 An algebraic structure that represents a finitely generated Abelian group with gradation. More...
 
class  bitcodefile
 Text-encoded bitcodes. More...
 
class  BK_LTengine
 The homology engine that uses the Bill Kalies' engine: the version which uses the lookup table for reduction. More...
 
class  BKengine
 The homology engine that uses the Bill Kalies' engine. More...
 
class  bmdfile
 Marian Mrozek's BMD binary file as a set of full cubes. More...
 
class  bmdheader
 This class helps interpret files in the BMD format defined by Marian Mrozek. More...
 
class  cellistfile
 Text list of cubical cells. More...
 
class  cubfile
 An abstract class that is inherited by all the cubical sets. More...
 
class  cubfile_traits
 This class defines some common properties of the corresponding classes which define various types of sets of cubes. More...
 
class  cubitmap
 A bitmap buffer stored in the memory, not in a file. More...
 
class  cublistfile
 Text list of cubes. More...
 
class  cubtype
 A class that holds pointers to the traits of all the cubical file types. More...
 
class  engine
 An abstract class that is inherited by all the homology engines. More...
 
class  MM_ARengine
 The MM_AR engine. More...
 
class  MM_ASLTengine
 The MM_ASLT engine. More...
 
class  MM_CRengine
 The MM_CR engine. More...
 
class  MMengine
 A general class for the MM* bitmap-based engines. More...
 
class  PPengine
 The homology engine that uses lists of cubes (Pawel Pilarczyk). More...
 
class  winbmpfile
 Windows bitmap as a set of full cubes. More...
 

Functions

template<class euclidom >
const char * ringsymbol ()
 
template<>
const char * ringsymbol< int > ()
 
template<class euclidom >
std::ostream & operator<< (std::ostream &out, const algstruct< euclidom > &s)
 Outputs the structure to the output stream in a human-readable form. More...
 
template<class euclidom >
void hom2struct (const chomp::homology::chain< euclidom > *hom, int maxlevel, algstruct< euclidom > &h)
 Translates the PP's homology representation to the algebraic structure. More...
 
template<class euclidom >
void sign2struct (const CRef< HomologySignature< int > > &homSignCR, algstruct< euclidom > &h)
 
std::ostream & operator<< (std::ostream &out, const bmdheader &header)
 Writes the information collected in the BMD header class to an output stream. More...
 

Detailed Description

This namespace contains a multi-engine interface to the homology computation procedures.

Each homology algorithm is called an engine, and the interface defined here allows one to use various algorithms in a uniform way to compute the the homology of cubical sets.

Function Documentation

◆ hom2struct()

template<class euclidom >
void chomp::homengin::hom2struct ( const chomp::homology::chain< euclidom > *  hom,
int  maxlevel,
algstruct< euclidom > &  h 
)

Translates the PP's homology representation to the algebraic structure.

Definition at line 296 of file algstruct.h.

298{
299 for (int q = 0; q <= maxlevel; ++ q)
300 {
301 const chomp::homology::chain<euclidom> &c = hom [q];
302 for (int i = 0; i < c. size (); ++ i)
303 {
304 const euclidom &e = c. coef (i);
305 if (e. delta () == 1)
306 h. addBetti (q, 1);
307 else
308 h. addTorsion (q, e);
309 }
310 }
311 return;
312} /* hom2struct */
This class defines objects which represent chains as finite sequences of elements identified by integ...
Definition: chains.h:94

◆ operator<<() [1/2]

template<class euclidom >
std::ostream & chomp::homengin::operator<< ( std::ostream &  out,
const algstruct< euclidom > &  s 
)
inline

Outputs the structure to the output stream in a human-readable form.

Definition at line 288 of file algstruct.h.

290{
291 return s. describe (out);
292} /* operator << */

◆ operator<<() [2/2]

std::ostream & chomp::homengin::operator<< ( std::ostream &  out,
const bmdheader header 
)

Writes the information collected in the BMD header class to an output stream.

◆ ringsymbol()

template<class euclidom >
const char * chomp::homengin::ringsymbol ( )
inline

Definition at line 216 of file algstruct.h.

217{
218 return euclidom::ringsymbol ();
219} /* ringsymbol */
const char * ringsymbol()
Definition: algstruct.h:216

References ringsymbol().

Referenced by ringsymbol(), chomp::homology::show_homology(), and chomp::homology::ShowHomology().

◆ ringsymbol< int >()

template<>
const char * chomp::homengin::ringsymbol< int > ( )
inline

Definition at line 222 of file algstruct.h.

223{
224 return "Z";
225} /* ringsymbol */

◆ sign2struct()

template<class euclidom >
void chomp::homengin::sign2struct ( const CRef< HomologySignature< int > > &  homSignCR,
algstruct< euclidom > &  h 
)

Definition at line 315 of file algstruct.h.

317{
318 int dim = (*homSignCR). topDim ();
319 for (int i = 0; i <= dim; ++ i)
320 {
321 h. setBetti (i, (*homSignCR). bettiNumber (i));
322 FGAGrpSignature<int> &s = (*homSignCR) [i];
323 for (int j = 0; j < s. numberOfTorsionCoefs (); ++ j)
324 {
325 euclidom e;
326 e = s. torsionCoef (j);
327 h. addTorsion (i, e);
328 }
329 }
330 return;
331} /* sign2struct */