Library Of Efficient Data Types And Algorithms
   HOME

TheInfoList



OR:

The Library of Efficient Data types and Algorithms (LEDA) is a proprietarily-licensed
software library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
providing
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
implementations of a broad variety of
algorithms In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing c ...
for
graph theory In mathematics, graph theory is the study of ''graphs'', which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of '' vertices'' (also called ''nodes'' or ''points'') which are conne ...
and
computational geometry Computational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry. Some purely geometrical problems arise out of the study of computational geometric algorithms, and such problems ar ...
.. 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 hosts ...
Saarbrücken Saarbrücken (; french: link=no, Sarrebruck ; Rhine Franconian: ''Saarbrigge'' ; lb, Saarbrécken ; lat, Saravipons, lit=The Bridge(s) across the Saar river) is the capital and largest city of the state of Saarland, Germany. Saarbrücken is S ...
. Since 2001, LEDA is further developed and distributed by the Algorithmic Solutions Software GmbH. LEDA is available as Free, Research, and Professional edition. The Free edition is
freeware Freeware is software, most often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the f ...
, with source code access available for purchase. The Research and Professional editions require payment of licensing fees for any use. Since October 2017, LEDA graph algorithms are also available for Java development environment.


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 reasons. 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 abi ...
as the quotient of two integers. *The bigfloat type improves on the C++ floating-point types by allowing for 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 measure a ''continuous'' one-dimensional quantity such as a distance, duration or temperature. Here, ''continuous'' means that values can have arbitrarily small variations. Every real ...
, 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 co ...
, and validated using
Isabelle/HOL The Isabelle automated theorem prover is a higher-order logic (HOL) theorem prover, written in Standard ML and Scala. As an LCF-style theorem prover, it is based on a small logical core (kernel) to increase the trustworthiness of proofs with ...
, 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 Planar is an adjective meaning "relating to a plane (geometry)". Planar may also refer to: Science and technology * Planar (computer graphics), computer graphics pixel information from several bitplanes * Planar (transmission line technologies), ...
, a combinatorial
embedding In mathematics, an embedding (or imbedding) is one instance of some mathematical structure contained within another instance, such as a group that is a subgroup. When some object X is said to be embedded in another object Y, the embedding is gi ...
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 Computational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry. Some purely geometrical problems arise out of the study of computational geometric algorithms, and such problems ar ...
due to its support for exact representations of
real numbers In mathematics, a real number is a number that can be used to measure a ''continuous'' one-dimensional quantity such as a distance, duration or temperature. Here, ''continuous'' means that values can have arbitrarily small variations. Every real ...
via the leda_real datatype. This provides an advantage in accuracy over
floating-point arithmetic In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
. 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 comp ...
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 trees in the flowering plant family Rutaceae, native to Asia, primarily Northeast India (Assam), Northern Myanmar or China. The tree's ellipsoidal yellow fruit is used for culin ...
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