AlVin
1.0
A C++ implementation of the Vinberg's algorithm for Q, Q( sqrt(d) ) and Q( cos(2 pi / 7) )
|
#include <alvin.h>
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... | |
AlgebraicInteger * | aiBilinearProduct (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. | |
AlVinFractions * | vf |
string | strOuputMathematicalFormat |
string | strFinalInformation |
Final information that will be displayed. | |
Main class for AlVin.
AlVin::AlVin | ( | const string & | strOuputMathematicalFormat, |
const bool & | bWriteInfo, | ||
const bool & | bDebug | ||
) |
Constructor for the parent AlVin object.
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 |
AlVin::get_strQF | ( | const string & | strSeparator = ", " | ) | const |
Return the current quadratic form (string)
strSeparator( | const string& ) Separator between the coefficients |
AlVin::Run | ( | unsigned int | iMinVectors = 0 , |
unsigned int | iMaxVectors = 0 , |
||
bool | bLastCheckFV = true |
||
) |
Run the algo!
iMinVectors(unsigned | int): If specified, does not check the finiteness while this->iVectorsCount < iMinVectors |
iMaxVectors(unsigned | int): If specified, stops when this->iVectorsCount == iMaxVectors |
bLastCheckFV(bool) | If false, does not check the finiteness for the final polyhedron (useful for debug) |