Promotion rules ... why no float?
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 7 10:16:20 PDT 2016
On Wednesday, 7 September 2016 at 14:46:46 UTC, Sai wrote:
> I suspected the same, most of the CPUs support fast floating
> point operations anyway (with FPUs), shouldn't take a lot more
> time than doing integer arithmetic. Unless we are targeting
> 8bit avr or something similar.
>
No. Floating point in binaries are represented as
v = m * 2 ^ e
Now:
v0 / v1 = (m0 * 2 ^ e0) / (m1 * 2 ^ e1)
v0 / v1 = (m0 / m1) * 2 ^ (e0 - e1)
ie to do a 32 bits float division, you need to do a 24 bits
integer division, while when doing a 32bits integer division you
need to do a 32bits integer division (!)
The same apply to floating point multiply that are usually faster
than integer multiply. In fact, on some machines, multiplying
floats is faster than adding them.
More information about the Digitalmars-d
mailing list