64-bit floating point: Difference between revisions

From NDWiki
Jump to navigation Jump to search
(Initial 64-bit floating point page)
 
(Rewritten, extended, reference to document added)
 
Line 1: Line 1:
'''Norsk Data 64-bit double precision format:'''
'''Norsk Data 64-bit double precision floating point format:'''
{|
 
|-
The [[ND-500]] and [[ND-5000 family|ND-5000]] came with 64-bit floating point hardware support, except for the models missing the floating point unit [[Additional Arithmetic Processor|AAP]] altogether, e.g. the ND-5200. 64-bit double precision was also in use on the [[NORD-10]] and [[ND-100]], although only in software, there was no hardware support on the 16-bit systems (and it was therefore slow).
| bit 63 || (1 bit)  || Sign bit
 
|-
Unlike the IEEE double precision/single precision formats, the ND double precision format is just the [[32-bit floating point|single precision]] format extended with 32 more bits in the mantissa, i.e. increasing only the precision and not the range.
| bit 62-54 ||  (9 bits) || Exponent
|-
| bit 53-0 || (54 bits) || Mantissa
|-
|}
Exponent has a bias of +256. (Subtract 256 to get true exponent)


'''Special values for exponent:'''
{|class="wikitable"
{|
!Field !! #Bits !! Purpose
|-
|-
| ''All bits zero except sign bit'': || '''Floating underflow'''.
|bit 63 || 1 ||Sign bit
|-
|-
| ''0 (binary 0, aka 0x00)'': || '''Zero'''
|bit 62-54 || 9 || Exponent
|-
|-
| bit 53-0 || 54 || Mantissa
|}
|}


Mantissa has an implicit 55th bit of 1 (unless mantissa is 0).
* The mantissa is normalized: 0.5 ≤ ''mantissa'' ≤ 1
This is the 0.5 bit, i.e. mantissa is normalised to be 0.5 < mantissa < 1.0
* The mantissa always has an implicit 55th bit of 1, unless the exponent is zero (see below)
* The decimal point is thus to the left of the implicit 55th bit (before exponent is applied)
* The exponent has a bias of +256 (subtract 256 to get true exponent)
 
'''Special values'''
 
* All bits zero except sign bit: '''Floating underflow'''
* All bits of exponent zero: '''Zero''' (sign bit or mantissa values are ignored)


Decimal point is thus to the left of the implicit 55th bit.
'''Precision'''
* 55 bits or approximately 16 decimal digits


Unlike IEEE the ND 64-bit double precision format is just the [[32-bit_floating_point|32-bit single precision format]] extended with more bits in the mantissa.
'''Range'''
* (2<sup>-256</sup> - 0.5) &le; X &lt; (2<sup>255</sup> - 1) or X = 0
or approximately
* +/- 8.6*10<sup>-78</sup> &lt; X &lt; +/- 5.8*10<sup>76</sup>


The 64-bit floating point format is supported in hardware on ND-500/5000 models with FPU hardware. On the ND-100 double precision floating point processing had to be done in software.
=== Sources ===
* {{ND-doc|05.009.03}}

Latest revision as of 04:45, 25 May 2016

Norsk Data 64-bit double precision floating point format:

The ND-500 and ND-5000 came with 64-bit floating point hardware support, except for the models missing the floating point unit AAP altogether, e.g. the ND-5200. 64-bit double precision was also in use on the NORD-10 and ND-100, although only in software, there was no hardware support on the 16-bit systems (and it was therefore slow).

Unlike the IEEE double precision/single precision formats, the ND double precision format is just the single precision format extended with 32 more bits in the mantissa, i.e. increasing only the precision and not the range.

Field #Bits Purpose
bit 63 1 Sign bit
bit 62-54 9 Exponent
bit 53-0 54 Mantissa
  • The mantissa is normalized: 0.5 ≤ mantissa ≤ 1
  • The mantissa always has an implicit 55th bit of 1, unless the exponent is zero (see below)
  • The decimal point is thus to the left of the implicit 55th bit (before exponent is applied)
  • The exponent has a bias of +256 (subtract 256 to get true exponent)

Special values

  • All bits zero except sign bit: Floating underflow
  • All bits of exponent zero: Zero (sign bit or mantissa values are ignored)

Precision

  • 55 bits or approximately 16 decimal digits

Range

  • (2-256 - 0.5) ≤ X < (2255 - 1) or X = 0

or approximately

  • +/- 8.6*10-78 < X < +/- 5.8*1076

Sources