AlVin  1.0
A C++ implementation of the Vinberg's algorithm for Q, Q( sqrt(d) ) and Q( cos(2 pi / 7) )
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AlVin Class Referenceabstract

Main class for AlVin. More...

#include <alvin.h>

Inheritance diagram for AlVin:
Inheritance graph
[legend]
Collaboration diagram for AlVin:
Collaboration graph
[legend]

Public Member Functions

 AlVin (const string &strOuputMathematicalFormat, const bool &bWriteInfo, const bool &bDebug)
 Constructor for the parent AlVin object. More...
 
virtual bool PreRun ()=0
 Prepare the computations.
 
bool Run (unsigned int iMinVectors=0, unsigned int iMaxVectors=0, bool bLastCheckFV=true)
 Run the algo! More...
 
AlgebraicIntegeraiBilinearProduct (const vector< AlgebraicInteger * > &v1, const vector< AlgebraicInteger * > &v2)
 Compute the product between two vectors.
 
void print_iQF () const
 Print the quadratic form.
 
void print_vectors () const
 Print the found vectors.
 
vector< vector< unsigned int > > get_iCoxeterMatrix () const
 Return the Coxeter matrix.
 
unsigned int get_iDimension () const
 Return n, the dimension.
 
string get_strFinalInformation () const
 Return some information stored during the computations.
 
string get_strCoxeterMatrix () const
 Return the Coxeter matrix (string format; rows are separated by a
)
 
virtual string get_strField () const =0
 Return the field of definition of the current quadratic form.
 
string get_strQF (const string &strSeparator=", ") const
 Return the current quadratic form (string) More...
 
string get_strAlgebraicIntegerType () const
 Return the underlying field of the quadratic form.
 
vector< vector< AlgebraicInteger * > > get_aiVectors () const
 Return the list of found vectors.
 
unsigned int get_iVectorsCount () const
 Return the number of found vectors.
 
vector< AlgebraicInteger * > get_aiQF () const
 Return the quadratic form.
 
vector< AlgebraicInteger * > get_aiPossibleNorm2 () const
 Return the list of possible values for (e,e), where e is a root of the quadratic lattice.
 
const vector< AlgebraicInteger * > * get_ptraiPossibleNorm2 () const
 Return a pointer to the list of possible values for (e,e), where e is a root of the quadratic lattice.
 
CoxIter * get_ptrCI () const
 Return a pointer to the the last CoxIter object.
 
void set_iCreateImage (const int &iValue)
 Create image with the graph: 1: forced yes, 0: forced no, -1: default value (only if at most 25 vectors found)
 
void set_bComputeInvariantsPolyhedron (const bool &bValue)
 Do we have to compute the invariants of the final polyhedron.
 

Protected Member Functions

void initializations ()
 
void print_initialInformation () const
 
virtual void print_initialInformationChild () const
 
void print_finallInformation () const
 

Protected Attributes

vector< AlgebraicInteger * > aiQF
 
unsigned int iDimension
 Dimension of the space.
 
bool bComputeInvariantsPolyhedron
 If yes, we compute the invariants of the final polyhedron.
 
bool bDebug
 If true, more information are displayed.
 
bool bWriteInfo
 If we want to write informations (false if AlVin is used "as a plugin")
 
int iCreateImage
 -1: not specified (i.e. yes if possible and if the number of vectors is <= 25), 0: no, 1: force yes
 
string strAlgebraicIntegerType
 RationalInteger, QuadraticInteger.
 
vector< unsigned int > iQBlocksSize
 Sizes of blocks of coefficients.
 
vector< unsigned int > iComponentLessThan
 The entry [ i ] = j means x_i <= x_j, [ i ] = 0 means no information for x_i.
 
vector< vector< AlgebraicInteger * > > aiVectors
 The vectors.
 
unsigned int iVectorsCount
 Number of vectors found.
 
unsigned int iVectorsCount_second
 Number of vectors found (second batch)
 
vector< vector< AlgebraicInteger * > > aiVectors_candidates
 Vectors which are compatiable with the previous.
 
vector< vector< unsigned int > > iCoxeterMatrix
 
vector< AlgebraicInteger * > iBilinearProducts
 To control during findVector_simple that the vector has negative product with the preceding ones.
 
AlVinFractionsvf
 
string strOuputMathematicalFormat
 
string strFinalInformation
 Final information that will be displayed.
 

Detailed Description

Main class for AlVin.

Constructor & Destructor Documentation

AlVin::AlVin ( const string &  strOuputMathematicalFormat,
const bool &  bWriteInfo,
const bool &  bDebug 
)

Constructor for the parent AlVin object.

Parameters
strOuputMathematicalFormat(const string& ): Format for the output: generic, mathematica, pari, latex
bWriteInfo(const bool& ): If true, display info
bDebug(const bool& ): If true, some debug info

Member Function Documentation

AlVin::get_strQF ( const string &  strSeparator = ", ") const

Return the current quadratic form (string)

Parameters
strSeparator(const string& ) Separator between the coefficients
AlVin::Run ( unsigned int  iMinVectors = 0,
unsigned int  iMaxVectors = 0,
bool  bLastCheckFV = true 
)

Run the algo!

Parameters
iMinVectors(unsignedint): If specified, does not check the finiteness while this->iVectorsCount < iMinVectors
iMaxVectors(unsignedint): If specified, stops when this->iVectorsCount == iMaxVectors
bLastCheckFV(bool)If false, does not check the finiteness for the final polyhedron (useful for debug)

The documentation for this class was generated from the following files: