Floating point precision
In the INTEL architecture it is possible to configure the CPU to perform
floating-point calculations at various precisions namely 80-bit
(REAL(KIND= 3)), 64-bit (DOUBLE PRECISION, REAL(2)), and 32-bit (REAL(1)).
Traditionally (Win32) Silverfrost Fortran has selected 80-bit precision for all
internal floating-point calculations. When dealing with REAL(1) or DOUBLE
PRECISION (REAL(2)) values, this extra internal precision can help to
ensure that the least significant bit of a number is accurate. It also means
that REAL(3) calculations are possible. The FTN95 compiler option /DREAL forces
all single precision variables to DOUBLE PRECISION whilst /XREAL forces
all single and double precision variables to REAL(3) (see also /DEFREAL_KIND).
In the .NET architecture Microsoft configure the CPU to operate at 64-bit
precision. This can result in slight numerical differences when FTN95 .NET
calculations are compared with Win32 calculations. It also means that
the REAL(KIND=3) and COMPLEX(KIND=3) types are not available on a .NET
platform. Similarly the /XREAL option cannot be used for .NET.
|