gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Add creator functions for Residual and Residual::ResidualCapacity (#67)
0 1 0
default
1 file changed with 22 insertions and 0 deletions:
↑ Collapse diff ↑
Show white space 48 line context
... ...
@@ -2635,50 +2635,72 @@
2635 2635

	
2636 2636
    /// \brief Residual capacity map.
2637 2637
    ///
2638 2638
    /// In generic residual graph the residual capacity can be obtained
2639 2639
    /// as a map.
2640 2640
    class ResidualCapacity {
2641 2641
    protected:
2642 2642
      const Adaptor* _adaptor;
2643 2643
    public:
2644 2644
      /// The Key type
2645 2645
      typedef Arc Key;
2646 2646
      /// The Value type
2647 2647
      typedef typename _CapacityMap::Value Value;
2648 2648

	
2649 2649
      /// Constructor
2650 2650
      ResidualCapacity(const Adaptor& adaptor) : _adaptor(&adaptor) {}
2651 2651

	
2652 2652
      /// \e
2653 2653
      Value operator[](const Arc& a) const {
2654 2654
        return _adaptor->residualCapacity(a);
2655 2655
      }
2656 2656

	
2657 2657
    };
2658 2658

	
2659
    /// \brief Returns a residual capacity map
2660
    ///
2661
    /// This function just returns a residual capacity map.
2662
    ResidualCapacity residualCapacity() const {
2663
      return ResidualCapacity(*this);
2664
    }
2665

	
2659 2666
  };
2660 2667

	
2668
  /// \brief Returns a (read-only) Residual adaptor
2669
  ///
2670
  /// This function just returns a (read-only) \ref Residual adaptor.
2671
  /// \ingroup graph_adaptors
2672
  /// \relates Residual
2673
  template<typename Digraph, typename CapacityMap, typename FlowMap>
2674
  Residual<Digraph, CapacityMap, FlowMap>
2675
  residual(const Digraph& digraph,
2676
           const CapacityMap& capacity,
2677
           FlowMap& flow)
2678
  {
2679
    return Residual<Digraph, CapacityMap, FlowMap> (digraph, capacity, flow);
2680
  }
2681

	
2682

	
2661 2683
  template <typename _Digraph>
2662 2684
  class SplitNodesBase {
2663 2685
  public:
2664 2686

	
2665 2687
    typedef _Digraph Digraph;
2666 2688
    typedef DigraphAdaptorBase<const _Digraph> Parent;
2667 2689
    typedef SplitNodesBase Adaptor;
2668 2690

	
2669 2691
    typedef typename Digraph::Node DigraphNode;
2670 2692
    typedef typename Digraph::Arc DigraphArc;
2671 2693

	
2672 2694
    class Node;
2673 2695
    class Arc;
2674 2696

	
2675 2697
  private:
2676 2698

	
2677 2699
    template <typename T> class NodeMapBase;
2678 2700
    template <typename T> class ArcMapBase;
2679 2701

	
2680 2702
  public:
2681 2703

	
2682 2704
    class Node : public DigraphNode {
2683 2705
      friend class SplitNodesBase;
2684 2706
      template <typename T> friend class NodeMapBase;
0 comments (0 inline)