text: /******************************************************************************
   * cut_flow_problem_solver.h 
   *
   * Source of KaHIP -- Karlsruhe High Quality Partitioning.
   *
   *****************************************************************************/
  
  #ifndef CUT_FLOW_PROBLEM_SOLVER_4P49OMM
  #define CUT_FLOW_PROBLEM_SOLVER_4P49OMM
  
  #include "partition_config.h"
  #include "data_structure/flow_graph.h"
  
  class cut_flow_problem_solver  {
          public:
                  cut_flow_problem_solver( );
                  virtual ~cut_flow_problem_solver();
  
                  EdgeWeight get_min_flow_max_cut(const PartitionConfig & config, 
                                                  graph_access & G, 
                                                  PartitionID & lhs, 
                                                  PartitionID & rhs, 
                                                  std::vector<NodeID> & lhs_boundary_stripe,
                                                  std::vector<NodeID> & rhs_boundary_stripe,
                                                  std::vector<NodeID> & new_to_old_ids,
                                                  EdgeWeight & initial_cut,
                                                  NodeWeight & rhs_part_weight,
                                                  NodeWeight & rhs_stripe_weight,
                                                  std::vector<NodeID> & new_rhs_nodes);               
  
                  EdgeID regions_no_edges(graph_access & G,
                                          std::vector<NodeID> & lhs_boundary_stripe,
                                          std::vector<NodeID> & rhs_boundary_stripe,
                                          PartitionID & lhs, 
                                          PartitionID & rhs,
                                          std::vector<NodeID> & outer_lhs_boundary_nodes,
                                          std::vector<NodeID> & outer_rhs_boundary_nodes ); 
  
  
                  //modified parse code from hi_pr
                  EdgeWeight convert_ds(const PartitionConfig & config, 
                                        graph_access & G, 
                                        PartitionID & lhs, 
                                        PartitionID & rhs, 
                                        std::vector<NodeID> & lhs_boundary_stripe,
                                        std::vector<NodeID> & rhs_boundary_stripe,
                                        std::vector<NodeID> & new_to_old_ids,              
                                        flow_graph & rG); 
  
  };
  
  
  
  
  #endif /* end of include guard: FLOW_SOLVER_4P49OMM */
  