/usr/include/NTL/LLL.h is in libntl-dev 10.5.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | #ifndef NTL_LLL__H
#define NTL_LLL__H
#include <NTL/mat_ZZ.h>
#include <NTL/mat_RR.h>
NTL_OPEN_NNS
long LLL(ZZ& det, mat_ZZ& B, long verbose = 0);
long LLL(ZZ& det, mat_ZZ& B, mat_ZZ& U, long verbose = 0);
long LLL(ZZ& det, mat_ZZ& B, long a, long b, long verbose = 0);
long LLL(ZZ& det, mat_ZZ& B, mat_ZZ& U, long a, long b, long verbose = 0);
long LLL_plus(vec_ZZ& D, mat_ZZ& B, mat_ZZ& U, long verbose=0);
long LLL_plus(vec_ZZ& D, mat_ZZ& B, long verbose=0);
long LLL_plus(vec_ZZ& D, mat_ZZ& B, mat_ZZ& U, long a, long b, long verbose=0);
long LLL_plus(vec_ZZ& D, mat_ZZ& B, long a, long b, long verbose=0);
long image(ZZ& det, mat_ZZ& B, long verbose = 0);
long image(ZZ& det, mat_ZZ& B, mat_ZZ& U, long verbose = 0);
long LatticeSolve(vec_ZZ& x, const mat_ZZ& A, const vec_ZZ& y, long reduce=0);
typedef long (*LLLCheckFct)(const vec_ZZ&);
extern NTL_CHEAP_THREAD_LOCAL double LLLStatusInterval;
extern NTL_CHEAP_THREAD_LOCAL char *LLLDumpFile;
// classical Gramm-Schmidt versions
long LLL_FP(mat_ZZ& B, double delta = 0.99,
long deep = 0, LLLCheckFct check = 0, long verbose = 0);
long LLL_FP(mat_ZZ& B, mat_ZZ& U, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long BKZ_FP(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0) ;
long BKZ_FP(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long LLL_XD(mat_ZZ& B, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long LLL_XD(mat_ZZ& B, mat_ZZ& U, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long BKZ_XD(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long BKZ_XD(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
long LLL_QP(mat_ZZ& B, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long LLL_QP(mat_ZZ& B, mat_ZZ& U, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long BKZ_QP(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long BKZ_QP(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
long BKZ_QP1(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long BKZ_QP1(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
long LLL_RR(mat_ZZ& B, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long LLL_RR(mat_ZZ& B, mat_ZZ& U, double delta = 0.99,
long deep = 0, LLLCheckFct check = 0, long verbose = 0);
long BKZ_RR(mat_ZZ& BB, double delta=0.99, long BlockSize=10,
long prune=0, LLLCheckFct check = 0, long verbose = 0);
long BKZ_RR(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
// Givens rotations versions
long G_LLL_FP(mat_ZZ& B, double delta = 0.99,
long deep = 0, LLLCheckFct check = 0, long verbose = 0);
long G_LLL_FP(mat_ZZ& B, mat_ZZ& U, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_FP(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0) ;
long G_BKZ_FP(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long G_LLL_XD(mat_ZZ& B, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long G_LLL_XD(mat_ZZ& B, mat_ZZ& U, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_XD(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_XD(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
long G_LLL_QP(mat_ZZ& B, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long G_LLL_QP(mat_ZZ& B, mat_ZZ& U, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_QP(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_QP(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_QP1(mat_ZZ& BB, double delta=0.99, long BlockSize=10, long prune=0,
LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_QP1(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
long G_LLL_RR(mat_ZZ& B, double delta = 0.99, long deep = 0,
LLLCheckFct check = 0, long verbose = 0);
long G_LLL_RR(mat_ZZ& B, mat_ZZ& U, double delta = 0.99,
long deep = 0, LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_RR(mat_ZZ& BB, double delta=0.99, long BlockSize=10,
long prune=0, LLLCheckFct check = 0, long verbose = 0);
long G_BKZ_RR(mat_ZZ& BB, mat_ZZ& U, double delta=0.99,
long BlockSize=10, long prune=0, LLLCheckFct check = 0, long verbose = 0);
void ComputeGS(const mat_ZZ& B, mat_RR& mu, vec_RR& c);
void NearVector(vec_ZZ& ww, const mat_ZZ& BB, const vec_ZZ& a);
NTL_CLOSE_NNS
#endif
|