Subject:Acid Internal Processing
Posted by: danika
Date:9/26/2005 6:11:57 PM
I suspect that the internal processing for Acid is done using 32-bit floating point math, but I haven't able to verify that. Anyone know for sure? |
Subject:RE: Acid Internal Processing
Reply by: CodedoC
Date:9/27/2005 8:52:58 PM
Most programmers prefer to use a "double" float for all floating point calculations, so I suspect ACID also uses double floats. A double is a 64-bit datatype. Note that all 32-bit Intel-compatible CPUs have an on-board floating point coprocessor. This coprocessor always works in 80-bits, performing all intermediate calculations in 80-bits to minimize underflow, and overflow, and round-off errors. When the floating point results get back into memory, they are normally delivered in 64-bit form (the double float), but could also be 32-bit (normal float) or even 80-bits (extended double float). As a software engineer, I can assure you that ACID uses many data types for many of its operations--some based on 32-bit integer arithmetic, and some using 64-bit floating operations. I use 64-bit integer arithmetic (which takes a little extra overhead for a 32-bit processor) in my code quite a bit, so even that is possible. So, when you ask whether ACID's internal processing is done with 32-bit floating point math, there really is no one clear answer since it depends on what part of the code you are talking about. All I can tell you is that the ACID program itself runs when the CPU is 32-bit addressing mode using 32-bit integer registers, and that its floating point calculations are most likely done in 64 bits (using 80-bit registers). |