|
Regina Calculation Engine
|
Represents a homomorphism of finitely generated abelian groups. More...
#include <algebra/markedabeliangroup.h>
Public Member Functions | |
| HomMarkedAbelianGroup (const MarkedAbelianGroup &dom, const MarkedAbelianGroup &ran, const MatrixInt &mat) | |
| Constructs a homomorphism from two marked abelian groups and a matrix that indicates where the generators are sent. More... | |
| HomMarkedAbelianGroup (const HomMarkedAbelianGroup &h) | |
| Copy constructor. More... | |
| ~HomMarkedAbelianGroup () | |
| Destructor. More... | |
| bool | isChainMap (const HomMarkedAbelianGroup &other) const |
| Determines whether this and the given homomorphism together form a chain map. More... | |
| bool | isCycleMap () const |
| Is this at least a cycle map? If not, pretty much any further computations you try with this class will be give you nothing more than carefully-crafted garbage. More... | |
| bool | isEpic () const |
| Is this an epic homomorphism? More... | |
| bool | isMonic () const |
| Is this a monic homomorphism? More... | |
| REGINA_INLINE_REQUIRED bool | isIsomorphism () const |
| Is this an isomorphism? More... | |
| bool | isZero () const |
| Is this the zero map? More... | |
| bool | isIdentity () const |
| Is this the identity automorphism? More... | |
| REGINA_INLINE_REQUIRED const MarkedAbelianGroup & | kernel () const |
| Returns the kernel of this homomorphism. More... | |
| REGINA_INLINE_REQUIRED const MarkedAbelianGroup & | cokernel () const |
| Returns the cokernel of this homomorphism. More... | |
| REGINA_INLINE_REQUIRED const MarkedAbelianGroup & | image () const |
| Returns the image of this homomorphism. More... | |
| void | writeTextShort (std::ostream &out) const |
| Short text representation. More... | |
| void | writeTextLong (std::ostream &out) const |
| A more detailed text representation of the homomorphism. More... | |
| const MarkedAbelianGroup & | domain () const |
| Returns the domain of this homomorphism. More... | |
| const MarkedAbelianGroup & | range () const |
| Returns the range of this homomorphism. More... | |
| const MatrixInt & | definingMatrix () const |
| Returns the defining matrix for the homomorphism. More... | |
| const MatrixInt & | reducedMatrix () const |
| Returns the internal reduced matrix representing the homomorphism. More... | |
| std::vector< Integer > | evalCC (const std::vector< Integer > &input) const |
| Evaluate the image of a vector under this homomorphism, using the original chain complexes' coordinates. More... | |
| std::vector< Integer > | evalSNF (const std::vector< Integer > &input) const |
| Evaluate the image of a vector under this homomorphism, using the Smith normal form coordinates. More... | |
| std::unique_ptr< HomMarkedAbelianGroup > | inverseHom () const |
| Returns the inverse to a HomMarkedAbelianGroup. More... | |
| std::unique_ptr< HomMarkedAbelianGroup > | operator* (const HomMarkedAbelianGroup &X) const |
| Returns the composition of two homomorphisms. More... | |
| std::unique_ptr< HomMarkedAbelianGroup > | torsionSubgroup () const |
| Returns a HomMarkedAbelianGroup representing the induced map on the torsion subgroups. More... | |
| void | writeReducedMatrix (std::ostream &out) const |
| Writes a human-readable version of the reduced matrix to the given output stream. More... | |
| HomMarkedAbelianGroup & | operator= (const HomMarkedAbelianGroup &)=delete |
| std::string | str () const |
| Returns a short text representation of this object. More... | |
| std::string | utf8 () const |
| Returns a short text representation of this object using unicode characters. More... | |
| std::string | detail () const |
| Returns a detailed text representation of this object. More... | |
Represents a homomorphism of finitely generated abelian groups.
One initializes such a homomorphism by providing:
So for example, if the domain was initialized by the chain complex Z^a –A--> Z^b –B--> Z^c with mod p coefficients, and the range was initialized by Z^d –D--> Z^e –E--> Z^f with mod q coefficients, then the matrix needs to be an e-by-b matrix. Furthermore, you only obtain a well-defined homomorphism if this matrix extends to a cycle map, which this class assumes but which the user can confirm with isCycleMap(). Moreover, q should divide p: this allows for q > 0 and p = 0, which means the domain has Z coefficients and the range has mod q coefficients.
|
inherited |
Returns a detailed text representation of this object.
This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.
|
inherited |
Returns a short text representation of this object.
This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.
str().
|
inherited |
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.