[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