[CLN-list] adding two different precision number
Bruno Haible
bruno at clisp.org
Sun Feb 9 11:37:10 CET 2020
Hi,
> 1. Does CLN support performing two different precision number with basic
> overloading operators (+,-,*, and /)?
Yes.
> 2. If yes, how does CLN treat that? eg. zero padding on the precision-less
> number before doing operation?
It does zero-padding on the operand with the smaller precision, then the
operation on the then equal-size operands, and finally rounding (round-to-even)
to the smallest precision among the operands.
Example (using decimal numbers for illustrative purposes):
3.14149265358979323
+ 2.718282
---------------------
3.14149265358979323
+ 2.71828200000000000
---------------------
5.85969465358979323
---------------------
5.859695
Therefore, when some computation returns a result, usually a few decimal
places at the end can be wrong, but CLN will never give you a 50-digit
result when in fact the accurary is only 10 digits - UNLESS you use
conversion functions [1] explicitly.
Bruno
[1] https://www.ginac.de/CLN/cln.html#Conversion-functions
More information about the CLN-list
mailing list