LuaJIT uses NaN-tagging to represent Lua values in memory to save space.
Float64 numbers can be left alone, and other types are represented as NaN with the pointer bits stashed in the mantissa part of the float. Only one, canonical NaN value is recognized as such by the language, the others are disguised 32 bit pointers.
On microcontrollers, you might as well change to lookup tables if you are trying to do something real-time with more than 100 operations per millisecond.
This varies by microcontroller obviously.. this comes from reimplementing GLSL shadertoy samples for a neopixel grid.
It seems pretty clear to me. It doesn't support "no fpu". It's a lazy way of putting it though and "Architectures without FPU" would have been clearer.
LuaJIT uses NaN-tagging to represent Lua values in memory to save space.
Float64 numbers can be left alone, and other types are represented as NaN with the pointer bits stashed in the mantissa part of the float. Only one, canonical NaN value is recognized as such by the language, the others are disguised 32 bit pointers.