LEDA 4.3
#define __LEDA__ 430
new supported compiler:
SunPro C++ 5.2 (Forte 6.1)
g++-3.0
Metrowerks C++ (win32)
aCC (hpux)
implementation parameters:
dictionary, p_queue, sortseq, set, d_array
now have an additional optional implementation template
parameter this makes _dictionary<K,I,impl>, _p_queue<P,I,impl>, etc.
obsolete (see LEDAROOT/test/dict/dic_test.c for an example program).
error handling by c++ exceptions:
after calling
set_error_handler(exception_error_handler)
errors will be handled by throwing exceptions
number package:
improved number types: integer, rational, bigfloat, real
new number types: interval (interval arithmetic)
residual (modular arithmetic)
improved integer sorting:
see LEDAROOT/demo_cout/stl/stl_vs_leda_sort.c and stl_vs_leda_sort_int.c
for a comparison with STL.
dictionaries
new hashing data structure:
cuckoo hashing (see <LEDA/impl/cuckoo_hashing.h>
and LEDAROOT/test/dict/dic_test.c)
graphs
new (experimental) semi-dynamic graph representation. It can be used by adding -DGRAPH_REP=2 to the compiler command line and linking with libG2.a (libG2.so). This representation needs only about half of the space of the fully-dynamic standard graph data structure and can significantly reduce the running time of graph algorithms as shown for the maxflow example on http://www.informatik.uni-trier.de/~naeher/maxflow.html. (see also the examples in LEDAROOT/test/flow).
static graphs
new (experimental) static graph data type <LEDA/s_graph.h>.
This is work in progress. First implementations and test programs using this very efficient graph data type can be found in LEDAROOT/test/flow/mfs.c and LEDA/templates/max_flow_s.t.
graph algorithms
new algorithms for transitive closure and reduction (see <LEDA/basic_graph_alg.h>)
graph TRANSITIVE_CLOSURE(const graph&)
graph TRANSITIVE_REDUCTION(const graph&)
void MAKE_TRANSITIVELY_CLOSED(graph&)
void MAKE_TRANSITIVELY_REDUCED(graph&)
new algorithms for Euler tours (see <LEDA/euler_tour.h>)
new functions for reading and writing DIMACS graph problems (see <LEDA/dimacs.h> for details)
Read_Dimacs_SP : (single-source) shortest paths
Write_Dimacs_SP
Read_Dimacs_MF : max flow
Write_Dimacs_MF
Read_Dimacs_MCF : min cost flow
Write_Dimacs_MCF
Read_Dimacs_MAT : matching
Write_Dimacs_MAT
geometryall rotate90 methods now have an additional optional parameter i:
x.rotate90(point q, int i=1)
returns |x| rotated about $q$ by an angle of $i\times 90$
degrees. If $i > 0$ the rotation is counter-clockwise otherwise
it is clockwise.
new faster (rat_)polygon::area() method
new static member variable POLYGON::input_check_type for all polygon types whose value (NO_CHECK, WEAKLY_SIMPLE, SIMPLE, etc.) determines what kind of check should be performed when reading polygons from a stream (in operator>>).
window
show_orientation (new global flag)
if show_orientation = true all geometric objects are drawn
with arrows indicating their orientation or direction
GraphWin
directed edges:
direction attributes (directed_edge, redirected_edge, ...) now can be combined using the or (|) operator
e.g. gw.set_direction(e,directed_edge|mid_directed_edge);
edge borders:
new global edge attribute: edge_border
bool gw.set_edge_border(bool)
bool gw.get_edge_border()
If set to true edges are drawn with a border line.
Can be set intereactively in the Options->Global-Options panel.
new output formats:
exporting SVG (scalable vector graphics) format
gw.save_svg(string fname)
and windows metafont files
gw.save_wmf(string fname) |