hi, thanks for quick and competent answers,
sorry that I started a multi-topic discussion, for me it’s just one segment ‘view on python’.
I. Hearing about Steven and Mark is sad, sometimes I have talents to see one part of a puzzle ( ban for Tim ) then another one ( ban for Stefan ), estimate a more general problem, poke around and get it confirmed. Having few ‘top dogs’ for ( segments of ) a project is a not only theoretical risk, not having them is difficult too.
II. Also my sympathy for python dropped below half when I learned some time ago that it was aquired by M$.
III. python’s different modules … I simply don’t know them, and think that’s a weak point I share with many users: we simply want calculations done, want ‘math’, studying different modules which we initially don’t even know the names we lack time and interest. That’s a little off from developers POV who are familiar with their ‘field’.
IV. I’m not the ‘normal user’, but poking around in capabilities and shortcomings of ‘math in computers’ in general. For that mpdecimal provides an enormous step ahead in range ( pure overkill ), precision ( pure overkill ) and speed, outperforming IEEE decimals ( my gcc / lipdfp / BID implementation ) by factors! for most functions. However a contest I’m trying to put together ( in vanilla-C, not python ) showed that there are some functions slower in mpdecimal than IEEE, will report later, and some functions missing, Thus I became curious how python deals with that.
My naive acid test was: 0.9999999999999995 and 0.9999999999999994 are different in decimal64, while not in binary64. Calculating ‘asin’ for them should mathematically have a difference near 3.01823E-09 ( Wolfram|Alpha, not ‘neglectible small’ ), but produces ‘0.0’ in python. math.asin(decimal.Decimal("0.9999999999999995"))-math.asin(decimal.Decimal("0.9999999999999994"))
→ 0.0 . Thus the idea that statement calculates in bin64, and the question ‘is there a simple way to get that calculated in decimal64 precision - in python’.
V. small point aside: what is Decimal(‘0E-53’)? The result of decimal.Decimal(0.9999999999999995)-decimal.Decimal(0.9999999999999994)
- no quotes.