home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ledar34.zip / leda-r-3_4_tar / LEDA-3.4 / FIXES < prev    next >
Text File  |  1996-09-03  |  15KB  |  515 lines

  1. ------------------------------------------------------------------------------
  2. LEDA-3.4 (02.09.1996)
  3. ------------------------------------------------------------------------------
  4.  
  5. the following problems have been fixed:
  6.  
  7. - Color allocation problem
  8.  
  9. - memory problem in graph
  10.  
  11. - round for rationals
  12.  
  13. - rotation bug in rb_tree
  14.  
  15. - uninitialized memory
  16.  
  17. - missing constructors for p_queue and r_heap
  18.  
  19. - bug in k_heap for  k>2   
  20.  
  21. - shared libs for LINUX  
  22.  
  23. - Bug in hashing
  24.  
  25. - Bug in panel::int_item("...",x,1,1);  
  26.  
  27. - Bug in integer bitwise or                             
  28.  
  29. - Bug in line::perpendicular 
  30.  
  31. - Bug im sweep Algorihtmus
  32.  
  33. - Bug Tree Collection
  34.  
  35. - Bug when using colors without opening window
  36.  
  37. - problem with m_heap::print
  38.  
  39. - Iterators and g++ warnings
  40.  
  41.  
  42. ------------------------------------------------------------------------------
  43. LEDA-3.3.1 (09.04.1996)
  44. ------------------------------------------------------------------------------
  45.  
  46. BUG: lconfig script 
  47.  
  48. FIX: replace in lines 104 and 107 of <LEDA>/lconfig 
  49.      src/Make.pro by prog/Make.pro
  50.  
  51.  
  52. BUG: memory leak in graph copy constructor and assignment
  53.  
  54. FIX: delete or comment out lines 70 and 77 in <LEDA>/src/_graph.c
  55.      (70)  memory_allocate_block(sizeof(node_struct),n);
  56.      (77)  memory_allocate_block(sizeof(edge_struct),m);
  57.  
  58.  
  59. BUG: window destructor should be declared virtual 
  60.  
  61. FIX: replace in line 288 of <LEDA>/incl/LEDA/base_window.h
  62.         ~BASE_WINDOW();
  63.      by
  64.         virtual ~BASE_WINDOW();
  65.  
  66.  
  67. BUG: planar_map(const planar_map&) copy constructor missing
  68.  
  69. FIX: insert after line 140 in <LEDA>/incl/LEDA/planar_map.h the line
  70.         planar_map(const planar_map& M) : graph(M) { make_planar_map(); }
  71.  
  72.  
  73. BUG: memory leak in Karatsuba multiplication (_integer.c)
  74.  
  75. FIX: insert in <LEDA>/src/numbers/_integer.c after line 813 the line
  76.        delete[] trp;
  77.  
  78.  
  79. BUG: problem with grid_mode cursor in windows in presence of 
  80.      other (panel) windows
  81.  
  82. FIX: insert in file <LEDA>/src/window/_base_window.c the following 
  83.      two lines at the beginning of  function void BASE_WINDOW::cursor(void) 
  84.  
  85.      if (this != read_window) return;
  86.      x_set_read_gc(draw_win);
  87.  
  88.  
  89.  
  90. PROBLEM: "shadow" warnings by g++ (2.7.2)
  91.  
  92. FIX:     remove the definition of the __NEW_SCOPE_RULES__ macro 
  93.          in <LEDA/system.h>
  94.  
  95.  
  96.  
  97. BUG: error in gen_array::binary_search
  98.  
  99. FIX: replace in <LEDA>/src/basic/_array.c the gen_array::binary_search  by
  100.  
  101. int gen_array::binary_search(GenPtr x)
  102. { int l = 0;
  103.   int r = sz-1;
  104.  
  105.   if (int_type())
  106.     { int x_i = LEDA_ACCESS(int,x);
  107.       while (l <= r)
  108.       { int m = (l+r)/2;
  109.         int m_i = LEDA_ACCESS(int,v[m]);
  110.         if (x_i == m_i) return m+Low;
  111.         if (x_i > m_i)
  112.            l = m+1;
  113.         else
  114.            r = m-1;
  115.        }
  116.      }
  117.   else
  118.      while (l <= r)
  119.      { int m = (l+r)/2;
  120.        int c = cmp(x,v[m]);
  121.        if (c == 0) return m+Low;
  122.        if (c > 0)
  123.           l = m+1;
  124.        else
  125.           r = m-1;
  126.       }
  127.  
  128.   return  Low-1;
  129. }
  130.  
  131.  
  132.  
  133. PROBLEM: conflicts with "node_data" and "edge_data" macros
  134.          in REDEFINE_NAMES.h and <LEDA/node/edge_map.h>
  135.  
  136. FIX:     delete all occurences of these two macros
  137.  
  138.  
  139.  
  140. PROBLEM: cannot construct and delete interval sets in the dynamic memory
  141.          using the new and delete operators
  142.  
  143. FIX:     remove "LEDA_MEMORY(range_tree)" from <LEDA/impl/range_tree.h>
  144.  
  145.  
  146.  
  147. PROBLEM: compilation problems with microsoft visual c++
  148.  
  149. FIX:     replace <strstream.h> by <strstrea.h>, undefine __TEMPLATE_FUNCTIONS__
  150.          in <LEDA/system.h>,  use /c option before /Tp option in make.src
  151.  
  152.  
  153.  
  154. PROBLEM: missing documentation of set join,intersect,difference operations
  155. FIX:     added manual descriptions in <LEDA/set.h>
  156.  
  157.  
  158. PROBLEM: output statement (cout << ...) in _rational.c
  159. FIX:     remove it
  160.  
  161.  
  162.  
  163. PROBLEM: memory leak in graph::clear()
  164. FIX:     replace in <LEDA>/src/graph/_graph.c line  193
  165.             forall(v,v_list) delete v;
  166.          by
  167.             forall(v,v_free) delete v;
  168.  
  169. PROBLEM: plan_demo program crashes in presence of a K5 Kuratowski graph
  170. FIX:     substitute in file prog/demo/plan_demo.c line 342
  171.            forall_nodes(v,G) if (G.degree(v) == 3) break;
  172.          by
  173.            forall_nodes(v,G) 
  174.               if (v == G.last_node() || G.degree(v) == 3) break;
  175.      
  176. ------------------------------------------------------------------------------
  177.  LEDA-3.3 (15.02.96)
  178. ------------------------------------------------------------------------------
  179.  
  180. Bugs have been fixed in
  181.  
  182. - basic
  183.      string::operator[](int)
  184.      string::string(const char*, const char*)
  185.      real/bigfloat (pow2 problem)
  186.      integer::random
  187.  
  188. - dictionaries
  189.      h_array 
  190.      map
  191.  
  192. - graph
  193.     read/write
  194.     copy_graph
  195.     operator=
  196.     make_directed()
  197.     clear
  198.     generators
  199.  
  200. - planar_map
  201.     operator=
  202.     copy constructor
  203.  
  204. -graph_alg
  205.     bellman_ford
  206.     planarity test
  207.     min_cut
  208.  
  209. -geometry
  210.     rat_point
  211.     circle::intersection
  212.     line::perpendicular
  213.     segment::intersection
  214.     polygon::unite
  215.     DELAUNAY_TRIANG
  216.  
  217. - windows 
  218.     panel string item
  219.     nested panels (menues)
  220.  
  221. - installation
  222.     problem with REDEFINE.h fixed
  223.  
  224.  
  225.  
  226. ------------------------------------------------------------------------------
  227.  LEDA  3.2.3  (18.9.95)
  228. ------------------------------------------------------------------------------
  229.  
  230. - bug in sweep_segments fixed
  231. - missing initialization in function template "Convert"
  232. - bug in string::operator[] fixed
  233. - bug in integer cmp fixed
  234.  
  235.  
  236. ------------------------------------------------------------------------------
  237.  LEDA  3.2.2  (01.9.95)
  238. ------------------------------------------------------------------------------
  239.  
  240. - node_pq::member   returned always true
  241. - rat_segment::intersection(rat_segment)
  242. - intersection(rat_segment,rat_segment)  for vertical segments
  243. - array2: missing copy-constructor and assignment operator inserted
  244. - ugraph::first_adj_edge(node v)
  245. - ugraph::last_adj_edge(node v)
  246. - point,rat_point,segment,rat_segment (sign of the orientation primitive)
  247. - h_array (empty array now has default size of 1 instead of 512)
  248. - polygon::unite
  249.  
  250.  
  251. ------------------------------------------------------------------------------
  252.  LEDA  3.2.1 (27.7.95)
  253. ------------------------------------------------------------------------------
  254.  
  255.  - segment: orientation
  256.  - missing destructor for handle_base
  257.  - forall - macro 
  258.  - list::split operation 
  259.  - iteration for constant sets
  260.  - bug in MIN_CUT graph algorithm 
  261.  - bug in orientation(segment,point) 
  262.  - polygon::intersection and polygon::inside rewritten
  263.  - bug in window grid drawing
  264.  
  265.  
  266. ------------------------------------------------------------------------------
  267.  LEDA  3.2    (7.7.95)
  268. ------------------------------------------------------------------------------
  269.  
  270.  
  271. - SEGMENT_INTERSECTION
  272.  
  273.             now also works in case of "degenerate" input
  274.  
  275. - graphs
  276.             graph::cyclic_in_succ, graph::cyclic_in_pred,
  277.             graph::first_adj_edge, and graph::last_adj_edge fixed
  278.  
  279.             new_edge(e1,e2,dir1,dir2) fixed
  280.  
  281.             copy constructor and assingment now preserve order of 
  282.             adjacency lists
  283.  
  284.             missing implementation of graph::in_edges(v) included
  285.  
  286.             bug in copy constructor of node/edge_array and node/edge_map fixed
  287.  
  288.             b_node_pq: first insert now initalizes minimum correctly
  289.  
  290.             planar_map::split_edge fixed
  291.   
  292.  
  293.  
  294. - param_types
  295.              one-word class types
  296.              64 bit architectures
  297.  
  298. - h_array
  299.             iteration (forall_defined) now works
  300.  
  301. - set
  302.            copy constructor and operator=
  303.            (bug in bin_tree::copy_tree fixed)
  304.  
  305.  
  306. - map<I,E>  destructor now deletes E's
  307.             bug in rehash fixed
  308.  
  309. - array
  310.             array::read(istream in) replaced by  array::read(istream& in)
  311.  
  312. - panel
  313.             panel("...",w,h)   now creates a panel with width w and height h
  314.  
  315.  
  316. - skiplist  change_inf now destroys old and copies new information
  317.  
  318. - matrix    memory leak in triang fixed
  319.  
  320.  
  321.  
  322.  
  323. ------------------------------------------------------------------------------
  324. Version 3.1.2       (3.02.95)
  325. ------------------------------------------------------------------------------
  326.  
  327. -list.h:   made list_item list::operator[](int i)  const
  328. -string.h: made operator+ a friend function
  329. -map.h:    replace int(x)   by  int(Convert(x))
  330. -graph.h:  replace in line 258 and 268 "next_power(i)"  by "next_power(i+1)"
  331. -integer.c: replace line 1752 { cout << "0"; by { out << "0";
  332.             replace line 1769 if (x.PTR->sign == NEGATIVE) cout << "-";
  333. -real.c: many changes
  334.  
  335. SUNPRO C++ (use 4.0.1 NOT 4.0, use -pto flag )
  336. - do not use assembler code in _string.c
  337. - define __svr4__ if __SVR4 is defined
  338. - use format_string variant of string constructor
  339. - changes to avoid some of the "something hides something" warnings
  340.  
  341. ------------------------------------------------------------------------------
  342. Version 3.1.1       (27.01.95)
  343. ------------------------------------------------------------------------------
  344.  
  345.  array.h:     operator[] now calls gen_array::entry (instead of inf)
  346.  edge_set.h:  node_array<list_item> replaced by edge_array<list_item>
  347.  list.h:      cmp_ptr set to nil in list::search()
  348.  list.h:      missing app - function inserted.
  349.  node_pq.h    print_inf  now prints index of node
  350.  dlist.h:     replaced EOF by char(EOF) (problems with EOF <0)
  351.  _g_inout.c:  read & write for user defined node/edge types fixed
  352.  _g_update.c: infinite loop in insert_reverse_edges eliminated
  353.  _skiplist.c: locate_succ, locate fixed
  354.  _integer.c:  memory leak in integert:integer(double) fixed
  355.  _real.c:     special floating point functions calls replaced
  356.  _random.c:   BSD Code for random/srandom included 
  357.  _basic.c:    usleep replaced by sleep
  358.  _g_map.c:    table is deleted only if table_size > 0
  359.  _bin_tree.c: copy constructor now sets corr-pointer of rightmost leaf
  360.  Type_Name function defined for basic LEDA types (point,string, ...)
  361.  
  362.  Makefiles: _sparc.s will be assembled only on sparc machines
  363.  
  364. ------------------------------------------------------------------------------
  365. Version 3.1
  366. ------------------------------------------------------------------------------
  367.  
  368. 16.01.95    array::operator=  fixed
  369.  
  370. 13.01.95    graph::read and graph::write did not work for unparameterized
  371.             graphs, fixed. 
  372.  
  373. 13.01.95    node_set edge_set rewritten
  374.             int_set: hard coded word size replaced by sizeof-call
  375.  
  376.  6.01.95    list<T>::sort(cmp_func), list<T>::bucket_sort(ord_func)
  377.             list<T>::min(cmp_func), list<T>::max(cmp_func), 
  378.             list<T>::apply(app_func) did not work for types with
  379.             sizof(T) > sizeof(void*); bug is fixed.
  380.  
  381.             array::sort(cmp_func), array::sort(l,h,cmp_func)
  382.             array::binary_search(cmp_func), same problem as in lists fixed
  383.  
  384. 21.11.94    bug in vector::operator=(const vector&) fixed
  385.             (old (d) and new (n) dimensions exchanged)
  386.  
  387. 17.11.94    bug in rs_tree (set<T>) copy constructor fixed
  388.  
  389. 15.11.94    LEDA_MEMORY: operator new & delete now use the size argument 
  390.  
  391. 07.10.94    bug in array copy constructor fixed
  392.             memory leak in list::assign() fixed
  393.             polygon CONVEX_HULL(list<point>)  new algorithm (Graham's Scan)
  394.             bugs in segment::intersection() and line::intersection() fixed
  395.         
  396. 29.09.94    bug in binary heaps (negative integer keys) fixed
  397.  
  398. 28.09.94    UGRAPH::assign(node/edge,...) fixed
  399.  
  400.  6.09.94    bug in list<node> graph::adj_nodes() (undirected graphs) fixed 
  401.  
  402.  8.08.94    Iteration (forall_defined) for h_arrays 
  403.  
  404.  4.08.94    some problems in _leda_panel.c fixed (slider items, buttons, ...)
  405.  
  406. 11.07.94    Multi-definition problem with read_mouse(window, ...) and g++ fixed
  407.  
  408. 22.03.94    bug in skiplist copy constructor fixed
  409.  
  410. 22.12.93    memory leaks in leda panels 
  411.  
  412. 21.12.93    nested forall-loops
  413.  
  414. 17.12.93    string::read now can read strings of arbitrary length
  415.  
  416. 11.10.93    made dlist::bucket_sort stable
  417.             corrected return value of COMPUTE_CORRESPONDENCE 
  418.  
  419. 08.09.93    memory bug in dp_hash (dynamic perfect hashing) fixed
  420.  
  421. 12.08.93    k_heap::del_item fixed 
  422.  
  423. 25.06.93    made rs_tree::change_inf (dictionary) clear old and copy new 
  424.             information 
  425.  
  426. 16.06.93    dlist::search (replaced != by call of virtual cmp function)
  427.  
  428. 07.06.93    line::intersection (used to report intersection of parallel lines)
  429.  
  430. 01.06.93    fixed bug in queue::append (replaced Convert by Copy)
  431.  
  432. 05.05.93    bugs in MAX_WEIGHT_BIPARTITE_MATCHING fixed (by M. Paul)
  433.  
  434. 05.04.93    prio.h: added missing ostream argument cout to Print calls
  435.  
  436. 12.03.93    stack::push(x)    replaced Convert(x) by Copy(x)
  437.  
  438. 09.03.93    segment::angle()  returns zero for segments of length zero
  439.  
  440. 05.03.93    memory leak in draw_(filled_)polygon fixed
  441.  
  442. 25.01.93    bug in ab_tree::clear() fixed (forgot to set counter to zero)
  443.  
  444. 30.12.92    made dlist update operations protected
  445.  
  446. 20.12.92    changed type "SIG_PF" in basic.h to "LEDA_SIG_PF"
  447.  
  448. 07.12.92    missing operation ugraph::read(istream&) inserted
  449.  
  450.  
  451.  
  452. ------------------------------------------------------------------------------
  453. Version 3.0
  454. ------------------------------------------------------------------------------
  455.  
  456. 09.11.92    Convert and Access for parameter types of size smaller than 
  457.             pointers (e.g. char, short) fixed
  458.  
  459. 16.07.92    bug with colinear points in delaunay_tree, VORONOI, point_set, ...
  460.             fixed
  461.  
  462. 27.05.92    MAX_WEIGHT_BIPARTITE_MATCHING(double) (_mwb_matching.c)
  463.             fixed precicision problem that caused a negative loop in DIJKSTRA
  464.  
  465. 19.05.92    list::sort now works for lists of length 1
  466.  
  467. 12.05.92    type conversion for "char" (Copy,Convert,Access, ...)  fixed
  468.  
  469.  
  470. ------------------------------------------------------------------------------
  471. Version 2.2
  472. ------------------------------------------------------------------------------
  473.  
  474. 27.04.92    matrix::operator=(const matrix&) 
  475.             matrix::triang()
  476.  
  477. 17.04.92    lost memory bug in string::operator+ fixed   (Nicolas Caillaud)
  478.  
  479. 16.04.92    made all destructors virtual
  480.  
  481. 13.04.92    bug in GRAPH::assign(node/edge,vtype/etype) fixed
  482.             made operator<< and operator>> for circles reverse ops
  483.  
  484. 11.04.92    copy-bug in graph::operator=() and graph(const graph&) fixed
  485.  
  486.  
  487. ------------------------------------------------------------------------------
  488. Version 2.1
  489. ------------------------------------------------------------------------------
  490.  
  491. 16.12.91    fixed Copy bug for list, GRAPH, and UGRAPH
  492.  
  493. 10.12.91    defined read(write)_node(edge)_entry for UGRAPH
  494.  
  495.  
  496. 28.11.91    made void*-functions (append,push, ....) in dlist, graph
  497.             and ugraph protected
  498.  
  499. 12.11.91    vector/matrix subtypes for arrays
  500.             operator=  & operator== now may be called for objects with
  501.             differnt dimensions
  502.  
  503.  
  504. 11.11.91    Copy(vector&) ---> Copy(const vector&)
  505.             Copy(matrix&) ---> Copy(const matrix&)
  506.  
  507.  
  508. 31.10.91    string& string::operator=(const char* s)
  509.             Bug: Zugriff auf deallocierten Speicher fuer p->s = s
  510.  
  511.  
  512. 28.10.91    in bool line::operator==(const line&)
  513.             Bug: funktionierte nicht fuer 2 vertikale Linien
  514.  
  515.