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

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

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 297 of file algstruct.h.

{
        for (int q = 0; q <= maxlevel; ++ q)
        {
                const chomp::homology::chain<euclidom> &c = hom [q];
                for (int i = 0; i < c. size (); ++ i)
                {
                        const euclidom &e = c. coef (i);
                        if (e. delta () == 1)
                                h. addBetti (q, 1);
                        else
                                h. addTorsion (q, e);
                }
        }
        return;
} /* hom2struct */

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 289 of file algstruct.h.

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

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

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

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

Definition at line 217 of file algstruct.h.

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

{
        return euclidom::ringsymbol ();
} /* ringsymbol */

template<>
const char* chomp::homengin::ringsymbol< int > (  )  [inline]
template<class euclidom >
void chomp::homengin::sign2struct ( const CRef< HomologySignature > &  homSignCR,
algstruct< euclidom > &  h 
)

Definition at line 316 of file algstruct.h.

{
        int dim = (*homSignCR). topDim ();
        for (int i = 0; i <= dim; ++ i)
        {
                h. setBetti (i, (*homSignCR). bettiNumber (i));
                FGAGrpSignature &s = (*homSignCR) [i];
                for (int j = 0; j < s. numberOfTorsionCoefs (); ++ j)
                {
                        euclidom e;
                        e = s. torsionCoef (j);
                        h. addTorsion (i, e);
                }
        }
        return;
} /* sign2struct */