Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

AbelianGroupRep Class Reference

#include <AbelianGroupRep.h>

Inheritance diagram for AbelianGroupRep::

PureRep RefCounter AbelianSGPresentationRep List of all members.

Public Methods

 AbelianGroupRep (const FPGroup &G, bool makeFile=false)
void computeCyclicDecomposition ()
void findPrimaryBasis ()
bool haveCyclicDecomposition () const
bool havePrimaryDecomposition () const
Chars getFileName () const
Chars getFileNameOfPDGens () const
const FPGroup getFPGroup () const
SetOf<WordgetAllRelators () const
AbelianWord oldInAbelianForm (const Word &w) const
int rankOfFreeAbelianFactor () const
VectorOf<Integer> invariants () const
VectorOf<AbelianWordoldToNewGens () const
VectorOf<AbelianWordnewToOldGens () const
AbelianGroupRep getCanonicalSmithPresentation () const
Integer order () const
bool isTrivial () const
bool isFree () const
bool isomorphicTo (const AbelianGroupRep &G) const
AbelianGroupRep computeIntegralHomology (int n) const
Integer orderOfTheTorsionSubgroup () const
AbelianSGPresentationRep makeSubgroupPresentation (const VectorOf< Word > &vG) const
VectorOf<WordfindSubgroupIsolator (const VectorOf< Word > &vG) const
VectorOf<WordfindVirtFreeComplementOfSG (const VectorOf< Word > &vG) const
VectorOf<WordjoinSubgroups (const VectorOf< Word > &vG1, const VectorOf< Word > &vG2) const
VectorOf<WordfindSubgIntersection (const VectorOf< Word > &vG1, const VectorOf< Word > &vG2, File &file) const
bool isPureCyclSubgroup (const Word &w) const
bool areEqual (const Word &, const Word &) const
bool isTrivial (const Word &) const
Integer orderOfElt (const Word &) const
AbelianWord newToOldGens (const AbelianWord &) const
AbelianWord oldToNewGens (const AbelianWord &) const
AbelianWord findEltPrimeForm (const Word &w) const
AbelianWord pBlockOfElt (const AbelianWord &w, Integer p) const
Integer pHeightOfElt (const Word &w, const Integer &p, Integer orderofElt) const
Integer powerOfEltInSubgroup (const Word &w, const VectorOf< Word > &sGroup) const
bool isEltProperPower (const Word &w) const
void abelianMaximalRoot (const Word &w, Word &maxRoot, Integer &maxExp) const
AbelianWord primeFormInOldGens (const AbelianWord &w) const
int isPowerOfSecond (const Word &word1, const Word &word2) const
Bool isEpimorphism (const VectorOf< Word > &V) const
int orderOfAuto (const VectorOf< Word > &V) const
VectorOf<WordinverseAuto (const VectorOf< Word > &V) const
VectorOf<WordfixedPointsOfAuto (const VectorOf< Word > &v) const
void printOn (ostream &) const
void printWordInNewGens (ostream &, const AbelianWord &) const
void printInPrimaryForm (ostream &ostr, const AbelianWord &aw) const
void printPrimaryDec (ostream &ostr) const
virtual void write (ostream &ostr) const
virtual void read (istream &istr)
AbelianGroupRep* clone () const

Protected Methods

int numOfGensInTorsionPartOfPD () const

Protected Attributes

Chars theFileName
Chars theFileNameOfPD

Private Methods

int invariantToNewGens (int inv, Integer orderOfCyclic, int stPos, Integer power=1)
void fillTransformationVectors ()
void addColumn (int i, int j, Integer k)
void swapColumns (int i, int j)
void swapGenColumns (int i, int j)
void canoniseInvariants (int i, int j)
void swapInvariants (int i, int j)
void makeTransformationMatrices ()
void makeMainMatrix ()
void destroyMatrices ()
virtual void makeFile ()
virtual void makeFileOfPDGens ()
AbelianSGPresentationRep buildTorsionFreePresentation (Matrix< Integer > &gensTransformation, const VectorOf< Word > &vG) const
void sortVector (DArray< Integer > &vc, int colSort, int start, int finish)
void sortPrimeDecom (DArray< Integer > &m)
void minimizeWordInNewGens (AbelianWord &w) const
bool isAllZero (int from, int to, MatrixRow< Integer > &vc) const
Bool matrixMult (const Matrix< Integer > &m, bool haveTorsion) const

Private Attributes

const FPGroup theGroup
bool bMakeFile
bool bHaveCyclicDecomposition
int numOfNewGens
int rankOfFreePart
VectorOf<Integer> theInvariants
VectorOf<AbelianWordtheNewToOldGens
VectorOf<AbelianWordtheOldToNewGens
bool primeBasisFound
DArray<Integer> primeBasicMatrix
Integer** matrix
int height
int width
Integer** newToOldGensMatrix
Integer** oldToNewGensMatrix

Constructor & Destructor Documentation

AbelianGroupRep::AbelianGroupRep ( const FPGroup & G,
bool makeFile = false )
 

Referenced by clone().


Member Function Documentation

void AbelianGroupRep::computeCyclicDecomposition ( )
 

void AbelianGroupRep::findPrimaryBasis ( )
 

bool AbelianGroupRep::haveCyclicDecomposition ( ) const [inline]
 

Definition at line 74 of file AbelianGroupRep.h.

bool AbelianGroupRep::havePrimaryDecomposition ( ) const [inline]
 

Definition at line 77 of file AbelianGroupRep.h.

Chars AbelianGroupRep::getFileName ( ) const
 

Chars AbelianGroupRep::getFileNameOfPDGens ( ) const
 

const FPGroup AbelianGroupRep::getFPGroup ( ) const [inline]
 

Definition at line 88 of file AbelianGroupRep.h.

SetOf<Word> AbelianGroupRep::getAllRelators ( ) const
 

AbelianWord AbelianGroupRep::oldInAbelianForm ( const Word & w ) const [inline]
 

Definition at line 96 of file AbelianGroupRep.h.

int AbelianGroupRep::rankOfFreeAbelianFactor ( ) const
 

VectorOf<Integer> AbelianGroupRep::invariants ( ) const
 

VectorOf<AbelianWord> AbelianGroupRep::oldToNewGens ( ) const
 

VectorOf<AbelianWord> AbelianGroupRep::newToOldGens ( ) const
 

AbelianGroupRep AbelianGroupRep::getCanonicalSmithPresentation ( ) const
 

Integer AbelianGroupRep::order ( ) const
 

bool AbelianGroupRep::isTrivial ( ) const
 

bool AbelianGroupRep::isFree ( ) const
 

bool AbelianGroupRep::isomorphicTo ( const AbelianGroupRep & G ) const
 

AbelianGroupRep AbelianGroupRep::computeIntegralHomology ( int n ) const
 

Integer AbelianGroupRep::orderOfTheTorsionSubgroup ( ) const
 

AbelianSGPresentationRep AbelianGroupRep::makeSubgroupPresentation ( const VectorOf< Word > & vG ) const
 

VectorOf<Word> AbelianGroupRep::findSubgroupIsolator ( const VectorOf< Word > & vG ) const
 

VectorOf<Word> AbelianGroupRep::findVirtFreeComplementOfSG ( const VectorOf< Word > & vG ) const
 

VectorOf<Word> AbelianGroupRep::joinSubgroups ( const VectorOf< Word > & vG1,
const VectorOf< Word > & vG2 ) const
 

VectorOf<Word> AbelianGroupRep::findSubgIntersection ( const VectorOf< Word > & vG1,
const VectorOf< Word > & vG2,
File & file ) const
 

bool AbelianGroupRep::isPureCyclSubgroup ( const Word & w ) const
 

bool AbelianGroupRep::areEqual ( const Word &,
const Word & ) const
 

bool AbelianGroupRep::isTrivial ( const Word & ) const
 

Integer AbelianGroupRep::orderOfElt ( const Word & ) const
 

AbelianWord AbelianGroupRep::newToOldGens ( const AbelianWord & ) const
 

AbelianWord AbelianGroupRep::oldToNewGens ( const AbelianWord & ) const
 

AbelianWord AbelianGroupRep::findEltPrimeForm ( const Word & w ) const
 

AbelianWord AbelianGroupRep::pBlockOfElt ( const AbelianWord & w,
Integer p ) const
 

Integer AbelianGroupRep::pHeightOfElt ( const Word & w,
const Integer & p,
Integer orderofElt ) const
 

Integer AbelianGroupRep::powerOfEltInSubgroup ( const Word & w,
const VectorOf< Word > & sGroup ) const
 

bool AbelianGroupRep::isEltProperPower ( const Word & w ) const
 

void AbelianGroupRep::abelianMaximalRoot ( const Word & w,
Word & maxRoot,
Integer & maxExp ) const
 

AbelianWord AbelianGroupRep::primeFormInOldGens ( const AbelianWord & w ) const
 

int AbelianGroupRep::isPowerOfSecond ( const Word & word1,
const Word & word2 ) const
 

Bool AbelianGroupRep::isEpimorphism ( const VectorOf< Word > & V ) const
 

int AbelianGroupRep::orderOfAuto ( const VectorOf< Word > & V ) const
 

VectorOf<Word> AbelianGroupRep::inverseAuto ( const VectorOf< Word > & V ) const
 

VectorOf<Word> AbelianGroupRep::fixedPointsOfAuto ( const VectorOf< Word > & v ) const
 

void AbelianGroupRep::printOn ( ostream & ) const
 

void AbelianGroupRep::printWordInNewGens ( ostream &,
const AbelianWord & ) const
 

void AbelianGroupRep::printInPrimaryForm ( ostream & ostr,
const AbelianWord & aw ) const
 

void AbelianGroupRep::printPrimaryDec ( ostream & ostr ) const
 

virtual void AbelianGroupRep::write ( ostream & ostr ) const [virtual]
 

Reimplemented in AbelianSGPresentationRep.

Referenced by AbelianSGPresentationRep::write().

virtual void AbelianGroupRep::read ( istream & istr ) [virtual]
 

Reimplemented in AbelianSGPresentationRep.

Referenced by AbelianSGPresentationRep::read().

AbelianGroupRep * AbelianGroupRep::clone ( ) const [inline, virtual]
 

Returns a pointer to a copy of the object. Should be implemented as a member which gives a new `deep-copy' by each representation derived from this; normally, by making it new CopyConstrutor(*this) with CopyConstructor doing `deep-copy' (`' because it is enough for the copy constructor to do logical deep copy).

Reimplemented from PureRep.

Reimplemented in AbelianSGPresentationRep.

Definition at line 296 of file AbelianGroupRep.h.

int AbelianGroupRep::numOfGensInTorsionPartOfPD ( ) const [inline, protected]
 

Definition at line 306 of file AbelianGroupRep.h.

int AbelianGroupRep::invariantToNewGens ( int inv,
Integer orderOfCyclic,
int stPos,
Integer power = 1 ) [private]
 

void AbelianGroupRep::fillTransformationVectors ( ) [private]
 

void AbelianGroupRep::addColumn ( int i,
int j,
Integer k ) [private]
 

void AbelianGroupRep::swapColumns ( int i,
int j ) [private]
 

void AbelianGroupRep::swapGenColumns ( int i,
int j ) [private]
 

void AbelianGroupRep::canoniseInvariants ( int i,
int j ) [private]
 

void AbelianGroupRep::swapInvariants ( int i,
int j ) [private]
 

void AbelianGroupRep::makeTransformationMatrices ( ) [private]
 

void AbelianGroupRep::makeMainMatrix ( ) [private]
 

void AbelianGroupRep::destroyMatrices ( ) [private]
 

virtual void AbelianGroupRep::makeFile ( ) [private, virtual]
 

Reimplemented in AbelianSGPresentationRep.

virtual void AbelianGroupRep::makeFileOfPDGens ( ) [private, virtual]
 

Reimplemented in AbelianSGPresentationRep.

AbelianSGPresentationRep AbelianGroupRep::buildTorsionFreePresentation ( Matrix< Integer > & gensTransformation,
const VectorOf< Word > & vG ) const [private]
 

void AbelianGroupRep::sortVector ( DArray< Integer > & vc,
int colSort,
int start,
int finish ) [private]
 

void AbelianGroupRep::sortPrimeDecom ( DArray< Integer > & m ) [private]
 

void AbelianGroupRep::minimizeWordInNewGens ( AbelianWord & w ) const [private]
 

bool AbelianGroupRep::isAllZero ( int from,
int to,
MatrixRow< Integer > & vc ) const [private]
 

Bool AbelianGroupRep::matrixMult ( const Matrix< Integer > & m,
bool haveTorsion ) const [private]
 


Member Data Documentation

Chars AbelianGroupRep::theFileName [protected]
 

Definition at line 300 of file AbelianGroupRep.h.

Chars AbelianGroupRep::theFileNameOfPD [protected]
 

Definition at line 303 of file AbelianGroupRep.h.

const FPGroup AbelianGroupRep::theGroup [private]
 

Definition at line 318 of file AbelianGroupRep.h.

bool AbelianGroupRep::bMakeFile [private]
 

Definition at line 321 of file AbelianGroupRep.h.

bool AbelianGroupRep::bHaveCyclicDecomposition [private]
 

Definition at line 324 of file AbelianGroupRep.h.

int AbelianGroupRep::numOfNewGens [private]
 

Definition at line 327 of file AbelianGroupRep.h.

int AbelianGroupRep::rankOfFreePart [private]
 

Definition at line 331 of file AbelianGroupRep.h.

VectorOf<Integer> AbelianGroupRep::theInvariants [private]
 

Definition at line 334 of file AbelianGroupRep.h.

VectorOf<AbelianWord> AbelianGroupRep::theNewToOldGens [private]
 

Definition at line 337 of file AbelianGroupRep.h.

VectorOf<AbelianWord> AbelianGroupRep::theOldToNewGens [private]
 

Definition at line 340 of file AbelianGroupRep.h.

bool AbelianGroupRep::primeBasisFound [private]
 

Definition at line 343 of file AbelianGroupRep.h.

DArray<Integer> AbelianGroupRep::primeBasicMatrix [private]
 

Definition at line 353 of file AbelianGroupRep.h.

Integer** AbelianGroupRep::matrix [private]
 

Definition at line 365 of file AbelianGroupRep.h.

int AbelianGroupRep::height [private]
 

Definition at line 366 of file AbelianGroupRep.h.

int AbelianGroupRep::width [private]
 

Definition at line 367 of file AbelianGroupRep.h.

Integer** AbelianGroupRep::newToOldGensMatrix [private]
 

Definition at line 368 of file AbelianGroupRep.h.

Integer** AbelianGroupRep::oldToNewGensMatrix [private]
 

Definition at line 369 of file AbelianGroupRep.h.


The documentation for this class was generated from the following file:
Generated at Tue Jun 19 09:49:46 2001 for Magnus Classes by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001