diff -r 38213abd2911 -r b89e46862dc2 lemon/bellman_ford.h --- a/lemon/bellman_ford.h Thu Mar 18 00:30:25 2010 +0100 +++ b/lemon/bellman_ford.h Thu Mar 18 14:17:03 2010 +0100 @@ -28,27 +28,24 @@ #include #include #include -#include #include #include namespace lemon { - /// \brief Default operation traits for the BellmanFord algorithm class. + /// \brief Default OperationTraits for the BellmanFord algorithm class. /// /// This operation traits class defines all computational operations /// and constants that are used in the Bellman-Ford algorithm. /// The default implementation is based on the \c numeric_limits class. /// If the numeric type does not have infinity value, then the maximum /// value is used as extremal infinity value. - /// - /// \see BellmanFordToleranceOperationTraits template < typename V, bool has_inf = std::numeric_limits::has_infinity> struct BellmanFordDefaultOperationTraits { - /// \brief Value type for the algorithm. + /// \e typedef V Value; /// \brief Gives back the zero value of the type. static Value zero() { @@ -87,51 +84,6 @@ } }; - /// \brief Operation traits for the BellmanFord algorithm class - /// using tolerance. - /// - /// This operation traits class defines all computational operations - /// and constants that are used in the Bellman-Ford algorithm. - /// The only difference between this implementation and - /// \ref BellmanFordDefaultOperationTraits is that this class uses - /// the \ref Tolerance "tolerance technique" in its \ref less() - /// function. - /// - /// \tparam V The value type. - /// \tparam eps The epsilon value for the \ref less() function. - /// By default, it is the epsilon value used by \ref Tolerance - /// "Tolerance". - /// - /// \see BellmanFordDefaultOperationTraits -#ifdef DOXYGEN - template -#else - template < - typename V, - V eps = Tolerance::def_epsilon> -#endif - struct BellmanFordToleranceOperationTraits { - /// \brief Value type for the algorithm. - typedef V Value; - /// \brief Gives back the zero value of the type. - static Value zero() { - return static_cast(0); - } - /// \brief Gives back the positive infinity value of the type. - static Value infinity() { - return std::numeric_limits::infinity(); - } - /// \brief Gives back the sum of the given two elements. - static Value plus(const Value& left, const Value& right) { - return left + right; - } - /// \brief Gives back \c true only if the first value is less than - /// the second. - static bool less(const Value& left, const Value& right) { - return left + eps < right; - } - }; - /// \brief Default traits class of BellmanFord class. /// /// Default traits class of BellmanFord class. @@ -155,8 +107,7 @@ /// /// It defines the used operations and the infinity value for the /// given \c Value type. - /// \see BellmanFordDefaultOperationTraits, - /// BellmanFordToleranceOperationTraits + /// \see BellmanFordDefaultOperationTraits typedef BellmanFordDefaultOperationTraits OperationTraits; /// \brief The type of the map that stores the last arcs of the @@ -886,8 +837,7 @@ /// /// It defines the used operations and the infinity value for the /// given \c Value type. - /// \see BellmanFordDefaultOperationTraits, - /// BellmanFordToleranceOperationTraits + /// \see BellmanFordDefaultOperationTraits typedef BellmanFordDefaultOperationTraits OperationTraits; /// \brief The type of the map that stores the last