A logarithmic number system (LNS) is an arithmetic system used for representing real numbers in computer and digital hardware, especially for digital signal processing.
Overview A number, X {\displaystyle X} , is represented in an LNS by two components: the logarithm ( x {\displaystyle x} ) of its absolute value (as a binary word usually in two's complement), and its sign bit ( s {\displaystyle s} ):
X → { x = log b | X | , s = { 0 if X > 0 , 1 if X < 0. {\displaystyle X\rightarrow {\begin{cases}x=\log _{b}{\big |}X{\big |},\\s={\begin{cases}0{\text{ if }}X>0,\\1{\text{ if }}X<0.\end{cases}}\end{cases}}}
An LNS can be considered as a floating-point number with the significand being always equal to 1 and a non-integer exponent. This formulation simplifies the operations of multiplication, division, powers and roots, since they are reduced down to addition, subtraction, multiplication, and division, respectively. On the other hand, the operations of addition and subtraction are more complicated and are calculated by the formulae
log b ( | X | + | Y | ) = x + s b ( y − x ) , {\displaystyle \log _{b}{\big (}|X|+|Y|{\big )}=x+s_{b}(y-x),}
log b | | X | − | Y | | = x + d b ( y − x ) , {\displaystyle \log _{b}{\big |}|X|-|Y|{\big |}=x+d_{b}(y-x),}
where the "sum" function is defined by s b ( z ) = log b ( 1 + b z ) {\displaystyle s_{b}(z)=\log _{b}(1+b^{z})} , and the "difference" function by d b ( z ) = log b | 1 − b z | {\displaystyle d_{b}(z)=\log _{b}|1-b^{z}|} . These functions s b ( z ) {\displaystyle s_{b}(z)} and d b ( z ) {\displaystyle d_{b}(z)} are also known as Gaussian logarithms. The simplification of multiplication, division, roots, and powers is counterbalanced by the cost of evaluating these functions for addition and subtraction. This added cost of evaluation may not be critical when using an LNS primarily for increasing the precision of floating-point math operations.
History Logarithmic number systems have been independently invented and published at least three times as an alternative to fixed-point and floating-point number systems. Nicholas Kingsbury and Peter Rayner introduced "logarithmic arithmetic" for digital signal processing (DSP) in 1971. A similar LNS named "signed logarithmic number system" (SLNS) was described in 1975 by Earl Swartzlander and Aristides Alexopoulos; rather than use two's complement notation for the logarithms, they offset them (scale the numbers being represented) to avoid negative logs. Samuel Lee and Albert Edgar described a similar system, which they called the "Focus" number system, in 1977. The mathematical foundations for addition and subtraction in an LNS trace back to Zecchini Leonelli and Carl Friedrich Gauss in the early 1800s.
… excerpt ends here. Continue reading the full article.
