Representation of unit range numbers

Floating–point representation has a large dynamic range but can be inefficient for computations with values that have a limited range. This issue is explored here for values in the range −1 to 1, which, for instance, is the range of some trigonometric functions and exponentials. Examples are shown in which the results are inaccurate, because of the small density of the representation close to 1. Although a fractional fixedpoint representation seems suitable for these computations, its uniform density does not allow the representation of values close to zero and close to one, resulting in similar inaccuracies. To improve the accuracy, we propose a more suitable representation, that we call unity representation. This representation is able to represent very small values with high accuracy, as in floating point, as well as values very close to 1. We show the advantages of this representation providing several computation examples. Moreover, we list the architectural support that is needed to use this representation in a floating-point processor.