Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
LatCommon::Base Class Reference

This class represents a basis for a lattice. More...

#include <Base.h>

Inherits BMat.

Public Member Functions

 Base (int d, int maxDim, NormType norm=L2NORM)
 Constructor. More...
 
 Base (const Base &)
 Copy constructor.
 
 ~Base ()
 Destructor.
 
Baseoperator= (const Base &)
 Assignment operator.
 
void kill ()
 Cleans and releases all memory used by the basis.
 
void swap (Base &b)
 Swaps this basis with the basis b.
 
void permute (int i, int j)
 Exchanges vectors \(i\) and \(j\) in the basis.
 
int getDim () const
 Returns the actual dimension of the basis.
 
void setDim (int d)
 Resets the actual dimension of the basis to d, but does not reserve any new memory.
 
int getMaxDim () const
 Returns the maximal dimension of the basis.
 
NormType getNorm () const
 Returns the norm used by the basis.
 
void setNorm (NormType norm)
 Sets the norm used by the basis.
 
bool isNegativeNorm (int i) const
 Returns true if the \(i\)-th vector's norm is not updated and erroneous. More...
 
void setNegativeNorm (bool flag)
 Sets the dirty flag of the norms to flag.
 
void setNegativeNorm (bool flag, int j)
 Sets the negative flag for the \(j\)-th vector to flag.
 
NScal getVecNorm (int i) const
 Returns the \(i\)-th vector's norm.
 
void setVecNorm (NScal &value, int i)
 Sets the \(i\)-th vector's norm to value. More...
 
void updateVecNorm ()
 Recalculates the norm of each vector in the basis.
 
void updateVecNorm (int d)
 Same as above, except that the recalculation begins at dimension d + 1.
 
void updateScalL2Norm (int d)
 Updates the norm of vector at dimension d using the L2NORM.
 
void updateScalL2Norm (int d1, int d2)
 Updates the norm of all basis vectors from dimensions d1 to d2 (inclusive) using the L2NORM.
 
std::string toString () const
 Writes the basis in a string and returns it.
 
std::string toString (int i) const
 Writes the \(i\)-th basis vector in a string and returns it.
 
void write () const
 Writes the basis on standard output.
 
void write (int i) const
 Writes \(i\)-th basis vector on standard output.
 

Protected Attributes

int m_dim
 Actual dimension of the basis.
 
int m_maxDim
 Maximum dimension of the basis.
 
NormType m_norm
 Norm used to calculate the norm of the vectors.
 
NVect m_vecNorm
 The norm of each vector in the basis.
 
bool * m_negFlag
 Indicates whether a vector norm must be recalculated or not.
 

Detailed Description

This class represents a basis for a lattice.

To compute the length of vectors, one may use either the \(L_1\), the \(L_2\) or the \(L_\infty\) norms. If one uses the \(L_2\) norm and if BScal and NScal are of type double, then the norm could overflow if the components of the basis vectors are larger than \(\approx 2^{500}\). In that case, NScal may be chosen as RR. If one uses the \(L_1\) or the \(L_\infty\) norms, NScal may be chosen the same as BScal.

Constructor & Destructor Documentation

LatCommon::Base::Base ( int  d,
int  maxDim,
NormType  norm = L2NORM 
)

Constructor.

Builds a basis of actual dimension \(d\), maximum dimension maxDim and with norm norm.

Member Function Documentation

bool LatCommon::Base::isNegativeNorm ( int  i) const
inline

Returns true if the \(i\)-th vector's norm is not updated and erroneous.

Returns false otherwise.

References m_negFlag.

void LatCommon::Base::setVecNorm ( NScal &  value,
int  i 
)

Sets the \(i\)-th vector's norm to value.

The negative flag for this vector is set to false and no data integrity is made.


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