[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