# Changeset 958:d6052a9c4e8d in lemon

Ignore:
Timestamp:
03/18/10 13:18:58 (14 years ago)
Branch:
default
Phase:
public
Message:

Backed out changeset a6eb9698c321 (#360, #51)

Files:
2 edited

Unmodified
Added
Removed
• ## lemon/bellman_ford.h

 r917 #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 /// 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. }; /// \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. /// /// It defines the used operations and the infinity value for the /// given \c Value type. /// \see BellmanFordDefaultOperationTraits, /// BellmanFordToleranceOperationTraits /// \see BellmanFordDefaultOperationTraits typedef BellmanFordDefaultOperationTraits OperationTraits; /// It defines the used operations and the infinity value for the /// given \c Value type. /// \see BellmanFordDefaultOperationTraits, /// BellmanFordToleranceOperationTraits /// \see BellmanFordDefaultOperationTraits typedef BellmanFordDefaultOperationTraits OperationTraits;
• ## test/bellman_ford_test.cc

 r917 ::SetDistMap > ::SetOperationTraits > ::SetOperationTraits > ::Create bf_test(gr,length);
Note: See TracChangeset for help on using the changeset viewer.