util.h File Reference
#include "nr/matrix.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static FPLLL_BEGIN_NAMESPACE int cputime ()
 
template<class ZT >
void vector_matrix_product (vector< ZT > &result, const vector< ZT > &x, const Matrix< ZT > &m)
 
template<class ZT >
void vector_matrix_product (NumVect< ZT > &result, const NumVect< ZT > &x, const Matrix< ZT > &m)
 
int gso_min_prec (double &rho, int d, double delta, double eta, double epsilon=DEF_GSO_PREC_EPSILON)
 
int l2_min_prec (int d, double delta, double eta, double epsilon)
 
int hlll_min_prec (int d_i, int n_i, double delta, double eta, double theta, double c)
 
void sphere_volume (FP_NR< mpfr_t > &volume, int d)
 
void cost_estimate (FP_NR< mpfr_t > &cost, const FP_NR< mpfr_t > &bound, const Matrix< FP_NR< mpfr_t > > &r, int dimMax)
 
template<class ZT >
void zeros_first (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv_t)
 
template<class ZT >
void zeros_last (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv_t)
 
const char * get_red_status_str (int status)
 

Variables

const double DEF_GSO_PREC_EPSILON = 0.03
 

Detailed Description

Miscellaneous.

Function Documentation

◆ cost_estimate()

void cost_estimate ( FP_NR< mpfr_t > &  cost,
const FP_NR< mpfr_t > &  bound,
const Matrix< FP_NR< mpfr_t > > &  r,
int  dimMax 
)

Estimates the cost of the enumeration for SVP.

◆ cputime()

static FPLLL_BEGIN_NAMESPACE int cputime ( )
inlinestatic

◆ get_red_status_str()

const char * get_red_status_str ( int  status)

Returns the string corresponding to an error code of LLL/BKZ.

◆ gso_min_prec()

int gso_min_prec ( double &  rho,
int  d,
double  delta,
double  eta,
double  epsilon = DEF_GSO_PREC_EPSILON 
)

Returns the minimum precision required to ensure that error bounds on the GSO are valid. Computes rho such that for all 0 <= i < d and 0 <= j <= i:

|r~_i - r_i| / r_i <= d * rho ^ (i + 1) * 2 ^ (2 - prec)

|mu~_(i,j) - mu_(i,j)| <= d * rho ^ (i + 1) * 2 ^ (4 - prec)

◆ hlll_min_prec()

int hlll_min_prec ( int  d_i,
int  n_i,
double  delta,
double  eta,
double  theta,
double  c 
)

Returns the minimum precision for the proved version of HLLL.

◆ l2_min_prec()

int l2_min_prec ( int  d,
double  delta,
double  eta,
double  epsilon 
)

Returns the minimum precision for the proved version of LLL.

◆ sphere_volume()

void sphere_volume ( FP_NR< mpfr_t > &  volume,
int  d 
)

Computes the volume of a d-dimensional hypersphere of radius 1.

◆ vector_matrix_product() [1/2]

template<class ZT >
void vector_matrix_product ( NumVect< ZT > &  result,
const NumVect< ZT > &  x,
const Matrix< ZT > &  m 
)

◆ vector_matrix_product() [2/2]

template<class ZT >
void vector_matrix_product ( vector< ZT > &  result,
const vector< ZT > &  x,
const Matrix< ZT > &  m 
)

◆ zeros_first()

template<class ZT >
void zeros_first ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv_t 
)

◆ zeros_last()

template<class ZT >
void zeros_last ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv_t 
)

Variable Documentation

◆ DEF_GSO_PREC_EPSILON

const double DEF_GSO_PREC_EPSILON = 0.03