Hacker News new | ask | show | jobs
by dimview 8 days ago
Author here. I could not find a constructive‑reals calculator on iPhone, so I ported the engine Android uses: Hans Boehm's com.hp.creals plus AOSP's UnifiedReal/BoundedRational. Used Opus 4.8 to do the port and Fable 5 for the review.

Fable 5 caught a couple of real concurrency bugs the port introduced while adapting Java's synchronized/AsyncTask to Swift concurrency, including one that was a memory‑safety bug on shared singletons like π, not just a wrong digit. None would have shown up in the unit tests. Writeup has the details.

It's an early iPhone TestFlight beta (link in the post); happy to go deep on either the constructive‑reals side or the AI‑assisted‑dev side.

2 comments

Maybe you should correct the errors in your post before worrying about the code.
Corrected the dates, thank you! What are the other errors?
The old HP calculators, and their emulators, have a computer algebra system, for symbolic maths, that supported this. The user interfaces leave much to be desired, but some also have reverse Polish notation!
This is different from a CAS. For example, if you ask it to do exp(100)+1-exp(100), it does not rearrange and cancel out the two exp(100)s. Instead, it does exp, addition, and subtraction, all with as many digits as you ask for.
Sure. I was speaking to the what, not how.

> that doesn’t round at all. It computes with constructive real numbers: every result is exact, and you can scroll any answer for as many correct digits as you want.

A CAS is a practical way to achieve this, where everything is stored symbolically, with no rounding, until final calculation. Unlimited precision was through Erable [1]. This was included with/as HP49 CAS, but was an add-on with HP48. Many HP48 are on the iOS app store. The one I tried about a decade ago had the add-on, and I see many still there (but not sure if they have the add-on).

The "S" in CAS is "system", so it's a bit open.

[1] https://en.wikipedia.org/wiki/Erable