Before I begin I would like to introduce myself, I'm Roshan (my username's 
weakit everywhere), and programming is a hobby of mine. I might not be as 
experienced as the average sympy programmer, and I'm still learning the 
ropes, so please be patient with me. 

The idea of a CAS is something I find very interesting, and that's why I 
would like to learn how a CAS would work, and along with that, I think I 
can gain a lot of experience helping out with sympy.

Anyways, coming to my issue:

Currently, when two numbers of different precision are used in an 
arithmetic operation, the result is returned with the higher precision of 
the two Floats:

>>> Float(0.1, 3) * Float(3.1415, 5)
0.31417 

I'm looking to change this behaviour so that the result is in the lower of 
the two precisions, to have a more accurate result.

I did notice this in the documentation:

The precision of a number determines 1) the precision to use when 
performing arithmetic with the number, and 2) the number of digits to 
display when printing the number. When two numbers with different precision 
are used together in an arithmetic operation, the higher of the precisions 
is used for the result."

So the displayed precision should not be used as a model of error 
propagation or significance arithmetic; rather, this scheme is employed to 
ensure stability of numerical algorithms.

over here: 
https://docs.sympy.org/latest/modules/evalf.html#floating-point-numbers 
<goog_858949617>

"this scheme is employed to ensure stability of numerical algorithms" is 
what I'm focusing on. Would the change I proposed break anything, or cause 
any un-stability? 

It's a rather simple fix, and all tests other than a few expected document 
and example tests pass.

Is there something I'm missing, and also anything against this proposal? 
This is how I think Floats should behave, but I would also like to hear 
about any problems that this might create.

Thanks for your time.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/ed969819-f734-4665-aa38-8871dd01338dn%40googlegroups.com.

Reply via email to