/usr/include/NTL/lip.h is in libntl-dev 9.9.1-3.
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 | #ifndef NTL_g_lip__H
#define NTL_g_lip__H
#include <NTL/ctools.h>
#ifdef NTL_GMP_LIP
#include <NTL/gmp_aux.h>
#include <NTL/g_lip.h>
#else
#include <NTL/c_lip.h>
#endif
// These are common to both implementations
class _ntl_tmp_vec {
public:
virtual ~_ntl_tmp_vec() { }
};
class _ntl_crt_struct {
public:
virtual ~_ntl_crt_struct() { }
virtual bool special() = 0;
virtual void insert(long i, NTL_verylong m) = 0;
virtual _ntl_tmp_vec *extract() = 0;
virtual _ntl_tmp_vec *fetch() = 0;
virtual void eval(NTL_verylong *x, const long *b,
_ntl_tmp_vec *tmp_vec) = 0;
};
_ntl_crt_struct *
_ntl_crt_struct_build(long n, NTL_verylong p, long (*primes)(long));
class _ntl_rem_struct {
public:
virtual ~_ntl_rem_struct() { }
virtual void eval(long *x, NTL_verylong a, _ntl_tmp_vec *tmp_vec) = 0;
virtual _ntl_tmp_vec *fetch() = 0;
};
_ntl_rem_struct *
_ntl_rem_struct_build(long n, NTL_verylong modulus, long (*p)(long));
// montgomery
class _ntl_reduce_struct {
public:
virtual ~_ntl_reduce_struct() { }
virtual void eval(NTL_verylong *x, NTL_verylong *a) = 0;
virtual void adjust(NTL_verylong *x) = 0;
};
_ntl_reduce_struct *
_ntl_reduce_struct_build(NTL_verylong modulus, NTL_verylong excess);
// faster reduction with preconditioning -- general usage, single modulus
class _ntl_general_rem_one_struct {
public:
virtual ~_ntl_general_rem_one_struct() { }
};
_ntl_general_rem_one_struct *
_ntl_general_rem_one_struct_build(long p, long sz);
long
_ntl_general_rem_one_struct_apply(NTL_verylong a, long p, _ntl_general_rem_one_struct *pinfo);
#endif
|