CAPD RedHom Library
ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > Class Template Reference

#include <capd/redAlg/stable/ReducibleFreeChainComplex.h>

Classes

class  ReducedPair
 
class  ReduciblePair
 

Public Types

typedef P_GeneratorCode GeneratorCode
 
typedef freeModuleType FreeModuleType
 
typedef freeModuleType::GeneratorType GeneratorType
 
typedef freeModuleType::MatrixType MatrixType
 
typedef freeModuleType::IntType IntType
 
typedef freeModuleType::MatrixType::ScalarType ScalarType
 
typedef ChainT< ChainContainer< GeneratorCode, ScalarType > > Chain
 
typedef Chain CoChain
 
typedef std::map< GeneratorCode, ChainGeneratorBoundaries
 
typedef std::map< GeneratorCode, CoChainGeneratorCoBoundaries
 
typedef std::vector< GeneratorBoundariesGradedGeneratorBoundaries
 
typedef std::vector< GeneratorCoBoundariesGradedGeneratorCoBoundaries
 
typedef int(ReducibleFreeChainComplex::* ReducibleFreeChainComplex_void_Ptr) ()
 

Public Member Functions

 ReducibleFreeChainComplex ()
 
template<typename freeModuleType2 >
 ReducibleFreeChainComplex (const FreeChainComplex< freeModuleType2 > &fcc)
 
template<typename GeneratorType2 >
 ReducibleFreeChainComplex (const std::vector< GeneratorType2 > &A_gens)
 
template<typename GeneratorType2 >
 ReducibleFreeChainComplex (const std::set< GeneratorType2 > &A_gensSet)
 
template<typename P_Set >
 ReducibleFreeChainComplex (const P_Set &A_set, bool A_storeReducedPairs=false)
 
template<typename Iterator , typename GeneratorData >
 ReducibleFreeChainComplex (Iterator begin, Iterator end, GeneratorData generatorData, bool A_storeReducedPairs=false)
 
 operator FreeChainComplex< freeModuleType > ()
 
int topDim ()
 
size_t size () const
 
void reducePair (int q, typename GeneratorBoundaries::iterator coFacePos, typename Chain::iterator facePos)
 
int reduce ()
 
int findMeasure (const int &coFaceDim, const GeneratorCode &coFace, const GeneratorCode &face)
 
void extractReduciblePairsInVicinityOf (int dim, GeneratorCode g, std::set< ReduciblePair > &source, std::list< ReduciblePair > &destination)
 
int reduceViaSort ()
 
int reduceViaLocalSort ()
 
bool reduceViaStack (unsigned int searchedCoboundrySize, int &pairsReduced)
 
void reduceFromBottom ()
 
bool removeSimpleHomologyGenerators (std::vector< std::vector< GeneratorCode > > &simpleHomologyGenerators)
 
void storeReducedPair (int A_coFaceDim, GeneratorCode A_coFace, GeneratorCode A_face, const Chain &A_bdy, const CoChain &A_cbdy, ScalarType A_lambda)
 
void reduce (Chain &A_chain)
 
void restore (Chain &A_chain)
 
template<typename Iterator , typename GeneratorData >
void init (Iterator begin, Iterator end, GeneratorData generatorData)
 

Public Attributes

GradedGeneratorBoundaries m_ggb
 
GradedGeneratorCoBoundaries m_ggCb
 
bool m_storeReducedPairs
 
std::vector< ReducedPairm_reducedPairs
 
size_t _size
 

Static Public Attributes

static const bool reducible = true
 

Friends

class ReducedPair
 
class ReduciblePair
 
void swap (ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > &A_rfcc1, ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > &A_rfcc2)
 
std::ostream & operator (std::ostream &out, const ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > &A_rfc)
 

Member Typedef Documentation

template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef ChainT<ChainContainer<GeneratorCode,ScalarType> > ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::Chain
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef Chain ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::CoChain
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef freeModuleType ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::FreeModuleType
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef std::map<GeneratorCode,Chain> ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::GeneratorBoundaries
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef std::map<GeneratorCode,CoChain> ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::GeneratorCoBoundaries
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef P_GeneratorCode ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::GeneratorCode
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef freeModuleType::GeneratorType ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::GeneratorType
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef std::vector<GeneratorBoundaries> ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::GradedGeneratorBoundaries
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef std::vector<GeneratorCoBoundaries> ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::GradedGeneratorCoBoundaries
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef freeModuleType::IntType ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::IntType
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef freeModuleType::MatrixType ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::MatrixType
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef int(ReducibleFreeChainComplex::* ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::ReducibleFreeChainComplex_void_Ptr) ()
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
typedef freeModuleType::MatrixType::ScalarType ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::ScalarType

Constructor & Destructor Documentation

template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::ReducibleFreeChainComplex ( )
inline

Member Function Documentation

template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
size_t ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::size ( ) const
inline

Friends And Related Function Documentation

template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
std::ostream& operator ( std::ostream &  out,
const ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > &  A_rfc 
)
friend
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
friend class ReducedPair
friend
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
friend class ReduciblePair
friend
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
void swap ( ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > &  A_rfcc1,
ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode > &  A_rfcc2 
)
friend

Member Data Documentation

template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
size_t ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::_size
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
GradedGeneratorBoundaries ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::m_ggb
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
GradedGeneratorCoBoundaries ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::m_ggCb
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
std::vector<ReducedPair> ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::m_reducedPairs
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
bool ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::m_storeReducedPairs
template<typename freeModuleType , typename P_GeneratorCode = typename freeModuleType::GeneratorType>
const bool ReducibleFreeChainComplex< freeModuleType, P_GeneratorCode >::reducible = true
static