size of _Float - Printable Version +- QB64 Phoenix Edition (https://staging.qb64phoenix.com) +-- Forum: Chatting and Socializing (https://staging.qb64phoenix.com/forumdisplay.php?fid=11) +--- Forum: General Discussion (https://staging.qb64phoenix.com/forumdisplay.php?fid=2) +--- Thread: size of _Float (/showthread.php?tid=871) Pages:
1
2
|
size of _Float - Jack - 09-09-2022 the wiki says that the size of _Float is 32 bytes, is that correct? https://qb64phoenix.com/qb64wiki/index.php/Variable_Types (I know that padding is needed for alignment but the size should be at most 16 bytes) RE: size of _Float - RhoSigma - 09-09-2022 (09-09-2022, 02:04 PM)Jack Wrote: the wiki says that the size of _Float is 32 bytes, is that correct? https://qb64phoenix.com/qb64wiki/index.php/Variable_Types It is what it is, and that already since the ancient SDL versions of QB64 more than a decade ago. Code: (Select All) DIM f AS _FLOAT RE: size of _Float - Jack - 09-09-2022 using a structure of 32 bytes I could rewrite my decfloat routines to give 56 digits vs 19 of _Float RE: size of _Float - mnrvovrfc - 09-09-2022 https://stackoverflow.com/questions/14221612/difference-between-long-double-and-double-in-c-and-c (Focus on the top answer in that page.) It must have been where it came from that "_FLOAT" used only 10-bytes. Otherwise the "long double" in C++ is vague. RE: size of _Float - Jack - 09-09-2022 I don't understand why you posted that link, don't see the relevance to this thread from the time the Intel FPU was introduced the extended type was 80-bits, some compiler makers don't like to implement 80-bit long double so they make long double the same as double the only thing that I am concerned here is the size, 80-bit = 10 bytes but it needs to be padded for memory alignment, in Windows 32-bit it should be 12 bytes total and in Windows 64-bit it should be 16 bytes total, in Linux I think that it's 16 bytes RE: size of _Float - SMcNeill - 09-09-2022 32-bits was chosen for _FLOAT as it was the largest size floating point type in the IEEE 754 specifications. https://en.wikipedia.org/wiki/IEEE_754 Now, we don't actually use more than a portion of those 256-bits, but Galleon *reserved* the type in case someone ever wanted to expand what we have to have 256-bit floating point precision. It's oversized by nature to allow for future architecture changes such as the 128 or 256 bit registers coming out on new PCs ten years from now. RE: size of _Float - Jack - 09-09-2022 thank you SMcNeill I hope that you are doing well in your health RE: size of _Float - SMcNeill - 09-09-2022 (09-09-2022, 05:27 PM)Jack Wrote: thank you SMcNeill We'll find out after Tuesday. My surgery is finally scheduled and we'll just have to wait until afterwards to see how it all goes. If all is good, it'll probably be a week or so until AFTER the surgery before you hear back from me. I'm supposed to be in intensive care for about a week, or so, so I doubt I'll be worried about posting any updates anywhere until I'm out of there at least. If you guys don't hear back from me by the end of the month, host a mug in my memory and know it was a pleasure and a blast getting to know all of you and interacting with you all. Even if the worst imaginable happens and I'm gone, QB64-PE will continue along with the rest of the development team without me. RE: size of _Float - SMcNeill - 09-09-2022 And as far as padding is concerned, you shouldn't need any for _FLOAT. 32-bit data structures are padded on 4-byte chunks. 64-bit data structures are padded on 8-byte chunks. A _FLOAT is 32-bytes and fits perfectly into both those patterns. Just make certain to count 32-bytes for the size, without getting confused over the fact that we're only currently using part of it. RE: size of _Float - Jack - 09-09-2022 SMcNeill, about what time is the surgery to take place? |