↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -52,9 +52,8 @@
52 52

	
53 53
    ///This function instantiates a \ref PredMap.
54 54
    ///\param g is the digraph, to which we would like to define the
55 55
    ///\ref PredMap.
56
    ///\todo The digraph alone may be insufficient to initialize
57 56
    static PredMap *createPredMap(const Digraph &g)
58 57
    {
59 58
      return new PredMap(g);
60 59
    }
... ...
@@ -62,9 +61,8 @@
62 61
    ///The type of the map that indicates which nodes are processed.
63 62

	
64 63
    ///The type of the map that indicates which nodes are processed.
65 64
    ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
66
    ///By default it is a NullMap.
67 65
    typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
68 66
    ///Instantiates a \ref ProcessedMap.
69 67

	
70 68
    ///This function instantiates a \ref ProcessedMap.
... ...
@@ -194,10 +192,9 @@
194 192
    std::vector<typename Digraph::Node> _queue;
195 193
    int _queue_head,_queue_tail,_queue_next_dist;
196 194
    int _curr_dist;
197 195

	
198
    ///Creates the maps if necessary.
199
    ///\todo Better memory allocation (instead of new).
196
    //Creates the maps if necessary.
200 197
    void create_maps()
201 198
    {
202 199
      if(!_pred) {
203 200
        local_pred = true;
... ...
@@ -846,9 +843,8 @@
846 843

	
847 844
    ///This function instantiates a \ref PredMap.
848 845
    ///\param g is the digraph, to which we would like to define the
849 846
    ///\ref PredMap.
850
    ///\todo The digraph alone may be insufficient to initialize
851 847
#ifdef DOXYGEN
852 848
    static PredMap *createPredMap(const Digraph &g)
853 849
#else
854 850
    static PredMap *createPredMap(const Digraph &)
... ...
@@ -1331,10 +1327,9 @@
1331 1327

	
1332 1328
    std::vector<typename Digraph::Node> _list;
1333 1329
    int _list_front, _list_back;
1334 1330

	
1335
    ///Creates the maps if necessary.
1336
    ///\todo Better memory allocation (instead of new).
1331
    //Creates the maps if necessary.
1337 1332
    void create_maps() {
1338 1333
      if(!_reached) {
1339 1334
        local_reached = true;
1340 1335
        _reached = Traits::createReachedMap(*_digraph);
Ignore white space 6 line context
... ...
@@ -104,11 +104,8 @@
104 104
    }
105 105

	
106 106
    /// Returns whether the given directed arc has the same orientation
107 107
    /// as the corresponding edge.
108
    ///
109
    /// \todo reference to the corresponding point of the undirected digraph
110
    /// concept. "What does the direction of an edge mean?"
111 108
    static bool direction(const Arc &a) { return a.forward; }
112 109

	
113 110
    using Parent::first;
114 111
    using Parent::next;
Ignore white space 6 line context
... ...
@@ -41,12 +41,11 @@
41 41
  /// The VectorMap template class is graph map structure what
42 42
  /// automatically updates the map when a key is added to or erased from
43 43
  /// the map. This map type uses the std::vector to store the values.
44 44
  ///
45
  /// \tparam _Notifier The AlterationNotifier that will notify this map.
45
  /// \tparam _Graph The graph this map is attached to.
46 46
  /// \tparam _Item The item type of the graph items.
47 47
  /// \tparam _Value The value type of the map.
48
  /// \todo Fix the doc: there is _Graph parameter instead of _Notifier.
49 48
  template <typename _Graph, typename _Item, typename _Value>
50 49
  class VectorMap
51 50
    : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase {
52 51
  private:
Ignore white space 6 line context
... ...
@@ -35,10 +35,8 @@
35 35

	
36 36
///\file
37 37
///\brief Basic utilities for concept checking.
38 38
///
39
///\todo Are we still using BOOST concept checking utility?
40
///Is the BOOST copyright notice necessary?
41 39

	
42 40
#ifndef LEMON_CONCEPT_CHECK_H
43 41
#define LEMON_CONCEPT_CHECK_H
44 42

	
Ignore white space 6 line context
... ...
@@ -19,9 +19,8 @@
19 19
///\ingroup concept
20 20
///\file
21 21
///\brief Classes for representing paths in digraphs.
22 22
///
23
///\todo Iterators have obsolete style
24 23

	
25 24
#ifndef LEMON_CONCEPT_PATH_H
26 25
#define LEMON_CONCEPT_PATH_H
27 26

	
Ignore white space 8 line context
... ...
@@ -53,9 +53,8 @@
53 53

	
54 54
    ///This function instantiates a \ref PredMap.
55 55
    ///\param g is the digraph, to which we would like to define the
56 56
    ///\ref PredMap.
57
    ///\todo The digraph alone may be insufficient to initialize
58 57
    static PredMap *createPredMap(const Digraph &g)
59 58
    {
60 59
      return new PredMap(g);
61 60
    }
... ...
@@ -63,9 +62,8 @@
63 62
    ///The type of the map that indicates which nodes are processed.
64 63

	
65 64
    ///The type of the map that indicates which nodes are processed.
66 65
    ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
67
    ///By default it is a NullMap.
68 66
    typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
69 67
    ///Instantiates a \ref ProcessedMap.
70 68

	
71 69
    ///This function instantiates a \ref ProcessedMap.
... ...
@@ -194,10 +192,9 @@
194 192

	
195 193
    std::vector<typename Digraph::OutArcIt> _stack;
196 194
    int _stack_head;
197 195

	
198
    ///Creates the maps if necessary.
199
    ///\todo Better memory allocation (instead of new).
196
    //Creates the maps if necessary.
200 197
    void create_maps()
201 198
    {
202 199
      if(!_pred) {
203 200
        local_pred = true;
... ...
@@ -781,9 +778,8 @@
781 778

	
782 779
    ///This function instantiates a \ref PredMap.
783 780
    ///\param g is the digraph, to which we would like to define the
784 781
    ///\ref PredMap.
785
    ///\todo The digraph alone may be insufficient to initialize
786 782
#ifdef DOXYGEN
787 783
    static PredMap *createPredMap(const Digraph &g)
788 784
#else
789 785
    static PredMap *createPredMap(const Digraph &)
... ...
@@ -1278,10 +1274,9 @@
1278 1274

	
1279 1275
    std::vector<typename Digraph::Arc> _stack;
1280 1276
    int _stack_head;
1281 1277

	
1282
    ///Creates the maps if necessary.
1283
    ///\todo Better memory allocation (instead of new).
1278
    //Creates the maps if necessary.
1284 1279
    void create_maps() {
1285 1280
      if(!_reached) {
1286 1281
        local_reached = true;
1287 1282
        _reached = Traits::createReachedMap(*_digraph);
Ignore white space 6 line context
... ...
@@ -142,9 +142,8 @@
142 142

	
143 143
    ///This function instantiates a \ref PredMap.
144 144
    ///\param g is the digraph, to which we would like to define the
145 145
    ///\ref PredMap.
146
    ///\todo The digraph alone may be insufficient for the initialization
147 146
    static PredMap *createPredMap(const Digraph &g)
148 147
    {
149 148
      return new PredMap(g);
150 149
    }
... ...
@@ -153,10 +152,8 @@
153 152

	
154 153
    ///The type of the map that indicates which nodes are processed.
155 154
    ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
156 155
    ///By default it is a NullMap.
157
    ///\todo If it is set to a real map,
158
    ///Dijkstra::processed() should read this.
159 156
    typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
160 157
    ///Instantiates a \ref ProcessedMap.
161 158

	
162 159
    ///This function instantiates a \ref ProcessedMap.
... ...
@@ -295,10 +292,9 @@
295 292
    Heap *_heap;
296 293
    //Indicates if _heap is locally allocated (true) or not.
297 294
    bool local_heap;
298 295

	
299
    ///Creates the maps if necessary.
300
    ///\todo Better memory allocation (instead of new).
296
    //Creates the maps if necessary.
301 297
    void create_maps()
302 298
    {
303 299
      if(!_pred) {
304 300
        local_pred = true;
... ...
@@ -956,9 +952,8 @@
956 952

	
957 953
    ///This function instantiates a \ref HeapCrossRef.
958 954
    /// \param g is the digraph, to which we would like to define the
959 955
    /// HeapCrossRef.
960
    /// \todo The digraph alone may be insufficient for the initialization
961 956
    static HeapCrossRef *createHeapCrossRef(const Digraph &g)
962 957
    {
963 958
      return new HeapCrossRef(g);
964 959
    }
... ...
@@ -992,9 +987,8 @@
992 987

	
993 988
    ///This function instantiates a \ref PredMap.
994 989
    ///\param g is the digraph, to which we would like to define the
995 990
    ///\ref PredMap.
996
    ///\todo The digraph alone may be insufficient to initialize
997 991
#ifdef DOXYGEN
998 992
    static PredMap *createPredMap(const Digraph &g)
999 993
#else
1000 994
    static PredMap *createPredMap(const Digraph &)
... ...
@@ -1007,11 +1001,8 @@
1007 1001

	
1008 1002
    ///The type of the map that indicates which nodes are processed.
1009 1003
    ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
1010 1004
    ///By default it is a NullMap.
1011
    ///\todo If it is set to a real map,
1012
    ///Dijkstra::processed() should read this.
1013
    ///\todo named parameter to set this type, function to read and write.
1014 1005
    typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
1015 1006
    ///Instantiates a \ref ProcessedMap.
1016 1007

	
1017 1008
    ///This function instantiates a \ref ProcessedMap.
... ...
@@ -1053,9 +1044,8 @@
1053 1044
  /// This \ref DijkstraWizard class needs default traits,
1054 1045
  /// as well as the \ref Dijkstra class.
1055 1046
  /// The \ref DijkstraWizardBase is a class to be the default traits of the
1056 1047
  /// \ref DijkstraWizard class.
1057
  /// \todo More named parameters are required...
1058 1048
  template<class GR,class LM>
1059 1049
  class DijkstraWizardBase : public DijkstraWizardDefaultTraits<GR,LM>
1060 1050
  {
1061 1051
    typedef DijkstraWizardDefaultTraits<GR,LM> Base;
Ignore white space 6 line context
... ...
@@ -101,10 +101,8 @@
101 101
  class ErrorMessage {
102 102
  protected:
103 103
    ///\e
104 104

	
105
    ///\todo The good solution is boost::shared_ptr...
106
    ///
107 105
    mutable std::auto_ptr<std::ostringstream> buf;
108 106

	
109 107
    ///\e
110 108
    bool init() throw() {
Ignore white space 6 line context
... ...
@@ -665,9 +665,8 @@
665 665
  ///\ref named-templ-func-param "named template parameters",
666 666
  ///this function calls the algorithm itself, i.e. in this case
667 667
  ///it draws the graph.
668 668
  void run() {
669
    //\todo better 'epsilon' would be nice here.
670 669
    const double EPSILON=1e-9;
671 670
    if(dontPrint) return;
672 671

	
673 672
    _graph_to_eps_bits::_NegY<typename T::CoordsMapType>
... ...
@@ -706,9 +705,8 @@
706 705
    if (_autoArcWidthScale) {
707 706
      double max_w=0;
708 707
      for(ArcIt e(g);e!=INVALID;++e)
709 708
        max_w=std::max(double(_arcWidths[e]),max_w);
710
      //\todo better 'epsilon' would be nice here.
711 709
      if(max_w>EPSILON) {
712 710
        _arcWidthScale/=max_w;
713 711
      }
714 712
    }
... ...
@@ -716,9 +714,8 @@
716 714
    if (_autoNodeScale) {
717 715
      double max_s=0;
718 716
      for(NodeIt n(g);n!=INVALID;++n)
719 717
        max_s=std::max(double(_nodeSizes[n]),max_s);
720
      //\todo better 'epsilon' would be nice here.
721 718
      if(max_s>EPSILON) {
722 719
        _nodeScale/=max_s;
723 720
      }
724 721
    }
... ...
@@ -872,9 +869,8 @@
872 869
           << sc << " dup scale\n"
873 870
           << -bb.left() << ' ' << -bb.bottom() << " translate\n";
874 871
      }
875 872
      else {
876
        //\todo Verify centering
877 873
        double sc= std::min((A4HEIGHT-2*A4BORDER)/bb.width(),
878 874
                  (A4WIDTH-2*A4BORDER)/bb.height());
879 875
        os << ((A4WIDTH -2*A4BORDER)-sc*bb.height())/2 + A4BORDER << ' '
880 876
           << ((A4HEIGHT-2*A4BORDER)-sc*bb.width())/2 + A4BORDER
... ...
@@ -905,9 +901,8 @@
905 901
          sw/=-2.0;
906 902
          dim2::Point<double>
907 903
            dvec(mycoords[g.target(*i)]-mycoords[g.source(*i)]);
908 904
          double l=std::sqrt(dvec.normSquare());
909
          //\todo better 'epsilon' would be nice here.
910 905
          dim2::Point<double> d(dvec/std::max(l,EPSILON));
911 906
          dim2::Point<double> m;
912 907
//           m=dim2::Point<double>(mycoords[g.target(*i)]+
913 908
//                                 mycoords[g.source(*i)])/2.0;
Ignore white space 6 line context
... ...
@@ -500,12 +500,10 @@
500 500
    ///\note The <tt>ArcIt</tt>s referencing a moved arc remain
501 501
    ///valid. However <tt>InArcIt</tt>s and <tt>OutArcIt</tt>s may
502 502
    ///be invalidated.
503 503
    ///
504
    ///\warning This functionality cannot be used together with the
504
    ///\warning This functionality cannot be used in conjunction with the
505 505
    ///Snapshot feature.
506
    ///
507
    ///\todo It could be implemented in a bit faster way.
508 506
    Node split(Node n, bool connect = true) {
509 507
      Node b = addNode();
510 508
      for(OutArcIt e(*this,n);e!=INVALID;) {
511 509
        OutArcIt f=e;
Ignore white space 6 line context
... ...
@@ -483,10 +483,8 @@
483 483
  /// The simplest way of using this map is through the composeMap()
484 484
  /// function.
485 485
  ///
486 486
  /// \sa CombineMap
487
  ///
488
  /// \todo Check the requirements.
489 487
  template <typename M1, typename M2>
490 488
  class ComposeMap : public MapBase<typename M2::Key, typename M1::Value> {
491 489
    const M1 &_m1;
492 490
    const M2 &_m2;
... ...
@@ -539,10 +537,8 @@
539 537
  /// The simplest way of using this map is through the combineMap()
540 538
  /// function.
541 539
  ///
542 540
  /// \sa ComposeMap
543
  ///
544
  /// \todo Check the requirements.
545 541
  template<typename M1, typename M2, typename F,
546 542
           typename V = typename F::result_type>
547 543
  class CombineMap : public MapBase<typename M1::Key, V> {
548 544
    const M1 &_m1;
Ignore white space 6 line context
... ...
@@ -820,9 +820,8 @@
820 820

	
821 821
    /// Standard Gauss distribution.
822 822
    /// \note The Cartesian form of the Box-Muller
823 823
    /// transformation is used to generate a random normal distribution.
824
    /// \todo Consider using the "ziggurat" method instead.
825 824
    double gauss()
826 825
    {
827 826
      double V1,V2,S;
828 827
      do {
Ignore white space 6 line context
... ...
@@ -299,9 +299,8 @@
299 299
    ///valid. However <tt>InArc</tt>'s and <tt>OutArc</tt>'s
300 300
    ///may be invalidated.
301 301
    ///\warning This functionality cannot be used together with the Snapshot
302 302
    ///feature.
303
    ///\todo It could be implemented in a bit faster way.
304 303
    Node split(Node n, bool connect = true)
305 304
    {
306 305
      Node b = addNode();
307 306
      nodes[b._id].first_out=nodes[n._id].first_out;
Ignore white space 6 line context
... ...
@@ -291,9 +291,8 @@
291 291
  ///
292 292
  ///\note If you want to measure the running time of the execution of a certain
293 293
  ///function, consider the usage of \ref TimeReport instead.
294 294
  ///
295
  ///\todo This shouldn't be Unix (Linux) specific.
296 295
  ///\sa TimeReport
297 296
  class Timer
298 297
  {
299 298
    int _running; //Timer is running iff _running>0; (_running>=0 always holds)
... ...
@@ -486,9 +485,8 @@
486 485
  ///\endcode
487 486
  ///
488 487
  ///\sa Timer
489 488
  ///\sa NoTimeReport
490
  ///\todo There is no test case for this
491 489
  class TimeReport : public Timer
492 490
  {
493 491
    std::string _title;
494 492
    std::ostream &_os;
Ignore white space 6 line context
... ...
@@ -23,10 +23,8 @@
23 23
///\file
24 24
///\brief A basic tool to handle the anomalies of calculation with
25 25
///floating point numbers.
26 26
///
27
///\todo It should be in a module like "Basic tools"
28

	
29 27

	
30 28
namespace lemon {
31 29

	
32 30
  /// \addtogroup misc
0 comments (0 inline)