[Cuis-dev] denormals
Martin McClure
martin at hand2mouse.com
Thu Nov 20 11:06:17 PST 2025
Avoiding subnormal floats is desirable, since subnormals have fewer
significant bits than normal floats. This should ideally be done by
designing the application to do its computations so that subnormals are
never created. Forcing subnormals to go to zero is the wrong direction
entirely -- that is saying "I've lost some bits of accuracy, so now
let's throw away /all/ the bits and have /no/ accuracy."
A faster path to a wrong answer is seldom, if ever, a good trade.
Regards,
-Martin
On 11/20/25 10:00 AM, Luciano Notarfrancesco via Cuis-dev wrote:
> It seems to me that when working with floats in Cuis we should try to
> avoid denormals (or subnormals, i.e. floats that are very close to 0
> but not 0). They used to be slower than other floats in old CPUs, and
> they are not so much of a problem anymore in modern CPUs, but I think
> they would still be problematic in Cuis because they turn into
> BoxedFloat64 (instead of SmallFloat64). What’s the best way to handle
> them? For the time being I implemented BoxedFloat64>>undenormalized as:
> self isDenormalized ifTrue: [^ 0.0]
> and in Float just returns self. The method isDenormalized comes in the
> base image, but it’s not super fast. Is there a better way to do it?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20251120/71ec3ff7/attachment.htm>
More information about the Cuis-dev
mailing list