exacts: uint : 0...n sint : -n...-1 | uint ratn : ( p: sint, q: sint ) comp : ( r: ratn, i: ratn ) inexacts: double : ieee754 double with +inf, -inf, +nan, -nan cmp128 : ( r: double , i: double ) exact operations: uint + uint = uint sint + uint = sint ratn + uint = ratn [ ratn + ( p = uint , q = 0 ) ] ratn + sint = ratn [ ratn + ( p = sint , q = 0 ) ] ratn + ratn = ratn comp + uint = comp [ comp + ( r = ( p = uint , q = 0 ) , i = 0 ) ] comp + sint = comp [ comp + ( r = ( p = sint , q = 0 ) , i = 0 ) ] comp + ratn = comp [ comp + ( r = ratn , i = 0 ) ] comp + comp = comp inexact operations: double + double = double cmp128 + double = cmp128 [ cmp128 + ( r = double , i = 0 ) ]