The Library of Efficient Data types and Algorithms (LEDA) is a
proprietarily-licensed software library
In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
providing
C++ implementations of a broad variety of
algorithms
In mathematics and computer science, an algorithm () is a finite sequence of mathematically rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for per ...
for
graph theory
In mathematics and computer science, graph theory is the study of ''graph (discrete mathematics), graphs'', which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of ''Vertex (graph ...
and
computational geometry.
[.] It was originally developed by the
Max Planck Institute for Informatics
The Max Planck Institute for Informatics (German: ''Max-Planck-Institut für Informatik'', abbreviated ''MPI-INF'' or ''MPII'') is a research institute in computer science with a focus on algorithms and their applications in a broad sense. It host ...
Saarbrücken
Saarbrücken (; Rhenish Franconian: ''Sabrigge'' ; ; ; ; ) is the capital and largest List of cities and towns in Germany, city of the state of Saarland, Germany. Saarbrücken has 181,959 inhabitants and is Saarland's administrative, commerci ...
.
From 2001 to 2022 LEDA was further developed and commercially distributed by the Algorithmic Solutions Software GmbH.
Technical details
Data types
Numerical representations
LEDA provides four additional numerical representations alongside those built-in to C++:
integer
,
rational
,
bigfloat
, and
real
:
*LEDA's
integer
type offers an improvement over the built-in
int
datatype by eliminating the problem of
overflow at the cost of unbounded memory usage for increasingly large numbers.
*It follows that LEDA's
rational
type has the same resistance to overflow because it is based directly on the mathematical definition of
rational
Rationality is the quality of being guided by or based on reason. In this regard, a person acts rationally if they have a good reason for what they do, or a belief is rational if it is based on strong evidence. This quality can apply to an ...
as the quotient of two
integer
s.
*The
bigfloat
type improves on the C++ floating-point types by allowing for the
significand
The significand (also coefficient, sometimes argument, or more ambiguously mantissa, fraction, or characteristic) is the first (left) part of a number in scientific notation or related concepts in floating-point representation, consisting of its s ...
(also commonly called mantissa) to be set to an arbitrary level of precision instead of following the
IEEE standard
The Institute of Electrical and Electronics Engineers Standards Association (IEEE SA) is an operating unit within IEEE that develops global standards in a broad range of industries, including: power and energy, artificial intelligence systems, ...
.
*LEDA's
real
type allows for precise representations of
real numbers
In mathematics, a real number is a number that can be used to measurement, measure a continuous variable, continuous one-dimensional quantity such as a time, duration or temperature. Here, ''continuous'' means that pairs of values can have arbi ...
, and can be used to compute the sign of a radical expression.
Error checking
LEDA makes use of
certifying algorithms to demonstrate that the results of a function are mathematically correct. In addition to the input and output of a function, LEDA computes a third "witness" value which can be used as an input to checker programs to validate the output of the function. LEDA's checker programs were developed in Simpl, an
imperative programming language
In computer science, imperative programming is a programming paradigm of software that uses statements that change a program's state. In much the same way that the imperative mood in natural languages expresses commands, an imperative program con ...
, and validated using
Isabelle/HOL, a software tool for checking the correctness of mathematical proofs.
The nature of a witness value often depends on the type of mathematical calculation being performed. For LEDA's planarity testing function, If the graph is
planar, a combinatorial
embedding
In mathematics, an embedding (or imbedding) is one instance of some mathematical structure contained within another instance, such as a group (mathematics), group that is a subgroup.
When some object X is said to be embedded in another object Y ...
is produced as a witness. If not, a
Kuratowski subgraph is returned. These values can then be passed directly to checker functions to confirm their validity. A developer only needs to understand the inner-workings of these checker functions to be confident that the result is correct, which greatly reduces the learning curve compared to gaining a full understanding of LEDA's planarity testing algorithm.
Use cases
LEDA is useful in the field of
computational geometry due to its support for exact representations of
real numbers
In mathematics, a real number is a number that can be used to measurement, measure a continuous variable, continuous one-dimensional quantity such as a time, duration or temperature. Here, ''continuous'' means that pairs of values can have arbi ...
via the
leda_real
datatype. This provides an advantage in accuracy over
floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a Sign (mathematics), signed sequence of a fixed number of digits in some Radix, base) multiplied by an integer power of that ba ...
. For example, calculations involving radicals are considerably more accurate when computed using
leda_real
. Algorithms such as
parametric search
In the design and analysis of algorithms for combinatorial optimization, parametric search is a technique invented by for transforming a decision algorithm (does this optimization problem have a solution with quality better than some given thres ...
, a technique for solving a subset of optimization problems, and others under the
real RAM
In computing, especially computational geometry, a real RAM (random-access machine) is a mathematical model of a computer that can compute with exact real numbers instead of the binary fixed-point or floating-point numbers used by most actual co ...
model of computation rely upon real number parameters to produce accurate results.
Alternatives
Boost and
LEMON
The lemon (''Citrus'' × ''limon'') is a species of small evergreen tree in the ''Citrus'' genus of the flowering plant family Rutaceae. A true lemon is a hybrid of the citron and the bitter orange. Its origins are uncertain, but some ...
are potential alternative libraries with some benefits in efficiency due to different implementations of fundamental algorithms and data structures. However, neither employs a similar set of correctness checking, particularly when dealing with floating-point arithmetic.
References
External links
*
Computer libraries
Max Planck Institute for Informatics
{{compu-library-stub