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:
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 [73] 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 concerning the compilation and linkage of programs users should refer to chapter Technical Information. There's also a section describing the prefixing scheme of LEDA and some remarks about interaction with other Software libraries. 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.
There are also other sources of information. On the LEDA web page you can get
the online html version of this manual. There are preliminary chapters of the
forthcoming LEDA book available and there are also documentation reports
covering internal topics of LEDA and the implementation of diverse data
types. Please have also a look into the directory LEDAROOT/Manual/contrib
which contains more comprehensive information about packages like
ps_file.
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 3.8
__LEDA__
(defined to 380 in this version)
dtype<...>::item
,
for all dictionary types dictionary<K,I>::key_type (= K)
and dictionary<K,I>::inf_type (= I)
,
for lists list<E>::value_type (= E)
LEDA_STD_HEADERS
will
cause LEDA to use the new std header files (without ".h").
This can be done by using -DLEDA_STD_HEADERS
on the compiler command
line or by uncommenting the corresponding definition at the end of
<LEDA/system.h>
. Note that all libraries have to be compiled with
this flag enabled and that old and new header files cannot be used simultaneously.
Please read the CHANGES and FIXES files in the LEDA root directory for details.