Hi Simon,

PLEASE DON'T DO THIS, unless you know what you are doing! Reason: If you
use the various boilerplate polynomial ring constructors directly, you
might break the cache and create several distinct instances of "the
same" polynomial ring, which has a high probability of confusing the
coercion framework and thus compromising the Sage session.

It was more like a (not so good apparently) example of thing that could be done in the PolynomialRing constructor, to handle this case. I was not aware of the possibility you mentioned:

sage: R.<t> = PolynomialRing(QQ, 1, order='neglex')

Would it make sense to return a libsingular multivariate polynomial ring
whenever the number of variables is explicitly prescribed OR an ordering
is prescribed OR an implementation is explicitly chosen?

It would be relatively easy to refactor the polynomial ring constructor
so that it only returns something when the chosen implementation
supports all given arguments (such as order).

It would definitely make sense to me to have a simpler way to obtain the same result as above, for instance with the simpler invocation:

sage: R.<t> = PolynomialRing(QQ, order='neglex')

To me it would make sense to return a libsingular multivariate polynomial ring whenever an ordering is prescribed or an implementation is explicitly chosen. But I think I've seen quite often people writing

sage: R.<t> = PolynomialRing(QQ, 1)

and I do not think they wanted to get a Multivariate 1-variable Polynomial Ring. While whenever a user writes "order=..." or "implementation=singluar", it seems quite clear that s/he knows what s/he wants!

Cheers,
Bruno

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to