ConleyIndex< IndexPair, euclidom > Class Template Reference

The class that computes and returns properties of the Conley index. More...

#include <conindex.h>

List of all members.

Public Member Functions

 ConleyIndex (const IndexPair *c=0)
 The default constructor.
 ConleyIndex (const ConleyIndex< IndexPair, euclidom > &c)
 The copy constructor.
 ~ConleyIndex ()
 The destructor.
ConleyIndex
< IndexPair,
euclidom > & 
operator= (const ConleyIndex< IndexPair, euclidom > &c)
 The assignment operator.
void setIndexPair (const IndexPair *f)
 Sets the index pair to be used to compute the Conley index.
int compute (bool twolayer=false)
 Computes the Conley index.
int reduce (bool shrink=true)
 Reduces the index map using some shift equivalences to certain extent.
void truncate (int newlevel)
 Truncates the Conley index to the new top level.
int eigenvalues (int level, std::vector< double > &Re, std::vector< double > &Im, bool nonzero=true, bool sorted=true) const
 Computes the eigenvalues of the index map.
bool trivial () const
 Verifies if the index is trivial.
int BettiNumber (int n) const
 Retrieves the nth Betti number.
euclidom Coefficient (int n, int i) const
 Retrieves the 'i'th [torsion] coefficient at the nth level.
int dim () const
 Retrieves the top level, or the maximal dimension of the index.
const
chomp::homology::mmatrix
< euclidom > * 
Map (int n) const
 Retrieves the matrix of the index map at the given level.
std::string MapString (int n, const char *newline="\n") const
 Retrieves a human-readable text representation of the map.
std::string EigenString (int n) const
 Retrieves a human-readable text showing the eigenvalues.
std::string HomString () const
 Retrieves a human-readable text representation of the homology.
void define (const int *betti, const chomp::homology::mmatrix< euclidom > *matr, int _toplevel)
 Defines the Conley index by the given Betti numbers and the given maps in homology.
void define (const int *betti, int _toplevel)
 Defines the Conley index by the given Betti numbers and adds the identity map.

Static Private Member Functions

static double round (double x, double epsilon, double threshold)
 Rounds a real number to the given precision.

Private Attributes

const IndexPaircf
 An object that feeds this class with cubes.
int toplevel
 The number of the top homology level.
std::vector
< std::vector
< euclidom > > 
coef
 The torsion coefficients of the corresponding homology generators.
chomp::homology::mmatrix
< euclidom > * 
indmap
 The matrices of the index map at each level.
int nontrivialindex
 Variable that stores the tabulated information on whether the index is nontrivial.

Friends

std::ostream & operator<< (std::ostream &out, const ConleyIndex< IndexPair, euclidom > &c)
 Converts the Conley index to a string (without the index pair).
std::istream & operator>> (std::istream &in, ConleyIndex< IndexPair, euclidom > &c)
 Retrieves the Conley index from a string (without the index pair).


Detailed Description

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
class ConleyIndex< IndexPair, euclidom >

The class that computes and returns properties of the Conley index.

The index pair object is used to get the cubical index pair.

Definition at line 691 of file conindex.h.


Constructor & Destructor Documentation

template<class IndexPair, class euclidom>
ConleyIndex< IndexPair, euclidom >::ConleyIndex ( const IndexPair c = 0  )  [inline]

The default constructor.

Definition at line 827 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::cf, ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
ConleyIndex< IndexPair, euclidom >::ConleyIndex ( const ConleyIndex< IndexPair, euclidom > &  c  )  [inline]

The copy constructor.

Definition at line 838 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::cf, ConleyIndex< IndexPair, euclidom >::coef, ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
ConleyIndex< IndexPair, euclidom >::~ConleyIndex (  )  [inline]

The destructor.

Definition at line 874 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::indmap.


Member Function Documentation

template<class IndexPair, class euclidom>
ConleyIndex< IndexPair, euclidom > & ConleyIndex< IndexPair, euclidom >::operator= ( const ConleyIndex< IndexPair, euclidom > &  c  )  [inline]

The assignment operator.

Definition at line 856 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::cf, ConleyIndex< IndexPair, euclidom >::coef, ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
void ConleyIndex< IndexPair, euclidom >::setIndexPair ( const IndexPair f  )  [inline]

Sets the index pair to be used to compute the Conley index.

Definition at line 883 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::cf.

template<class IndexPair, class euclidom>
int ConleyIndex< IndexPair, euclidom >::compute ( bool  twolayer = false  )  [inline]

Computes the Conley index.

If requested, uses the two-layer construction. Otherwise, first tries the flat model, and switches to the two-layer construction only in the case of failure.

Definition at line 1023 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::cf, ConleyIndex< IndexPair, euclidom >::coef, ConleyIndex< IndexPair, euclidom >::dim(), ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
int ConleyIndex< IndexPair, euclidom >::reduce ( bool  shrink = true  )  [inline]

Reduces the index map using some shift equivalences to certain extent.

Shrinks the matrices and generators if requested to.

Definition at line 1266 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef, ConleyIndex< IndexPair, euclidom >::define(), ConleyIndex< IndexPair, euclidom >::indmap, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
void ConleyIndex< IndexPair, euclidom >::truncate ( int  newlevel  )  [inline]

Truncates the Conley index to the new top level.

Definition at line 1403 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
int ConleyIndex< IndexPair, euclidom >::eigenvalues ( int  level,
std::vector< double > &  Re,
std::vector< double > &  Im,
bool  nonzero = true,
bool  sorted = true 
) const [inline]

Computes the eigenvalues of the index map.

The eigenvalues are appended to the given vectors of doubles with the "push_back" method. Returns the number of eigenvalues or -1 in case of failure.

Definition at line 1414 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef, dgeev_(), ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, ConleyIndex< IndexPair, euclidom >::round(), and ConleyIndex< IndexPair, euclidom >::toplevel.

Referenced by ConleyIndex< IndexPair, euclidom >::EigenString(), and ConleyIndex< IndexPair, euclidom >::trivial().

template<class IndexPair, class euclidom>
bool ConleyIndex< IndexPair, euclidom >::trivial (  )  const [inline]

Verifies if the index is trivial.

Returns true if yes, false if it is non-trivial. Note: This information is tabulated.

Definition at line 1541 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::eigenvalues(), ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
int ConleyIndex< IndexPair, euclidom >::BettiNumber ( int  n  )  const [inline]

Retrieves the nth Betti number.

Definition at line 907 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
euclidom ConleyIndex< IndexPair, euclidom >::Coefficient ( int  n,
int  i 
) const [inline]

Retrieves the 'i'th [torsion] coefficient at the nth level.

Returns 0 if 'i' is beyond the available scope.

Definition at line 930 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
int ConleyIndex< IndexPair, euclidom >::dim (  )  const [inline]

Retrieves the top level, or the maximal dimension of the index.

The numbers of available levels are from 0 to dim inclusive. Returns -1 if the index is undefined.

Definition at line 943 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::toplevel.

Referenced by ConleyIndex< IndexPair, euclidom >::compute().

template<class IndexPair, class euclidom>
const chomp::homology::mmatrix< euclidom > * ConleyIndex< IndexPair, euclidom >::Map ( int  n  )  const [inline]

Retrieves the matrix of the index map at the given level.

Returns 0 if the map at this level is zero.

Definition at line 921 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::indmap, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
std::string ConleyIndex< IndexPair, euclidom >::MapString ( int  n,
const char *  newline = "\n" 
) const [inline]

Retrieves a human-readable text representation of the map.

Definition at line 949 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::indmap, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
std::string ConleyIndex< IndexPair, euclidom >::EigenString ( int  n  )  const [inline]

Retrieves a human-readable text showing the eigenvalues.

Definition at line 1564 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::eigenvalues(), ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

template<class IndexPair, class euclidom>
std::string ConleyIndex< IndexPair, euclidom >::HomString (  )  const [inline]

Retrieves a human-readable text representation of the homology.

Definition at line 974 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef.

template<class IndexPair, class euclidom>
void ConleyIndex< IndexPair, euclidom >::define ( const int *  betti,
const chomp::homology::mmatrix< euclidom > *  matr,
int  _toplevel 
) [inline]

Defines the Conley index by the given Betti numbers and the given maps in homology.

Definition at line 1605 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::coef, ConleyIndex< IndexPair, euclidom >::indmap, ConleyIndex< IndexPair, euclidom >::nontrivialindex, and ConleyIndex< IndexPair, euclidom >::toplevel.

Referenced by ConleyIndex< IndexPair, euclidom >::define(), operator>>(), and ConleyIndex< IndexPair, euclidom >::reduce().

template<class IndexPair, class euclidom>
void ConleyIndex< IndexPair, euclidom >::define ( const int *  betti,
int  _toplevel 
) [inline]

Defines the Conley index by the given Betti numbers and adds the identity map.

Definition at line 1645 of file conindex.h.

References ConleyIndex< IndexPair, euclidom >::define().

template<class IndexPair, class euclidom>
double ConleyIndex< IndexPair, euclidom >::round ( double  x,
double  epsilon,
double  threshold 
) [inline, static, private]

Rounds a real number to the given precision.

If the absolute value of the number is below the given threshold then the number is truncated to 0.

Definition at line 890 of file conindex.h.

Referenced by ConleyIndex< IndexPair, euclidom >::eigenvalues().


Friends And Related Function Documentation

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
std::ostream& operator<< ( std::ostream &  out,
const ConleyIndex< IndexPair, euclidom > &  c 
) [friend]

Converts the Conley index to a string (without the index pair).

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
std::istream& operator>> ( std::istream &  in,
ConleyIndex< IndexPair, euclidom > &  c 
) [friend]

Retrieves the Conley index from a string (without the index pair).


Member Data Documentation

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
const IndexPair* ConleyIndex< IndexPair, euclidom >::cf [private]

An object that feeds this class with cubes.

Definition at line 771 of file conindex.h.

Referenced by ConleyIndex< IndexPair, euclidom >::compute(), ConleyIndex< IndexPair, euclidom >::ConleyIndex(), ConleyIndex< IndexPair, euclidom >::operator=(), and ConleyIndex< IndexPair, euclidom >::setIndexPair().

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
int ConleyIndex< IndexPair, euclidom >::toplevel [private]

The number of the top homology level.

Definition at line 774 of file conindex.h.

Referenced by ConleyIndex< IndexPair, euclidom >::BettiNumber(), ConleyIndex< IndexPair, euclidom >::Coefficient(), ConleyIndex< IndexPair, euclidom >::compute(), ConleyIndex< IndexPair, euclidom >::ConleyIndex(), ConleyIndex< IndexPair, euclidom >::define(), ConleyIndex< IndexPair, euclidom >::dim(), ConleyIndex< IndexPair, euclidom >::EigenString(), ConleyIndex< IndexPair, euclidom >::eigenvalues(), ConleyIndex< IndexPair, euclidom >::Map(), ConleyIndex< IndexPair, euclidom >::MapString(), operator<<(), ConleyIndex< IndexPair, euclidom >::operator=(), operator>>(), ConleyIndex< IndexPair, euclidom >::reduce(), ConleyIndex< IndexPair, euclidom >::trivial(), and ConleyIndex< IndexPair, euclidom >::truncate().

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
std::vector<std::vector<euclidom> > ConleyIndex< IndexPair, euclidom >::coef [private]

The torsion coefficients of the corresponding homology generators.

If delta () == 1, then no torsion.

Definition at line 778 of file conindex.h.

Referenced by ConleyIndex< IndexPair, euclidom >::BettiNumber(), ConleyIndex< IndexPair, euclidom >::Coefficient(), ConleyIndex< IndexPair, euclidom >::compute(), ConleyIndex< IndexPair, euclidom >::ConleyIndex(), ConleyIndex< IndexPair, euclidom >::define(), ConleyIndex< IndexPair, euclidom >::eigenvalues(), ConleyIndex< IndexPair, euclidom >::HomString(), operator<<(), ConleyIndex< IndexPair, euclidom >::operator=(), operator>>(), ConleyIndex< IndexPair, euclidom >::reduce(), and ConleyIndex< IndexPair, euclidom >::truncate().

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
chomp::homology::mmatrix<euclidom>* ConleyIndex< IndexPair, euclidom >::indmap [private]

The matrices of the index map at each level.

Definition at line 781 of file conindex.h.

Referenced by ConleyIndex< IndexPair, euclidom >::compute(), ConleyIndex< IndexPair, euclidom >::ConleyIndex(), ConleyIndex< IndexPair, euclidom >::define(), ConleyIndex< IndexPair, euclidom >::EigenString(), ConleyIndex< IndexPair, euclidom >::eigenvalues(), ConleyIndex< IndexPair, euclidom >::Map(), ConleyIndex< IndexPair, euclidom >::MapString(), operator<<(), ConleyIndex< IndexPair, euclidom >::operator=(), operator>>(), ConleyIndex< IndexPair, euclidom >::reduce(), and ConleyIndex< IndexPair, euclidom >::~ConleyIndex().

template<class IndexPair = EmptyIndexPair, class euclidom = chomp::homology::integer>
int ConleyIndex< IndexPair, euclidom >::nontrivialindex [mutable, private]

Variable that stores the tabulated information on whether the index is nontrivial.

Values used: -1 = unknown, 0 = trivial, 1 = nontrivial.

Definition at line 800 of file conindex.h.

Referenced by ConleyIndex< IndexPair, euclidom >::compute(), ConleyIndex< IndexPair, euclidom >::ConleyIndex(), ConleyIndex< IndexPair, euclidom >::define(), ConleyIndex< IndexPair, euclidom >::EigenString(), ConleyIndex< IndexPair, euclidom >::eigenvalues(), ConleyIndex< IndexPair, euclidom >::operator=(), operator>>(), and ConleyIndex< IndexPair, euclidom >::trivial().


The documentation for this class was generated from the following file:
Generated on Sun Mar 28 17:47:58 2010 for The Conley-Morse Graphs Software by  doxygen 1.5.3