Camargue
Classes | Namespaces | Functions
process_cuts.hpp File Reference

Structures for storing and processing cuts. More...

#include "datagroups.hpp"
#include "cc_lpcuts.hpp"
#include "graph.hpp"
#include "cut_structs.hpp"
#include "lp_util.hpp"
#include "util.hpp"
#include <memory>
#include <vector>
#include <limits>
#include <list>
#include <utility>
Include dependency graph for process_cuts.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CMR::Sep::CutQueue< cut_rep >
 Class template for queue of cuts in some form. More...
 

Namespaces

 CMR
 The namespace for this project.
 
 CMR::Sep
 Classes and functions related to cut separation.
 

Functions

LP::SparseRow CMR::Sep::get_row (const CCtsp_lpcut_in &cc_cut, const std::vector< int > &perm, const Graph::CoreGraph &core_graph)
 SparseRow corresponding to Concorde cut.
 
LP::SparseRow CMR::Sep::get_row (const dominoparity &dp_cut, const std::vector< int > &tour_nodes, const Graph::CoreGraph &core_graph)
 SparseRow corresponding to simple DP inequality.
 
LP::SparseRow CMR::Sep::get_row (const std::vector< int > &handle_delta, const std::vector< std::vector< int >> &tooth_edges, const Graph::CoreGraph &core_graph)
 SparseRow corresponding to the handle and tooth edges of a blossom.
 
template<typename number_type >
double CMR::Sep::get_activity (const std::vector< number_type > &x, const LP::SparseRow &R)
 Function template for determining the activity or lhs of a vector on a row.
 
std::vector< int > CMR::Sep::teeth_inds (const ex_blossom &B, const std::vector< double > &tour_edges, const std::vector< double > &lp_vec, const std::vector< Graph::Edge > &edges, int ncount)
 Gets the indices of the teeth for an ex_blossom B relative to edges.
 
std::vector< int > CMR::Sep::teeth_inds (const ex_blossom &B, const std::vector< double > &tour_edges, const std::vector< double > &lp_vec, const std::vector< Graph::Edge > &edges, int ncount, const std::vector< int > &handle_delta)
 Like the other version, but if we already have handle_delta.
 
bool CMR::Sep::bad_blossom (const ex_blossom &B, const std::vector< double > &tour_edges, const std::vector< double > &lp_vec, const std::vector< Graph::Edge > &edges, int ncount)
 Returns true if the blossom is invalid for some reason.
 

Detailed Description

Structures for storing and processing cuts.