HanSolo wrote on 2023-02-02, 13:50:
Internally a x87 coprocessor uses 80 bit wide registers but hardly anyone really needs such a precision.
80 Bits weren't that bad, actually. Some calulactors used even higher accuracy or so I heard.
The creator(s) of the x87 FPU said that the FPU was most useful for practical users, not math fans.
"It is a common misconception that the more esoteric features of the IEEE 754 standard discussed here, such as extended formats,
NaN, infinities, subnormals etc., are only of interest to numerical analysts, or for advanced numerical applications.
In fact the opposite is true: these features are designed to give safe robust defaults for numerically unsophisticated programmers,
in addition to supporting sophisticated numerical libraries by experts.
The key designer of IEEE 754, William Kahan notes that it is incorrect to "... [deem] features of IEEE Standard 754
for Binary Floating-Point Arithmetic that ...[are] not appreciated to be features usable by none but numerical experts.
The facts are quite the opposite. In 1977 those features were designed into the Intel 8087 to serve the widest possible market...
Error-analysis tells us how to design floating-point arithmetic, like IEEE Standard 754,
moderately tolerant of well-meaning ignorance among programmers"."
The underlaying problem, I think, rather was portability and the dependency on the 64-Bit limitation of the C/C++ language.
This subservience to the C languages still exists, I think. Everyone has to bow down in front of C syntaxes, conventions etc.
Users of, say, BASIC and PASCAL always had to deal with the C dependencies inside of operating systems.
Except DOS and CP/M, maybe, which had a notable chunk of ASM. 😀
HanSolo wrote on 2023-02-02, 13:50:
My best guess would be that emulators limit calculation to 64 bit.
Yes, that seems plausible.
Math libraries and such used to use single-precision, afaik.
Turbo Pascal had the ability to include both x87 code and math libaries into executables.
So if an x87 (either real or as a software emulator) was around, it used x87 instructions;
otherwise, it used the math library (non-x87, just math algorithms).
Provided that both options were set by the programmer during compile time/linking.
Edit: Correction (regarding Turbo Pascal):
There were several floating point types, including single (the 4-byte (EEE 754) representation) double (the 8-byte IEEE 754 representation),
extended (a 10-byte IEEE 754 representation used mostly internally by numeric coprocessors) and Real (a 6-byte representation).
In the early days, Real was the most popular. Most PCs of the era did not have a floating point coprocessor so all FP had to be done in software.
Borland's own FP algorithms on Real were quicker than using the other types, though its library also emulated the other types in software. "
(*My father had one, since the had to have one. 😁 He worked as a programmer/developer, in the 80s and had to test the software..
Also Turbo Pascal 3 was very popular, it still existed on CP/M platform, too. We had an older version on 8" floppy, I vaguely remember..)
Edit: Perhaps it's worth to remember in which times the single- or double-precision was used, originally.
In the days of main frames, 8-Bit and 16-Bit computers, 64-Bit seemed huge. Hence the use of 64-Bit in the C/C++ language, I suppose.
Now 64-Bit is consiered very small or just "normal" (like 16-Bit or 32-Bit we used a few decades before).
Yes, we use 64-Bit CPUs but the SIMDs in them are capable of 128-Bit, 256-Bit and 512-Bit accuracy.
SSE itself used 128-Bit, AVX uses 256-bit and 512-Bit, depending on the generation..
Edit: My apologies for the many edits. The typos somehow didn't end. 😅
Edit: This link is also interesting. I had no idea the Motorola 68000 family of microchips had an Extended Precision counterpart (pun intended)!
https://en.wikipedia.org/wiki/Extended_precis … recision_Format
Edit: Sorry for the many edits. I have trouble to concentrate, too many mistakes and typos here. Even to my taste.
Edit: Never mind. Too much text.. Please just ignore this post and go on.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//