Next: Basics
Up: The LEDA-4.4 Manual
Previous: License Terms and Availability
Preface
One of the major differences between combinatorial computing and other areas of
computing such as statistics, numerical analysis and linear programming is the
use of complex data types. Whilst the built-in types, such as integers, reals,
vectors, and matrices, usually suffice in the other areas, combinatorial
computing relies heavily on types like stacks, queues, dictionaries, sequences,
sorted sequences, priority queues, graphs, points, segments, ... In the
fall of 1988, we started a project (called LEDA for Library of Efficient
Data types and Algorithms) to build a small, but growing library of data types
and algorithms in a form which allows them to be used by non-experts. We hope
that the system will narrow the gap between algorithms research, teaching, and
implementation. The main features of LEDA are:
- 1.
- LEDA provides a sizable collection of data types and algorithms in a form
which allows them to be used by non-experts. This
collection includes most of the data types and algorithms described in the
text books of the area.
- 2.
- LEDA gives a precise and readable specification for each of the data types
and algorithms mentioned above. The specifications are short (typically,
not more than a page), general (so as to allow several implementations),
and abstract (so as to hide all details of the implementation).
- 3.
- For many efficient data structures access by position is important. In
LEDA, we use an item concept to cast positions into an abstract form. We
mention that most of the specifications given in the LEDA manual use this
concept, i.e., the concept is adequate for the description of many data
types.
- 4.
- LEDA contains efficient implementations for each of the data types, e.g.,
Fibonacci heaps for priority queues, skip lists and dynamic perfect
hashing for dictionaries, ...
- 5.
- LEDA contains a comfortable data type graph. It offers the standard
iterations such as ``for all nodes v of a graph G do'' or ``for all
neighbors w of v do'', it allows to add and delete vertices and edges
and it offers arrays and matrices indexed by nodes and edges,...
The data type graph allows to write programs for graph problems in a
form close to the typical text book presentation.
- 6.
- LEDA is implemented by a C++ class library. It can be used with almost
any C++ compiler that supports templates.
- 7.
- LEDA is available from Algorithmic Solutions Software GmbH. See
http://www.algorithmic-solutions.com.
This manual contains the specifications of all data types and algorithms
currently available in LEDA. Users should be familiar with the C++
programming language (see [74] or [50]).
The manual is structured as follows: In Chapter
Basics, which is a
prerequisite for all other chapters, we discuss the basic concepts and
notations used in LEDA. New users of LEDA should carefully read Section
User Defined Parameter Types to avoid problems when plugging in self
defined parameter types. If you want to get information about the LEDA
documentation scheme please read Section DocTools.
For technical
information concerning the installation and usage of LEDA
users should refer to Chapter
TechnicalInformation. There is also a section describing
namespaces and the interaction with other software
libraries (Section NameSpace). The other chapters define the data types and algorithms available
in LEDA and give examples of their use. These chapters can be consulted
independently from one another.
More information about LEDA can be found on the LEDA web page:
http://www.algorithmic-solutions.com/enleda.html
Finally there's a tool called xlman which allows online help and
demonstration on all unix platforms having a LATEX package installed.
New in Version 4.4
-
- Version Macro:
__LEDA__ (defined
to 440 in this version)
-
- New Compilers Supported:
-
-
-
- - Windows: Microsoft Visual C++ .NET, Borland C++ Builder
6 (bcc32 5.6)
- - Unix: g++-3.1, g++-3.2, SunPro C++ 5.3 (Forte 6.2),
NEC SX-C++
-
- Namespace leda:
- LEDA now defines all names (types, functions, constants, ...) in the namespace
``leda''. This makes the former macro-based prefixing scheme obsolete. Note,
however, that the prefixed names ``leda_...'' still can be used for backward
compatibility. Application programs have to use namespace ``leda'' globally
(by saying ``using namespace leda;'') or must prefix every LEDA symbol with
``leda::''. All demo and test programs have been changed accordingly.
- Graphs:
- LEDA offers new static graph types as described in [81]. Based on these new types there are improved
network flow algorithms.
- Geometry:
-
-
-
- - The rational kernel is now based on a new and more
efficient (semi-dynamic) floating-point filter.
- - All handle types, that is, basically all geometric
objects, are using less space now. The improvement for points, for example,
is about 25%.
- - There are new and more efficient MINKOWSKI functions
available.
- - A number of new geometric primitives have been added.
- Visualization:
-
-
-
- - OpenGL support (see <LEDA/gl_window.h>)
- - New and improved version of GeoWin
Please read the CHANGES and FIXES files in the LEDA root directory for more
information.
Next: Basics
Up: The LEDA-4.4 Manual
Previous: License Terms and Availability
© Copyright 1995-2002, Algorithmic Solutions Software GmbH. All rights reserved.
2002-10-16