Open nickcameron opened 7 years ago
Great! Should we change the code to return the basis or update the doc-string to specify that an ideal is returned? Which would be more useful and user-friendly?
Hmm... I favor returning the basis, to match the behavior of the sage.rings.polynomial.multi_polynomial_ideal.MPolynomialIdeal.groebner_basis()
method, which returns a ...polynomial.multi_polynomial_sequence.PolynomialSequence_gf2
.
Considered this and having users make their own Groebner-generated ideals, but then they may accidentally use a different polynomial ring than NeuralCode.F
and run into problems. I think the most user friendly way would be to just introduce other methods as well for the ideals.
While using this package (quite nice in general) in our research with Professor Nora Youngs, we discovered the methods NeuralCode.groebner_basis() and NeuralCode.universal_groebner_basis() are both described as returning Groebner bases, but they instead return ideals generated by said bases.
The docstrings could be changed to reflect this more clearly - though universal_groebner_basis() does specify later in its docstring, it is possible this could confuse another user.