Lattice Tester Online Documentation unknown
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
These functions are in the NTL namespace. More...
Functions | |
long | LLL_FP64 (NTL::Mat< long > &B, const double delta=0.99, long r=0, long c=0, NTL::Vec< double > *sqlen=0) |
This function is similar to LLL_FP in NTL, but only the first r rows and first c columns of the matrix B are considered, and a basis is built for the lattice generated by these (partial) rows. | |
long | BKZ_FP64 (NTL::Mat< long > &BB, const double delta=0.99, long blocksize=10, long prune=0, long r=0, long c=0, NTL::Vec< double > *sqlen=0) |
This function is similar to BKZ_FP in NTL, with the same modifications as in LLL_FP64 above. | |
long | LLL_FP_lt (mat_ZZ &B, double delta=0.99, long r=0, long c=0, vec_double *sqlen=0) |
This function is similar to LLL_FP in NTL, but only the first r rows and first c columns of the matrix B are considered, a basis is built for the lattice generated by these (partial) rows, and the square lengths of the returned basis vectors are returned in sqlen . | |
long | BKZ_FP_lt (mat_ZZ &BB, double delta=0.99, long blocksize=10, long prune=0, long r=0, long c=0, vec_double *sqlen=0) |
This function is similar to BKZ_FP in NTL, with the same modifications as in LLL_FPInt above. | |
long | LLL_XD_lt (mat_ZZ &B, double delta=0.99, long r=0, long c=0, vec_xdouble *sqlen=0) |
long | BKZ_XD_lt (mat_ZZ &BB, double delta=0.99, long blocksize=10, long prune=0, long r=0, long c=0, vec_xdouble *sqlen=0) |
This function is similar to BKZ_XD in NTL, with the same modifications as in LLL_FPInt above. | |
long | LLL_QP_lt (mat_ZZ &B, double delta=0.99, long r=0, long c=0, vec_quad_float *sqlen=0) |
long | BKZ_QP_lt (mat_ZZ &BB, double delta=0.99, long blocksize=10, long prune=0, long r=0, long c=0, vec_quad_float *sqlen=0) |
This function is similar to BKZ_FP in NTL, with the same modifications as in LLL_FPInt above. | |
long | LLL_RR_lt (mat_ZZ &B, double delta=0.99, long r=0, long c=0, vec_RR *sqlen=0) |
long | BKZ_RR_lt (mat_ZZ &B, double delta=0.99, long blocksize=10, long prune=0, long r=0, long c=0, vec_RR *sqlen=0) |
These two functions are wrappers of BKZ_RR in NTL, with the same modifications as in LLL_RR_lt above. | |
Conversion functions for compatibility with NTL. | |
These functions perform conversions between different types. Most of them do not really need explanations, but sometimes a specific logic is used when doing the conversion. | |
void | conv (std::int64_t &l, const char *c) |
Converts the array of characters (string) c into an std::int64_t l using the strtol() function of cstdlib.h. | |
void | conv (double &r, const char *c) |
Converts the array of characters (string) c into a double r using the strtod() function of cstdlib.h. | |
bool | IsZero (const std::int64_t &x) |
Returns the bool resulting of the statement x == 0 . | |
void | clear (double &x) |
Sets x to 0. | |
void | clear (std::int64_t &x) |
Sets x to 0. | |
std::int64_t | IsOdd (const std::int64_t &x) |
Tests if x is odd. | |
void | set (std::int64_t &x) |
Sets x to 1. | |
Mathematical functions | |
These are complementary overloads to NTL power functions. | |
std::int64_t | power (std::int64_t p, std::int64_t i) |
Returns \(p^i\). | |
void | power2 (std::int64_t &z, std::int64_t i) |
Sets \(z = 2^i\). | |
void | power2 (NTL::ZZ &z, std::int64_t i) |
Sets \(z = 2^i\). | |
Inline functions for certain operators, again for compatibility with NTL. | |
static void | add (int64_t &x, const int64_t a, const int64_t b) |
static void | sub (int64_t &x, const int64_t a, const int64_t b) |
static void | SubPos (int64_t &x, const int64_t a, const int64_t b) |
static void | negate (int64_t &x, const int64_t a) |
static void | mul (int64_t &x, const int64_t a, const int64_t b) |
static void | div (int64_t &x, const int64_t a, const int64_t b) |
static void | rem (int64_t &x, const int64_t a, const int64_t b) |
static void | sqr (int64_t &x, const int64_t a) |
static void | MulAddTo (int64_t &x, const int64_t a, const int64_t b) |
static void | MulSubFrom (int64_t &x, int64_t a, int64_t b) |
static void | LeftShift (int64_t &x, const int64_t a, int64_t k) |
static void | RightShift (int64_t &x, const int64_t a, int64_t k) |
These functions are in the NTL namespace.
long NTL::LLL_FP64 | ( | NTL::Mat< long > & | B, |
const double | delta = 0.99, | ||
long | r = 0, | ||
long | c = 0, | ||
NTL::Vec< double > * | sqlen = 0 ) |
This function is similar to LLL_FP
in NTL, but only the first r
rows and first c
columns of the matrix B
are considered, and a basis is built for the lattice generated by these (partial) rows.
The other elements of B
are ignored. The basis is returned in the upper left corner of B
, with the shortest basis vector always in the first row. If r=0
, then all the rows of the IntMat
object are taken. If c=0
, then all the columns are taken. The square lengths of the returned basis vectors are also returned in the double
vector sqlen
, in sqlen[0],..., sqlen[d-1]
, if this vector given. The indices of B
and sqlen
start at 0. The function returns the dimension of the computed basis (the number of independent rows).
long NTL::BKZ_FP64 | ( | NTL::Mat< long > & | BB, |
const double | delta = 0.99, | ||
long | blocksize = 10, | ||
long | prune = 0, | ||
long | r = 0, | ||
long | c = 0, | ||
NTL::Vec< double > * | sqlen = 0 ) |
This function is similar to BKZ_FP
in NTL, with the same modifications as in LLL_FP64 above.
long NTL::LLL_FP_lt | ( | mat_ZZ & | B, |
double | delta = 0.99, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_double * | sqlen = 0 ) |
This function is similar to LLL_FP
in NTL, but only the first r
rows and first c
columns of the matrix B
are considered, a basis is built for the lattice generated by these (partial) rows, and the square lengths of the returned basis vectors are returned in sqlen
.
long NTL::BKZ_FP_lt | ( | mat_ZZ & | BB, |
double | delta = 0.99, | ||
long | blocksize = 10, | ||
long | prune = 0, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_double * | sqlen = 0 ) |
This function is similar to BKZ_FP
in NTL, with the same modifications as in LLL_FPInt above.
long NTL::LLL_XD_lt | ( | mat_ZZ & | B, |
double | delta = 0.99, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_xdouble * | sqlen = 0 ) |
long NTL::BKZ_XD_lt | ( | mat_ZZ & | BB, |
double | delta = 0.99, | ||
long | blocksize = 10, | ||
long | prune = 0, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_xdouble * | sqlen = 0 ) |
This function is similar to BKZ_XD
in NTL, with the same modifications as in LLL_FPInt above.
long NTL::LLL_QP_lt | ( | mat_ZZ & | B, |
double | delta = 0.99, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_quad_float * | sqlen = 0 ) |
long NTL::BKZ_QP_lt | ( | mat_ZZ & | BB, |
double | delta = 0.99, | ||
long | blocksize = 10, | ||
long | prune = 0, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_quad_float * | sqlen = 0 ) |
This function is similar to BKZ_FP
in NTL, with the same modifications as in LLL_FPInt above.
long NTL::LLL_RR_lt | ( | mat_ZZ & | B, |
double | delta = 0.99, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_RR * | sqlen = 0 ) |
long NTL::BKZ_RR_lt | ( | mat_ZZ & | B, |
double | delta = 0.99, | ||
long | blocksize = 10, | ||
long | prune = 0, | ||
long | r = 0, | ||
long | c = 0, | ||
vec_RR * | sqlen = 0 ) |
These two functions are wrappers of BKZ_RR
in NTL, with the same modifications as in LLL_RR_lt
above.
|
inline |
Converts the array of characters (string) c
into an std::int64_t
l
using the strtol() function of cstdlib.h.
|
inline |
Converts the array of characters (string) c
into a double
r
using the strtod() function of cstdlib.h.
|
inline |
Returns the bool
resulting of the statement x == 0
.
IsZero
is already defined for the type NTL::ZZ
in NTL, but not for std::int64_t
.
|
inline |
Sets x
to 0.
|
inline |
Sets x
to 0.
|
inline |
Tests if x
is odd.
Returns 1 if it is odd, and 0 if it is even.
|
inline |
Sets x
to 1.
|
inline |
Returns \(p^i\).
|
inline |
Sets \(z = 2^i\).
|
inline |
Sets \(z = 2^i\).
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |