Lattice Builder Manual Software Package for Constructing Rank-1 Lattices

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Public Member Functions | Protected Attributes | List of all members
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.
Base & | operator= (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:

- latcommon/include/latcommon/Base.h