@@ -68,7 +68,6 @@ from cysignals.memory cimport sig_malloc, sig_free, check_allocarray
6868from sage.libs.gmp.mpz cimport *
6969
7070from sage.modules.vector_integer_dense cimport Vector_integer_dense
71- from sage.modules.free_module import vector
7271from sage.misc.verbose import verbose, get_verbose
7372
7473from sage.arith.misc import previous_prime
@@ -93,7 +92,6 @@ from sage.rings.finite_rings.integer_mod_ring import IntegerModRing
9392from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
9493from sage.rings.polynomial.polynomial_integer_dense_flint cimport Polynomial_integer_dense_flint
9594from sage.structure.element cimport Element, Vector
96- from sage.structure.element import Vector
9795
9896from sage.rings.finite_rings.finite_field_constructor import GF
9997
@@ -203,7 +201,9 @@ class GraverBasis:
203201 sage: class _GB:
204202 .... : def __init__( self, amb) : self. _ambient = amb
205203 .... : def __iter__( self) : return _fake_iter( )
206- .... : def orthogonal_range_search( self, l, u) : return orthogonal_range_search( self, l, u)
204+ .... : def orthogonal_range_search( self, l, u) :
205+ .... : # Reuse the library implementation for filtering:
206+ .... : return GraverBasis. orthogonal_range_search( self, l, u)
207207 sage: G = _GB( amb)
208208 sage: list( G. orthogonal_range_search( [0,0,0 ], [2,2,2 ]))
209209 [(0, 1, 2), (1, 1, 1) ]
@@ -219,25 +219,25 @@ class GraverBasis:
219219 amb = self ._ambient
220220 l_vec = vector(ZZ, l)
221221 u_vec = vector(ZZ, u)
222- def ambient (self ):
223- """
224- To Return the ambient free module ``ZZ^n`` of this Graver basis.
225- """
226- return self ._ambient
227-
228222 n = amb.rank()
229223 if len (l_vec) != n or len (u_vec) != n:
230224 raise ValueError (f" Bound vectors must have length {n}." )
231225 if any (l_vec[i] > u_vec[i] for i in range (n)):
232226 raise ValueError (" All lower bound must be ≤ the corresponding upper bound." )
233227
234228 def _gen ():
235- for v in self : # To iterate over the (possibly lazy) basis
236- w = amb(v) # To coerce to ZZ^n for consistent parent
229+ for v in self : # iterate over (possibly lazy) basis
230+ w = amb(v) # coerce to ZZ^n for consistent parent
237231 if all (l_vec[i] <= w[i] <= u_vec[i] for i in range (n)):
238232 yield w
239233 return _gen()
240234
235+ def ambient (self ):
236+ r """
237+ Return the ambient free module ``ZZ^ n`` of this Graver basis.
238+ """
239+ return self ._ambient
240+
241241cdef class Matrix_integer_dense(Matrix_dense):
242242 r """
243243 Matrix over the integers, implemented using FLINT.
0 commit comments