31{
32
34 {
35 ERROR(
"LLL only defined for matrices over ZZ");
36 return false;
37 }
38
41
43 {
44 ERROR(
"LLL threshold should be in the range (1/4, 1]");
47 return false;
48 }
49
50
51
52
53
54
55
58 if (n > 0)
59 {
61
63 0, n + 2, num);
65 ring_elem dot;
68 }
69 return true;
70}
static bool checkThreshold(ring_elem num, ring_elem den)
virtual bool dot_product(size_t i, size_t j, ring_elem &result) const =0
virtual size_t n_cols() const =0
static MutableMatrix * zero_matrix(const Ring *R, size_t nrows, size_t ncols, bool dense)
virtual bool is_dense() const =0
virtual const Ring * get_ring() const =0
virtual bool set_entry(size_t r, size_t c, const ring_elem a)=0
virtual ring_elem from_long(long n) const
virtual void remove(ring_elem &f) const
virtual ring_elem from_int(mpz_srcptr n) const