I know I can get to complex*20 - 18 digit precision. Is there any support for higher precision?
Complex*32
complex*20 is available with FTN95 but only for Win32. Higher precision is not supported.
The hardware does not provide it.
Paul,
Is there a more extensive explanation ? Is a 8087 - 80 bit hardware supported in Win32 or is it emulated in 32-bit ? If it is available from Win32, why can't it be accessed from x64 ?
I did have a use for 80 bit use in eigenvector 'filtering' (Gram-Schmidt Orthogonalization), where I was calculating a tri-product of 2 eigenvectors and mass vector. I thought I proved that 80-bit filtering was better than 64-bit, although I gave that away with the 64-bit conversion. One of those projects on the to-do list. Might get a Covid bump up the list !
John
John
There will be but I don't have the experience and knowledge to give it.
With my limited understanding, if I wanted 80 bit reals in a 64 bit executable then I would set up a pipe to a 32 bit executable running in the background that would access the FPU. As I understand it, if there is a direct way to get to the FPU then Microsoft do not support it.
I think the hardware does provide it but it is difficult to use in x64. 80-bit reals use the FP stack model whereas efficient x64 code uses SSE instructions. 80-bit reals are not supported in .NET either
It has been a puzzle to me to know if there is still an '80-bit 8087' like FPU on modern processors. Certainly we are encouraged to use SSE or AVX instructions due to their efficiency. But if an 80-bit hardware computation existed for, say dot_product_80, it can in theory improve the accuracy, without resorting to a much slower higher precision emulation library. It is only recently that FTN95 has provided access to SSE and AVX, so haven't we been mostly using 64-bit calculations, without the extra bits that 80-bit registers provide, at no performance cost?
I do have a dot_product_kahan (...), although only used it in test examples.
I never had a FE modelling job where 80 bit made a real difference. Not sure why, as in theory it could, although all the arrays were real*8. I did these tests many years ago.
FTN95 x64 has always used the SSE instructions for floating point arithmetic.
Quoted from Robert FTN95 x64 has always used the SSE instructions for floating point arithmetic.
Robert, when you say 'SSE instructions', do you mean 64-bit (as opposed to 80-bit) ? I understand FTN95 /OPT does not incorporate any SSE or AVX register/vector instructions for FP calculations.