dpiponi,
@dpiponi@mathstodon.xyz avatar

I don't know if I hallucinated this but maybe someone recognises it:

I'm sure I once (~20 years ago) saw an arbitrary precision real number library for C or C++ that worked by picking some fixed precision and worked until it produced a result at the required precision, or, if it convinced itself it couldn't achieve that precision, did some kind of backtracking so it could redo the computation at a higher fixed precision. Somewhat analogously to how transactional memory works - and I think under the hood there may have been some unusual memory model.

Sound familiar to anyone?

BartoszMilewski,
@BartoszMilewski@mathstodon.xyz avatar

@dpiponi On a multicore computer, it might make sense to start multiple fixed-point computations in parallel, and then kill them as they fail or as soon as one of them produces a result.

dpiponi,
@dpiponi@mathstodon.xyz avatar

@BartoszMilewski Right. This is a design pattern I've seen a few times, though in Haskell rather than C++.

mbr,
@mbr@mastodon.gamedev.place avatar

@dpiponi It does. The one I was aware of is not coming to me at the moment though.

dpiponi,
@dpiponi@mathstodon.xyz avatar

Maybe it's this https://en.wikipedia.org/wiki/Real_RAM and maybe my own memory is unreliable.

dpiponi,
@dpiponi@mathstodon.xyz avatar

Or specifically, I'm now sure it was this implementation: https://irram.uni-trier.de/

That transactional thing might be my own hallucination in which case I like it and maybe I'll implement it...

fanf,
@fanf@mendeddrum.org avatar

@dpiponi interesting!

there’s also https://www.chiark.greenend.org.uk/~sgtatham/spigot/ but that is a lot newer

simontatham,
@simontatham@hachyderm.io avatar

@fanf @dpiponi also spigot doesn't match any of the rest of that description! Exact real calculator, yes; but it doesn't come in library form¹, mostly doesn't work² by retrying calculations from scratch in higher and higher precision, and certainly doesn't do anything resembling transactional memory.

¹ unless you count the not-quite-published Python wrapper module

² a few number-generating classes do redo from start, but it's always a last-ditch fallback when I couldn't think of a better way

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • GTA5RPClips
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • osvaldo12
  • ethstaker
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • ngwrru68w68
  • kavyap
  • tester
  • cisconetworking
  • megavids
  • InstantRegret
  • khanakhh
  • cubers
  • everett
  • Durango
  • tacticalgear
  • Leos
  • modclub
  • normalnudes
  • provamag3
  • anitta
  • JUstTest
  • lostlight
  • All magazines