  Logarithmic Number Systems (LNS) hold considerable promise in helping reduce
the number of bits needed to represent a high dynamic range of real-numbers
with finite precision, and also efficiently support multiplication and
division. However, under LNS, addition and subtraction turn into non-linear
functions that must be approximated - typically using precomputed table-based
functions. Additionally, multiple layers of error correction are typically
needed to improve result accuracy. Unfortunately, previous efforts have not
characterized the resulting error bound. We provide the first rigorous analysis
of LNS, covering detailed techniques such as co-transformation that are crucial
to implementing subtraction with reasonable accuracy. We provide theorems
capturing the error due to table interpolations, the finite precision of
pre-computed values in the tables, and the error introduced by fix-point
multiplications involved in LNS implementations. We empirically validate our
analysis using a Python implementation, showing that our analytical bounds are
tight, and that our testing campaign generates inputs diverse-enough to almost
match (but not exceed) the analytical bounds. We close with discussions on how
to adapt our analysis to LNS systems with different bases and also discuss many
pragmatic ramifications of our work in the broader arena of scientific
computing and machine learning.
