[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Next annex Z interchange proposal



Basic layout:

{               Layout: sign [1]        Exp [E(L)]      Head [H(L)]
L -3 bits
        1 sign bit

        3 L bits -- indicate size of object

        E(L) exp bits

        F(L) significand bits

                H(L)    Head bits in first 32-bit Dword = 32 - 1 - 3 -
E(L)
                T(L)    Tail bits in remaining Dwords = F(L) - T(L)

}

                        Binary
L       size    Type    E(L)    F(L)    H(L)    T(L)
0       32      Num     15      13      13      0
1       64      Num     15      45      13      32
2       128     Num     15      109     13      96
3       256     Num     18      234     10      224
4       32*k    Esc     32      size-64 0       size-64
5       32      Inf     0       28      28      0
6       32      qNaN    0       28      28      0
7       32      sNaN    0       28      28      0

}                       Decimal
L       size    Type    E(L)    F(L)    H(L)    T(L)    Digits
0       32      Num     16      12      12      0       3
1       64      Num     16      44      12      32      11
2       128     Num     16      108     12      96      27
3       256     Num     20      232     8       224     58
4       32*k    Esc     32      size-64 0       size-64 "0<= k <
2^(32-4); 0 <= size<= 32*(2^28-1) = 8,589,934,560"
5       32      Inf     0       28      12      16
6       32      qNaN    0       28      12      16
7       32      sNaN    0       28      12      16


Issues:

Extended representations of single/double/quad

Redundant Inf/NaN encodings? What to do with large exponents

Subnormals?

Pointers?

Decimal types unnormalized.

What if you know you want to exchange some basic type but don't agree on
computation format?


754 | revision | FAQ | references | list archive