Hacker News new | ask | show | jobs
by noosphr 13 days ago
I once replaced IEEE 754 floating point numbers in a model by balanced ternary floating point numbers.

It took me 20 minutes.

Tell me how you'd do that in cpp?

1 comments

lol the same way we implement all of the reduced precision fp8, fp4 types today: by storing them in the corresponding uint:

https://github.com/ggml-org/llama.cpp/discussions/15095

Balanced ternary fp is not a reduced precision type of binary fp: https://arxiv.org/abs/2512.10964

>Unlike their binary counterparts, posits and takums, tekums simultaneously accommodate both ∞ and NaR, while retaining the simplicity of negation by flipping the underlying trit string. Perhaps most strikingly, tekums enable rounding by truncation, a property that eradicates at a stroke some notorious problems of rounding in binary arithmetic: double rounding errors, cascading carries in hardware, and the attendant inefficiencies.

> Balanced ternary fp is not a reduced precision type of binary fp

Yes I can read very well - can you?

> ... by storing them in the corresponding uint

You do realise that you need to store arbitrary binary blobs which don't nicely align to memory words?

And that once you can store them you need to write custom functions that do bitwise manipulation on those arbitrary blocks of memory?

The stuff that's done in hardware for you on all binary fp?

Meanwhile in racket I got arbitrary balanced ternary manista and exponent precision in less time it took to write this post. Something that not available in C/Cpp even for binary fp?

> You do realise that you need to store arbitrary binary blobs which don't nicely align to memory words? And that once you can store them you need to write custom functions that do bitwise manipulation on those arbitrary blocks of memory?

Yes what part of my response to you gave you the impression that I did not?

> Meanwhile in racket I got arbitrary balanced ternary manista and exponent precision in less time it took to write this post.

Your claim was that it could not be done in cpp, not that it was faster/simpler/whatever-new-goalpost-you're-now-presenting in racket.

> less time it took to write this post

An interpreted language with a runtime and a GC is easier to use than a systems language? I think this novel discovery is worth a turing award indeed! I'll be sure to refer you for one. Maybe even an honorary doctorate at my alma mater.

> Your claim was that it could not be done in cpp, not that it was faster/simpler/whatever-new-goalpost-you're-now-presenting in racket.

You need to reread the reply they made. They asked how you would do it in cpp, not that it’s not possible.

> I think this novel discovery is worth a turing award indeed! I'll be sure to refer you for one. Maybe even an honorary doctorate at my alma mater.

You could have made your point sufficiently without being condescending.

Racket is not interpreted. It is compiled to machine code. You don't know what you're talking about.