Le 08/11/2016 à 11:05, Vincent Delecroix a écrit :
> On 8 November 2016 at 10:17, Thierry Dumont <tdum...@math.univ-lyon1.fr> 
> wrote:
>> Le 08/11/2016 à 08:43, Vincent Delecroix a écrit :
>>> Concerning representation of algebraic numbers, it is printed as an
>>> exact rational if and only if it is stored as an exact rational. It
>>> will be if the method exactify has been called on the underlying
>>> representation of the number. Here is a simple example that shows the
>>> difference
>>>
>>
>> Ha, yes...
>>
>> But I am not sure to understand.
>>
>> sage: y=QQbar(cos(pi/18))
>> sage: y.radical_expression()
>> 1/4*(4*(1/128*I*sqrt(3) + 1/128)^(1/3) + 1)/(1/128*I*sqrt(3) + 1/128)^(1/6)
>>
>> ok! good!
>>
>> sage: y
>> 0.9848077530122081? + 0.?e-18*I
>>
>> ok.
>> sage: y.imag()
>> 0.?e-18
>> sage: y.imag() == 0
>> True
>> I accept this as 0 is "in" 0.?e-18
>>
>> Now:
>>
>> sage: y.exactify()
>> sage: y
>> 0.9848077530122081? + 0.?e-18*I
>>
>> raaahhh ! grrr !
> 
> This is *not* a rational!! 

sure...

>We might want to special case the
> representation of real numbers of QQbar. I opened
> https://trac.sagemath.org/ticket/21838 for that purpose.
> 
> Vincent
> 
In my code, all values are real in QQbar. So at least temporary, I wrote

realify=lambda x: x.real()

which is not as beautiful as could be dreamed, but it works.
Thanks!

t.d.

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

<<attachment: tdumont.vcf>>

Reply via email to