Let f be a polynomial in two variables x and y over a ring R.
Consider the following three commands

 i)   f(2,3)
 ii)  f(x=2,y=3)
 iii)  f.subs(x=2,y=3)

They give the same results but not the same type. i) gives an element
in R while ii) and iii) are constant polynomials in two variables.
Follinwg the documentation, i) and ii) should give an element in R
while iii) is a polynomial.

So something should be changed. The question is what. I would expect
all three to give back elements of R. This is maybe a slightly non-
canonical choice given that f(x=3) does not (and should not) give back
a polynomial in one variable or an element in the quotient ring R[x,y]/
(x-3). But still I think that is what a naive user like me would
expect when evaluating all variables.

Note that for a polynomial in one variable all three are elements in
R.

The changes for i) in a __call__ of
sage.rings.polynomial.multi_polynomial_libsingular.pyx were introduced
in ticket #8502. I came across this issue in #10888. I propose to
change at least so that ii), which is the __call__ method, does the
same as i) - see attached patch. But the question is if one wants to
change subs().

I figured that some people in this list may have an opinion on this.
Chris.

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to