Closed malb closed 15 years ago
in PolyBoRi 0.5 will change iterators again ;-). I hope more SAGE-friendly
for variable in m.variables() for term in p.terms()
this fixes the first issue
Attachment: trac_3440_gen.patch.gz
The attache patch fixes the issue above, however now:
sage: sr = mq.SR(2,1,1,4,gf2=True)
sage: F,s = sr.polynomial_system()
sage: R = F.ring()
sage: B = BooleanPolynomialRing(R.ngens(),R.variable_names())
sage: I = Ideal([B(f) for f in F])
sage: type(I)
<class 'sage.rings.polynomial.pbori.BooleanPolynomialIdeal'>
sage: I.groebner_basis(aes=True)
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
...
/usr/local/sage-3.0.6/local/lib/python2.5/site-packages/polybori/aes.py in preprocess(I, prot)
55 global cache
56 if get_order_code()==OrderCode.lp:
---> 57 import cache as cache_module
58 cache=cache_module.cache
59 del cache_module
ImportError: No module named cache
Ideas, thoughts, work-arounds?
personally, at the moment, I don't feel, that it is good to expose this option to users. I did that for aes systems initially. But it is not about: Use that option and everything will work well...
Nevertheless: workaround replace 57/58 by
cache={}
which will make it slower. I think, we don't distribute cache.py (which contains some GB of the 8BIT SBOX).
I vote for applying my patch then and closing this ticket. We don't actively expose aes=True to the user, i.e. it is not documented etc. It just happens to work since we pass the parameters thru to PolyBoRi.
Trivial patch, looks good to me.
Sorry for the very late review.
Merged in Sage 3.1.2.alpha2
Burcin says this broke when the iterators changed:
CC: @sagetrac-PolyBoRi @burcin
Component: commutative algebra
Keywords: polybori
Issue created by migration from https://trac.sagemath.org/ticket/3440