Hi to all.
I understand that "prec" as reported in Float internal representation is just
not a measure of the "true" error but at most an upper bound on it.
But, as explained here [1], in sympy "If inexact, low-precision numbers are
involved in a calculation with with higher precision values, the evalf engine
will increase the precision of the low precision values and inexact results
will be obtained."
Example:
>>> srepr(Float('1/3',30)+Float('2/3',20))
Float('1.00000000000000000000028234431569', prec=30)
>>> srepr(Float('3/5',30)*Float('5/3',20))
Float('0.999999999999999999999661186821177', prec=30)
A user mixing precisions and looking at the precision of the result would
have the false impression that the final precision is 30, while here it is at
most 20.
So, to be "fool-proof", here I would have expected to have as results Floats
of precision 20.
May be I'm missing something: what is the point of this weird behavior in
numerical evaluation?
Thanks for any insight
ric
[1]
http://docs.sympy.org/latest/gotchas.html?highlight=precision#evaluating-expressions-with-floats-and-rationals
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/3223608.D5bRag6ZZt%40ipht-ia-004976.
For more options, visit https://groups.google.com/d/optout.