[fpc-pascal] Floating point question

Bernd Oppolzer bernd.oppolzer at t-online.de
Sun Feb 11 23:21:01 CET 2024


Am 11.02.2024 um 17:31 schrieb Florian Klämpfl via fpc-pascal:
> On 09.02.24 15:00, greim--- via fpc-pascal wrote:
>> Hi,
>>
>> my test with Borland Pascal 7.0 running in dosemu2 running 80x87 code.
>> The compiler throws an error message for calculating HH and II with 
>> explicit type conversion.
>> The results of FF and GG are the same!
>> Even on 16 bit system!
>>
>> I think this behavior is right!
>
> The x87 fpu behavior is completely flawed as its precision is not 
> dependent on the instruction used but the state of the fpu.
>
> Overall, the intermediate float precision is a very difficult topic. 
> The famous Goldberg article 
> (https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) does 
> not suggest to use the highest possible precision after all. And an 
> additional interesting read: 
> https://randomascii.wordpress.com/2012/03/21/intermediate-floating-point-precision/
>
Many thanks for the links, I read them with interest; for me - working 
almost every day with IBM systems -
the remarks on the old IBM FP hex format (base 16) are very interesting. 
Today's IBM systems support IEEE as well.

IMO, the question regarding FP constants (not variables) in compilers is 
not yet answered fully. If we have an expression
consisting only of FP constants like in the original coding: should the 
FP constants indeed given different
FP types by the compiler? Or should the FP constants maybe have all the 
same type .. the largest type available?
This would automatically lead to a computation using the maximum 
precision, no matter if it is done at compile time
or at run time ... and this would IMHO be the solution which is the 
easiest to document and maybe to implement
and which would satisfy the users.

Kind regards

Bernd Oppolzer



More information about the fpc-pascal mailing list