#include <conindex.h>
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 IndexPair * | cf |
| 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). | |
The index pair object is used to get the cubical index pair.
Definition at line 691 of file conindex.h.
| 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.
| 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.
| ConleyIndex< IndexPair, euclidom >::~ConleyIndex | ( | ) | [inline] |
The destructor.
Definition at line 874 of file conindex.h.
References ConleyIndex< IndexPair, euclidom >::indmap.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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().
| 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.
| 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.
| 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.
| 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().
| 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.
| 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.
| 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.
| 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.
| 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().
| 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().
| 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().
| std::ostream& operator<< | ( | std::ostream & | out, | |
| const ConleyIndex< IndexPair, euclidom > & | c | |||
| ) | [friend] |
Converts the Conley index to a string (without the index pair).
| std::istream& operator>> | ( | std::istream & | in, | |
| ConleyIndex< IndexPair, euclidom > & | c | |||
| ) | [friend] |
Retrieves the Conley index from a string (without the index pair).
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().
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().
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().
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().
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().
1.5.3