Static Public Member Functions | Static Private Member Functions | List of all members
PLMD::LatticeReduction Class Reference

Class implementing algorithms for lattice reduction. More...

#include <LatticeReduction.h>

Static Public Member Functions

static bool isReduced (const Tensor &t)
 Check if a basis is reduced. More...
 
static void reduce (Tensor &t)
 Reduce a basis in place, maps to reduceFast() More...
 
static void reduceFast (Tensor &t)
 Reduce a basis in place using the fast algorithm (Algorithm 3 in the paper) More...
 
static void reduceSlow (Tensor &t)
 Reduce a basis in place using the slow algorithm (Algorithm 2 in the paper) More...
 

Static Private Member Functions

static bool isReduced (const Vector &a, const Vector &b)
 Check if two vectors are reduced. More...
 
static bool isReduced (const Vector &a, const Vector &b, const Vector &c)
 Check if three vectors are reduced. More...
 
static bool isReduced2 (const Vector &a, const Vector &b, const Vector &c)
 Check if three vectors are reduced-2. More...
 
static void reduce (Vector &a, Vector &b)
 Gaussian reduction. More...
 
static void reduce2 (Tensor &t)
 Obtain three reduce-2 vectors (Algorithm 1 in the paper), equivalent to reduce2(Vector&a,Vector&b,Vector&c) More...
 
static void reduce2 (Vector &a, Vector &b, Vector &c)
 Obtain three reduce-2 vectors (Algorithm 1 in the paper), equivalent to reduce2(Tensor&t) More...
 
static void sort (Vector v[3])
 Sort three vectors by modulo. More...
 

Detailed Description

Class implementing algorithms for lattice reduction.

This class implements algorithms described in Igor Semaev, A 3-Dimensional Lattice Reduction Algorithm, CaLC 2001, LNCS 2146, pp. 181–193, 2001. It just collect static methods in a separate namespace.

Member Function Documentation

◆ isReduced() [1/3]

bool PLMD::LatticeReduction::isReduced ( const Tensor t)
static

Check if a basis is reduced.

◆ isReduced() [2/3]

bool PLMD::LatticeReduction::isReduced ( const Vector a,
const Vector b 
)
staticprivate

Check if two vectors are reduced.

◆ isReduced() [3/3]

static bool PLMD::LatticeReduction::isReduced ( const Vector a,
const Vector b,
const Vector c 
)
staticprivate

Check if three vectors are reduced.

◆ isReduced2()

bool PLMD::LatticeReduction::isReduced2 ( const Vector a,
const Vector b,
const Vector c 
)
staticprivate

Check if three vectors are reduced-2.

◆ reduce() [1/2]

void PLMD::LatticeReduction::reduce ( Tensor t)
static

Reduce a basis in place, maps to reduceFast()

◆ reduce() [2/2]

void PLMD::LatticeReduction::reduce ( Vector a,
Vector b 
)
staticprivate

Gaussian reduction.

◆ reduce2() [1/2]

void PLMD::LatticeReduction::reduce2 ( Tensor t)
staticprivate

Obtain three reduce-2 vectors (Algorithm 1 in the paper), equivalent to reduce2(Vector&a,Vector&b,Vector&c)

◆ reduce2() [2/2]

void PLMD::LatticeReduction::reduce2 ( Vector a,
Vector b,
Vector c 
)
staticprivate

Obtain three reduce-2 vectors (Algorithm 1 in the paper), equivalent to reduce2(Tensor&t)

◆ reduceFast()

void PLMD::LatticeReduction::reduceFast ( Tensor t)
static

Reduce a basis in place using the fast algorithm (Algorithm 3 in the paper)

◆ reduceSlow()

void PLMD::LatticeReduction::reduceSlow ( Tensor t)
static

Reduce a basis in place using the slow algorithm (Algorithm 2 in the paper)

◆ sort()

void PLMD::LatticeReduction::sort ( Vector  v[3])
staticprivate

Sort three vectors by modulo.


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