Posit value tables

The program “education/tables/edu_tables_posits” will generate the posit encodings and associated real values for reference. These tables are a great aid in understanding posit arithmetic and rounding.

>:~/dev/universal/build$ education/tables/edu_tables_posits::
    Generate posit configurations
    -128         100101         111011 Sign : -1 Regime :   1 Exponent :     8 Fraction :        1 Value :             -128 11
   Generate Posit Lookup table for a POSIT<3,0>
       #           Binary         Decoded       k    sign   scale          regime        exponent        fraction                         value
       0:              000             000      -2       1      -2               00               ~               ~                             0
       1:              001             001      -1       1      -1               01               ~               ~                           0.5
       2:              010             010       0       1       0               10               ~               ~                             1
       3:              011             011       1       1       1               11               ~               ~                             2
       4:              100             100       2      -1       2               00               ~               ~                           NaR
       5:              101             111       1      -1       1               11               ~               ~                            -2
       6:              110             110       0      -1       0               10               ~               ~                            -1
       7:              111             101      -1      -1      -1               01               ~               ~                          -0.5
   Generate Posit Lookup table for a POSIT<4,0>
       #           Binary         Decoded       k    sign   scale          regime        exponent        fraction                         value
       0:             0000            0000      -3       1      -3               000               ~               -                             0
       1:             0001            0001      -2       1      -2               001               ~               -                          0.25
       2:             0010            0010      -1       1      -1               01-               ~               0                           0.5
       3:             0011            0011      -1       1      -1               01-               ~               1                          0.75
       4:             0100            0100       0       1       0               10-               ~               0                             1
       5:             0101            0101       0       1       0               10-               ~               1                           1.5
       6:             0110            0110       1       1       1               110               ~               -                             2
       7:             0111            0111       2       1       2               111               ~               -                             4
       8:             1000            1000       3      -1       3               000               ~               -                           NaR
       9:             1001            1111       2      -1       2               111               ~               -                            -4
      10:             1010            1110       1      -1       1               110               ~               -                            -2
      11:             1011            1101       0      -1       0               10-               ~               1                          -1.5
      12:             1100            1100       0      -1       0               10-               ~               0                            -1
      13:             1101            1011      -1      -1      -1               01-               ~               1                         -0.75
      14:             1110            1010      -1      -1      -1               01-               ~               0                          -0.5
      15:             1111            1001      -2      -1      -2               001               ~               -                         -0.25
    Generate Posit Lookup table for a POSIT<4,1>
       #           Binary         Decoded       k    sign   scale          regime        exponent        fraction                         value
       0:             0000            0000      -3       1      -6               000               -               ~                             0
       1:             0001            0001      -2       1      -4               001               -               ~                        0.0625
       2:             0010            0010      -1       1      -2               01-               0               ~                          0.25
       3:             0011            0011      -1       1      -1               01-               1               ~                           0.5
       4:             0100            0100       0       1       0               10-               0               ~                             1
       5:             0101            0101       0       1       1               10-               1               ~                             2
       6:             0110            0110       1       1       2               110               -               ~                             4
       7:             0111            0111       2       1       4               111               -               ~                            16
       8:             1000            1000       3      -1       6               000               -               ~                           NaR
       9:             1001            1111       2      -1       4               111               -               ~                           -16
      10:             1010            1110       1      -1       2               110               -               ~                            -4
      11:             1011            1101       0      -1       1               10-               1               ~                            -2
      12:             1100            1100       0      -1       0               10-               0               ~                            -1
      13:             1101            1011      -1      -1      -1               01-               1               ~                          -0.5
      14:             1110            1010      -1      -1      -2               01-               0               ~                         -0.25
      15:             1111            1001      -2      -1      -4               001               -               ~                       -0.0625
    Generate Posit Lookup table for a POSIT<5,0>
       #           Binary         Decoded       k    sign   scale          regime        exponent        fraction                         value
       0:            00000           00000      -4       1      -4               0000               ~               --                             0
       1:            00001           00001      -3       1      -3               0001               ~               --                         0.125
       2:            00010           00010      -2       1      -2               001-               ~               0-                          0.25
       3:            00011           00011      -2       1      -2               001-               ~               1-                         0.375
       4:            00100           00100      -1       1      -1               01--               ~               00                           0.5
       5:            00101           00101      -1       1      -1               01--               ~               01                         0.625
       6:            00110           00110      -1       1      -1               01--               ~               10                          0.75
       7:            00111           00111      -1       1      -1               01--               ~               11                         0.875
       8:            01000           01000       0       1       0               10--               ~               00                             1
       9:            01001           01001       0       1       0               10--               ~               01                          1.25
      10:            01010           01010       0       1       0               10--               ~               10                           1.5
      11:            01011           01011       0       1       0               10--               ~               11                          1.75
      12:            01100           01100       1       1       1               110-               ~               0-                             2
      13:            01101           01101       1       1       1               110-               ~               1-                             3
      14:            01110           01110       2       1       2               1110               ~               --                             4
      15:            01111           01111       3       1       3               1111               ~               --                             8
      16:            10000           10000       4      -1       4               0000               ~               --                           NaR
      17:            10001           11111       3      -1       3               1111               ~               --                            -8
      18:            10010           11110       2      -1       2               1110               ~               --                            -4
      19:            10011           11101       1      -1       1               110-               ~               1-                            -3
      20:            10100           11100       1      -1       1               110-               ~               0-                            -2
      21:            10101           11011       0      -1       0               10--               ~               11                         -1.75
      22:            10110           11010       0      -1       0               10--               ~               10                          -1.5
      23:            10111           11001       0      -1       0               10--               ~               01                         -1.25
      24:            11000           11000       0      -1       0               10--               ~               00                            -1
      25:            11001           10111      -1      -1      -1               01--               ~               11                        -0.875
      26:            11010           10110      -1      -1      -1               01--               ~               10                         -0.75
      27:            11011           10101      -1      -1      -1               01--               ~               01                        -0.625
      28:            11100           10100      -1      -1      -1               01--               ~               00                          -0.5
      29:            11101           10011      -2      -1      -2               001-               ~               1-                        -0.375
      30:            11110           10010      -2      -1      -2               001-               ~               0-                         -0.25
      31:            11111           10001      -3      -1      -3               0001               ~               --                        -0.125
    Generate Posit Lookup table for a POSIT<5,1>
       #           Binary         Decoded       k    sign   scale          regime        exponent        fraction                         value
       0:            00000           00000      -4       1      -8               0000               -               -                             0
       1:            00001           00001      -3       1      -6               0001               -               -                      0.015625
       2:            00010           00010      -2       1      -4               001-               0               -                        0.0625
       3:            00011           00011      -2       1      -3               001-               1               -                         0.125
       4:            00100           00100      -1       1      -2               01--               0               0                          0.25
       5:            00101           00101      -1       1      -2               01--               0               1                         0.375
       6:            00110           00110      -1       1      -1               01--               1               0                           0.5
       7:            00111           00111      -1       1      -1               01--               1               1                          0.75
       8:            01000           01000       0       1       0               10--               0               0                             1
       9:            01001           01001       0       1       0               10--               0               1                           1.5
      10:            01010           01010       0       1       1               10--               1               0                             2
      11:            01011           01011       0       1       1               10--               1               1                             3
      12:            01100           01100       1       1       2               110-               0               -                             4
      13:            01101           01101       1       1       3               110-               1               -                             8
      14:            01110           01110       2       1       4               1110               -               -                            16
      15:            01111           01111       3       1       6               1111               -               -                            64
      16:            10000           10000       4      -1       8               0000               -               -                           NaR
      17:            10001           11111       3      -1       6               1111               -               -                           -64
      18:            10010           11110       2      -1       4               1110               -               -                           -16
      19:            10011           11101       1      -1       3               110-               1               -                            -8
      20:            10100           11100       1      -1       2               110-               0               -                            -4
      21:            10101           11011       0      -1       1               10--               1               1                            -3
      22:            10110           11010       0      -1       1               10--               1               0                            -2
      23:            10111           11001       0      -1       0               10--               0               1                          -1.5
      24:            11000           11000       0      -1       0               10--               0               0                            -1
      25:            11001           10111      -1      -1      -1               01--               1               1                         -0.75
      26:            11010           10110      -1      -1      -1               01--               1               0                          -0.5
      27:            11011           10101      -1      -1      -2               01--               0               1                        -0.375
      28:            11100           10100      -1      -1      -2               01--               0               0                         -0.25
      29:            11101           10011      -2      -1      -3               001-               1               -                        -0.125
      30:            11110           10010      -2      -1      -4               001-               0               -                       -0.0625
      31:            11111           10001      -3      -1      -6               0001               -               -                     -0.015625
    Generate Posit Lookup table for a POSIT<5,2>
       #           Binary         Decoded       k    sign   scale          regime        exponent        fraction                         value
       0:            00000           00000      -4       1     -16               0000               --               ~                             0
       1:            00001           00001      -3       1     -12               0001               --               ~                0.000244140625
       2:            00010           00010      -2       1      -8               001-               0-               ~                    0.00390625
       3:            00011           00011      -2       1      -6               001-               1-               ~                      0.015625
       4:            00100           00100      -1       1      -4               01--               00               ~                        0.0625
       5:            00101           00101      -1       1      -3               01--               01               ~                         0.125
       6:            00110           00110      -1       1      -2               01--               10               ~                          0.25
       7:            00111           00111      -1       1      -1               01--               11               ~                           0.5
       8:            01000           01000       0       1       0               10--               00               ~                             1
       9:            01001           01001       0       1       1               10--               01               ~                             2
      10:            01010           01010       0       1       2               10--               10               ~                             4
      11:            01011           01011       0       1       3               10--               11               ~                             8
      12:            01100           01100       1       1       4               110-               0-               ~                            16
      13:            01101           01101       1       1       6               110-               1-               ~                            64
      14:            01110           01110       2       1       8               1110               --               ~                           256
      15:            01111           01111       3       1      12               1111               --               ~                          4096
      16:            10000           10000       4      -1      16               0000               --               ~                           NaR
      17:            10001           11111       3      -1      12               1111               --               ~                         -4096
      18:            10010           11110       2      -1       8               1110               --               ~                          -256
      19:            10011           11101       1      -1       6               110-               1-               ~                           -64
      20:            10100           11100       1      -1       4               110-               0-               ~                           -16
      21:            10101           11011       0      -1       3               10--               11               ~                            -8
      22:            10110           11010       0      -1       2               10--               10               ~                            -4
      23:            10111           11001       0      -1       1               10--               01               ~                            -2
      24:            11000           11000       0      -1       0               10--               00               ~                            -1
      25:            11001           10111      -1      -1      -1               01--               11               ~                          -0.5
      26:            11010           10110      -1      -1      -2               01--               10               ~                         -0.25
      27:            11011           10101      -1      -1      -3               01--               01               ~                        -0.125
      28:            11100           10100      -1      -1      -4               01--               00               ~                       -0.0625
      29:            11101           10011      -2      -1      -6               001-               1-               ~                     -0.015625
      30:            11110           10010      -2      -1      -8               001-               0-               ~                   -0.00390625
      31:            11111           10001      -3      -1     -12               0001               --               ~               -0.000244140625