Help Privacy Policy Disclaimer
  Advanced SearchBrowse





The LEDA class real number


Burnikel,  Christoph
Algorithms and Complexity, MPI for Informatics, Max Planck Society;


Mehlhorn,  Kurt
Algorithms and Complexity, MPI for Informatics, Max Planck Society;


Schirra,  Stefan
Algorithms and Complexity, MPI for Informatics, Max Planck Society;

External Resource
No external resources are shared
Fulltext (restricted access)
There are currently no full texts shared for your IP range.
Fulltext (public)

(Any fulltext), 18MB

Supplementary Material (public)
There is no public supplementary material available

Burnikel, C., Mehlhorn, K., & Schirra, S.(1996). The LEDA class real number (MPI-I-1996-1-001). Saarbrücken: Max-Planck-Institut für Informatik.

Cite as: https://hdl.handle.net/11858/00-001M-0000-0014-A1AD-E
We describe the implementation of the LEDA data type {\bf real}. Every integer is a real and reals are closed under the operations addition, subtraction, multiplication, division and squareroot. The main features of the data type real are \begin{itemize} \item The user--interface is similar to that of the built--in data type double. \item All comparison operators $\{>, \geq, <, \leq, =\}$ are {\em exact}. In order to determine the sign of a real number $x$ the data type first computes a rational number $q$ such that $|x| \leq q$ implies $x = 0$ and then computes an approximation of $x$ of sufficient precision to decide the sign of $x$. The user may assist the data type by providing a separation bound $q$. \item The data type also allows to evaluate real expressions with arbitrary precision. One may either set the mantissae length of the underlying floating point system and then evaluate the expression with that mantissa length or one may specify an error bound $q$. The data type then computes an approximation with absolute error at most $q$. \end{itemize} The implementation of the data type real is based on the LEDA data types {\bf integer} and {\bf bigfloat} which are the types of arbitrary precision integers and floating point numbers, respectively.The implementation takes various shortcuts for increased efficiency, e.g., a {\bf double} approximation of any real number together with an error bound is maintained and tests are first performed on these approximations. A high precision computation is only started when the test on the {\bf double} approximation is inconclusive.