Hi, [since I am not subscribed to sage-devel, please keep me in cc]
the concept of real literals, which was intended (as far as I understand) to keep exactly track of inputs like "1e-20", leads to the following: sage: a=RealField(53)(1e-20) sage: Reals(200)(a) 1.0000000000000000000000000000000000000000000000000000000000e-20 sage: Reals(200)(a.exact_rational()) 9.9999999999999994515327145420957165172950370278739244710772e-21 I consider this to be a bug. In the C language, when one writes "double a = 1e-20; printf ("%.20e\n", a);", everybody who is fluent with IEEE-754 2008 knows that 10^-20 is not exactly representable in the binary64 format, thus nobody is surprised to see the output 9.99999999999999945153e-21. Moreover real literals seem to be created only with 53-bit precision: sage: Reals(200)(RealField(52)(1e-20)) 1.0000000000000000956165483594623726717277804672348392078969e-20 sage: Reals(200)(RealField(53)(1e-20)) 1.0000000000000000000000000000000000000000000000000000000000e-20 sage: Reals(200)(RealField(54)(1e-20)) 1.0000000000000000203849099068359721617286420850111158275023e-20 What about getting rid of real literals? Paul -- 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/groups/opt_out.