On Tuesday, May 10, 2016 at 10:55:20 PM UTC-7, Ralf Stephan wrote:
>
> On Tuesday, May 10, 2016 at 10:48:10 PM UTC+2, mmarco wrote:
>>
>> Thanks for the answer. So you propose that Expression.polynomial() should 
>> return either a polynomial or a laurent polynomial depending on the 
>> expression?
>>
>
> Depending on expression and ring argument:
>


I think people missed the double definition of `x`, particularly because 
the reassignment of `x` gets hidden by doing in the RHS of an assignment. 
To be clearer:
 

>
> sage: R = PolynomialRing(QQ,'x') #to avoid confusion about what x is
> sage: S = LaurentPolynomialRing(QQ, 'y')
> sage: var('x,y,z')
> sage: parent((z).polynomial(QQ))
> Univariate Polynomial Ring in z over Rational Field
> sage: parent((1/z+z).polynomial(QQ))
> Univariate Laurent Polynomial Ring in z over Rational Field
>

I would say this is an error, because 1/z+z is not a polynomial over QQ in 
most normal senses of the word. Where would you stop? what would

(1/(z+1) + z).polynomial(QQ)

do? Will that return an answer in QQ[z,U]/((z+1)*U-1) ?

I know that in symbolics you have to read off return types from properties 
of the input, not just from its type, but I think this going a little too 
far. "SR.polynomial(...)" should return polynomials in variables that are 
algebraically independent over the base ring. So no laurent polynomials.

-- 
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 https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to