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

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to