View previous topic :: View next topic |
Author |
Message |
MarkJordan
Joined: 18 Jan 2006 Posts: 11
|
Posted: Mon Apr 20, 2020 3:48 pm Post subject: Complex*32 |
|
|
I know I can get to complex*20 - 18 digit precision.
Is there any support for higher precision? |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Mon Apr 20, 2020 4:51 pm Post subject: |
|
|
complex*20 is available with FTN95 but only for Win32. Higher precision is not supported. |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Mon Apr 20, 2020 9:36 pm Post subject: |
|
|
The hardware does not provide it. |
|
Back to top |
|
 |
JohnCampbell
Joined: 16 Feb 2006 Posts: 2615 Location: Sydney
|
Posted: Tue Apr 21, 2020 2:51 am Post subject: |
|
|
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 |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Tue Apr 21, 2020 7:57 am Post subject: |
|
|
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. |
|
Back to top |
|
 |
Robert

Joined: 29 Nov 2006 Posts: 457 Location: Manchester
|
Posted: Tue Apr 21, 2020 6:31 pm Post subject: |
|
|
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 |
|
Back to top |
|
 |
JohnCampbell
Joined: 16 Feb 2006 Posts: 2615 Location: Sydney
|
Posted: Wed Apr 22, 2020 4:16 am Post subject: |
|
|
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. |
|
Back to top |
|
 |
Robert

Joined: 29 Nov 2006 Posts: 457 Location: Manchester
|
Posted: Wed Apr 22, 2020 10:14 am Post subject: |
|
|
FTN95 x64 has always used the SSE instructions for floating point arithmetic. |
|
Back to top |
|
 |
JohnCampbell
Joined: 16 Feb 2006 Posts: 2615 Location: Sydney
|
Posted: Tue May 19, 2020 10:00 am Post subject: Re: |
|
|
Robert wrote: | 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. |
|
Back to top |
|
 |
|