76{
77
78
79 ring_elem D2, D1, D, L;
80 mpz_t a, b;
83 bool Lnotzero = lambda->
get_entry(k - 1, k, L);
84 if (k == 1)
86 else
87 {
88 mpz_init(a);
91 }
92 mpz_init(b);
93 if (Lnotzero)
94 {
96 mpz_add(a, a, b);
97 }
98 mpz_mul(a, a, alphaBottom.
get_mpz());
99
101 mpz_mul(b, alphaTop.
get_mpz(), b);
102 int cmp = mpz_cmp(a, b);
103 mpz_clear(a);
104 mpz_clear(b);
105 return (cmp < 0);
106}
virtual bool get_entry(size_t r, size_t c, ring_elem &result) const =0
mpz_srcptr get_mpz() const