Changeset 872:41d7ac528c3a in lemon1.2 for lemon/fractional_matching.h
 Timestamp:
 03/04/10 15:20:59 (10 years ago)
 Branch:
 default
 Phase:
 public
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

lemon/fractional_matching.h
r871 r872 659 659 /// can be obtained using the query functions. 660 660 /// 661 /// If the value type is integer, then the primal and the dual 662 /// solutions are multiplied by 663 /// \ref MaxWeightedFractionalMatching::primalScale "2" and 664 /// \ref MaxWeightedFractionalMatching::dualScale "4" respectively. 661 /// The primal solution is multiplied by 662 /// \ref MaxWeightedFractionalMatching::primalScale "2". 663 /// If the value type is integer, then the dual 664 /// solution is scaled by 665 /// \ref MaxWeightedFractionalMatching::dualScale "4". 665 666 /// 666 667 /// \tparam GR The undirected graph type the algorithm runs on. … … 689 690 /// \brief Scaling factor for primal solution 690 691 /// 691 /// Scaling factor for primal solution. It is equal to 2 or 1 692 /// according to the value type. 693 static const int primalScale = 694 std::numeric_limits<Value>::is_integer ? 2 : 1; 692 /// Scaling factor for primal solution. 693 static const int primalScale = 2; 695 694 696 695 /// \brief Scaling factor for dual solution … … 1330 1329 /// 1331 1330 /// \pre Either run() or start() must be called before using this function. 1332 Value matching(const Edge& edge) const { 1333 return Value(edge == (*_matching)[_graph.u(edge)] ? 1 : 0) 1334 * primalScale / 2 + Value(edge == (*_matching)[_graph.v(edge)] ? 1 : 0) 1335 * primalScale / 2; 1331 int matching(const Edge& edge) const { 1332 return (edge == (*_matching)[_graph.u(edge)] ? 1 : 0) 1333 + (edge == (*_matching)[_graph.v(edge)] ? 1 : 0); 1336 1334 } 1337 1335 … … 1424 1422 /// After it the matching (the primal solution) and the dual solution 1425 1423 /// can be obtained using the query functions. 1426 1427 /// If the value type is integer, then the primal and the dual 1428 /// solutions are multiplied by 1429 /// \ref MaxWeightedPerfectFractionalMatching::primalScale "2" and 1430 /// \ref MaxWeightedPerfectFractionalMatching::dualScale "4" respectively. 1424 /// 1425 /// The primal solution is multiplied by 1426 /// \ref MaxWeightedPerfectFractionalMatching::primalScale "2". 1427 /// If the value type is integer, then the dual 1428 /// solution is scaled by 1429 /// \ref MaxWeightedPerfectFractionalMatching::dualScale "4". 1431 1430 /// 1432 1431 /// \tparam GR The undirected graph type the algorithm runs on. … … 1455 1454 /// \brief Scaling factor for primal solution 1456 1455 /// 1457 /// Scaling factor for primal solution. It is equal to 2 or 1 1458 /// according to the value type. 1459 static const int primalScale = 1460 std::numeric_limits<Value>::is_integer ? 2 : 1; 1456 /// Scaling factor for primal solution. 1457 static const int primalScale = 2; 1461 1458 1462 1459 /// \brief Scaling factor for dual solution … … 2065 2062 /// 2066 2063 /// \pre Either run() or start() must be called before using this function. 2067 Value matching(const Edge& edge) const { 2068 return Value(edge == (*_matching)[_graph.u(edge)] ? 1 : 0) 2069 * primalScale / 2 + Value(edge == (*_matching)[_graph.v(edge)] ? 1 : 0) 2070 * primalScale / 2; 2064 int matching(const Edge& edge) const { 2065 return (edge == (*_matching)[_graph.u(edge)] ? 1 : 0) 2066 + (edge == (*_matching)[_graph.v(edge)] ? 1 : 0); 2071 2067 } 2072 2068
Note: See TracChangeset
for help on using the changeset viewer.