Files
ortools-clone/docs/cpp_routing/namespaceoperations__research.html
Mizux Seiha 3b81c981c2 Update doc
2022-03-04 00:19:15 +01:00

2900 lines
210 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OR-Tools</title>
<meta http-equiv="Content-Type" content="text/html;"/>
<meta charset="utf-8"/>
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">Google OR-Tools 9.3</span>
</div>
</div>
<div id="content" style="width: 100%; overflow: hidden;">
<div style="margin-left: 15px; margin-top: 5px; float: left; color: #145A32;">
<h2>C++ Reference</h2>
<ul>
<li><a href="../cpp_algorithms/annotated.html">Algorithms</a></li>
<li><a href="../cpp_sat/annotated.html">CP-SAT</a></li>
<li><a href="../cpp_graph/annotated.html">Graph</a></li>
<li><a href="../cpp_routing/annotated.html">Routing</a></li>
<li><a href="../cpp_linear/annotated.html">Linear solver</a></li>
</ul>
</div>
<div id="content">
<div align="center">
<h1 style="color: #145A32;">C++ Reference: Routing</h1>
</div>
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('namespaceoperations__research.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">operations_research Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Collection of objects used to extend the <a class="el" href="classoperations__research_1_1_constraint.html" title="A constraint is the main modeling object.">Constraint</a> <a class="el" href="classoperations__research_1_1_solver.html" title="Solver Class.">Solver</a> library.
<a href="namespaceoperations__research.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_argument_holder.html">ArgumentHolder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Argument Holder: useful when visiting a model. <a href="classoperations__research_1_1_argument_holder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_array_with_offset.html">ArrayWithOffset</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An <a class="el" href="classoperations__research_1_1_assignment.html" title="An Assignment is a variable -&gt; domains mapping, used to report solutions to the user.">Assignment</a> is a variable -&gt; domains mapping, used to report solutions to the user. <a href="classoperations__research_1_1_assignment.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_assignment_container.html">AssignmentContainer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_assignment_element.html">AssignmentElement</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_base_int_expr.html">BaseIntExpr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_base_lns.html">BaseLns</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the base class for building an Lns operator. <a href="classoperations__research_1_1_base_lns.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_base_object.html">BaseObject</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1_base_object.html" title="A BaseObject is the root of all reversibly allocated objects.">BaseObject</a> is the root of all reversibly allocated objects. <a href="classoperations__research_1_1_base_object.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_boolean_var.html">BooleanVar</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_call_method0.html">CallMethod0</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_demon.html" title="A Demon is the base element of a propagation queue.">Demon</a> proxy to a method on the constraint with no arguments. <a href="classoperations__research_1_1_call_method0.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_call_method1.html">CallMethod1</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_demon.html" title="A Demon is the base element of a propagation queue.">Demon</a> proxy to a method on the constraint with one argument. <a href="classoperations__research_1_1_call_method1.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_call_method2.html">CallMethod2</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_demon.html" title="A Demon is the base element of a propagation queue.">Demon</a> proxy to a method on the constraint with two arguments. <a href="classoperations__research_1_1_call_method2.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_call_method3.html">CallMethod3</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_demon.html" title="A Demon is the base element of a propagation queue.">Demon</a> proxy to a method on the constraint with three arguments. <a href="classoperations__research_1_1_call_method3.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_cast_constraint.html">CastConstraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast constraints are special channeling constraints designed to keep a variable in sync with an expression. <a href="classoperations__research_1_1_cast_constraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_change_value.html">ChangeValue</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines operators which change the value of variables; each neighbor corresponds to <em>one</em> modified variable. <a href="classoperations__research_1_1_change_value.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_constraint.html">Constraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A constraint is the main modeling object. <a href="classoperations__research_1_1_constraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_cumul_bounds_propagator.html">CumulBoundsPropagator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_decision.html">Decision</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1_decision.html" title="A Decision represents a choice point in the search tree.">Decision</a> represents a choice point in the search tree. <a href="classoperations__research_1_1_decision.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_decision_builder.html">DecisionBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1_decision_builder.html" title="A DecisionBuilder is responsible for creating the search tree.">DecisionBuilder</a> is responsible for creating the search tree. <a href="classoperations__research_1_1_decision_builder.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_decision_visitor.html">DecisionVisitor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1_decision_visitor.html" title="A DecisionVisitor is used to inspect a decision.">DecisionVisitor</a> is used to inspect a decision. <a href="classoperations__research_1_1_decision_visitor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1_default_phase_parameters.html">DefaultPhaseParameters</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct holds all parameters for the default search. <a href="structoperations__research_1_1_default_phase_parameters.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_delayed_call_method0.html">DelayedCallMethod0</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-priority demon proxy to a method on the constraint with no arguments. <a href="classoperations__research_1_1_delayed_call_method0.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_delayed_call_method1.html">DelayedCallMethod1</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-priority demon proxy to a method on the constraint with one argument. <a href="classoperations__research_1_1_delayed_call_method1.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_delayed_call_method2.html">DelayedCallMethod2</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-priority demon proxy to a method on the constraint with two arguments. <a href="classoperations__research_1_1_delayed_call_method2.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classoperations__research_1_1_demon.html" title="A Demon is the base element of a propagation queue.">Demon</a> is the base element of a propagation queue. <a href="classoperations__research_1_1_demon.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_dimension_cumul_optimizer_core.html">DimensionCumulOptimizerCore</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_disjunctive_constraint.html">DisjunctiveConstraint</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_disjunctive_propagator.html">DisjunctivePropagator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class acts like a CP propagator: it takes a set of tasks given by their start/duration/end features, and reduces the range of possible values. <a href="classoperations__research_1_1_disjunctive_propagator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_exchange_subtrip.html">ExchangeSubtrip</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_filtered_heuristic_close_nodes_l_n_s_operator.html">FilteredHeuristicCloseNodesLNSOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filtered heuristic LNS operator, where the destruction phase consists of removing a node and the 'num_close_nodes' nodes closest to it, along with each of their corresponding sibling pickup/deliveries that are performed. <a href="classoperations__research_1_1_filtered_heuristic_close_nodes_l_n_s_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_filtered_heuristic_expensive_chain_l_n_s_operator.html">FilteredHeuristicExpensiveChainLNSOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similar to the heuristic path LNS above, but instead of removing one route entirely, the destruction phase consists of removing all nodes on an "expensive" chain from a route. <a href="classoperations__research_1_1_filtered_heuristic_expensive_chain_l_n_s_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_filtered_heuristic_local_search_operator.html">FilteredHeuristicLocalSearchOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class of operators using a RoutingFilteredHeuristic to insert unperformed nodes after changes have been made to the current solution. <a href="classoperations__research_1_1_filtered_heuristic_local_search_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_filtered_heuristic_path_l_n_s_operator.html">FilteredHeuristicPathLNSOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">LNS-like operator based on a filtered first solution heuristic to rebuild the solution, after the destruction phase consisting of removing one route. <a href="classoperations__research_1_1_filtered_heuristic_path_l_n_s_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_global_dimension_cumul_optimizer.html">GlobalDimensionCumulOptimizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_global_vehicle_breaks_constraint.html">GlobalVehicleBreaksConstraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_global_vehicle_breaks_constraint.html" title="GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on all vehicles in the dimensio...">GlobalVehicleBreaksConstraint</a> ensures breaks constraints are enforced on all vehicles in the dimension passed to its constructor. <a href="classoperations__research_1_1_global_vehicle_breaks_constraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_improvement_search_limit.html">ImprovementSearchLimit</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_index_pair_swap_active_operator.html">IndexPairSwapActiveOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which inserts inactive nodes into a path and makes a pair of active nodes inactive. <a href="classoperations__research_1_1_index_pair_swap_active_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_init_and_get_values.html">InitAndGetValues</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility class to encapsulate an <a class="el" href="classoperations__research_1_1_int_var_iterator.html" title="The class Iterator has two direct subclasses.">IntVarIterator</a> and use it in a range-based loop. <a href="classoperations__research_1_1_init_and_get_values.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_interval_var.html">IntervalVar</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interval variables are often used in scheduling. <a href="classoperations__research_1_1_interval_var.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_interval_var_element.html">IntervalVarElement</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html">IntExpr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class <a class="el" href="classoperations__research_1_1_int_expr.html" title="The class IntExpr is the base of all integer expressions in constraint programming.">IntExpr</a> is the base of all integer expressions in constraint programming. <a href="classoperations__research_1_1_int_expr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class <a class="el" href="classoperations__research_1_1_int_var.html" title="The class IntVar is a subset of IntExpr.">IntVar</a> is a subset of <a class="el" href="classoperations__research_1_1_int_expr.html" title="The class IntExpr is the base of all integer expressions in constraint programming.">IntExpr</a>. <a href="classoperations__research_1_1_int_var.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_var_element.html">IntVarElement</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_var_iterator.html">IntVarIterator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class Iterator has two direct subclasses. <a href="classoperations__research_1_1_int_var_iterator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_var_local_search_filter.html">IntVarLocalSearchFilter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_var_local_search_handler.html">IntVarLocalSearchHandler</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_var_local_search_operator.html">IntVarLocalSearchOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classoperations__research_1_1_local_search_operator.html" title="The base class for all local search operators.">LocalSearchOperator</a> built from an array of IntVars which specifies the scope of the operator. <a href="classoperations__research_1_1_int_var_local_search_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_light_pair_relocate_operator.html">LightPairRelocateOperator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_dimension_cumul_optimizer.html">LocalDimensionCumulOptimizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_search_filter.html">LocalSearchFilter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Local Search Filters are used for fast neighbor pruning. <a href="classoperations__research_1_1_local_search_filter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_search_filter_manager.html">LocalSearchFilterManager</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter manager: when a move is made, filters are executed to decide whether the solution is feasible and compute parts of the new cost. <a href="classoperations__research_1_1_local_search_filter_manager.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_search_monitor.html">LocalSearchMonitor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_search_operator.html">LocalSearchOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base class for all local search operators. <a href="classoperations__research_1_1_local_search_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_search_state.html">LocalSearchState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_local_search_variable.html">LocalSearchVariable</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_make_pair_active_operator.html">MakePairActiveOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pair-based neighborhood operators, designed to move nodes by pairs (pairs are static and given). <a href="classoperations__research_1_1_make_pair_active_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_make_pair_inactive_operator.html">MakePairInactiveOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which makes pairs of active nodes inactive. <a href="classoperations__research_1_1_make_pair_inactive_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_make_relocate_neighbors_operator.html">MakeRelocateNeighborsOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relocate neighborhood which moves chains of neighbors. <a href="classoperations__research_1_1_make_relocate_neighbors_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_model_cache.html">ModelCache</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements a complete cache for model elements: expressions and constraints. <a href="classoperations__research_1_1_model_cache.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_model_parser.html">ModelParser</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Model Parser. <a href="classoperations__research_1_1_model_parser.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_model_visitor.html">ModelVisitor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Model visitor. <a href="classoperations__research_1_1_model_visitor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_numerical_rev.html">NumericalRev</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclass of Rev&lt;T&gt; which adds numerical operations. <a href="classoperations__research_1_1_numerical_rev.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_numerical_rev_array.html">NumericalRevArray</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclass of RevArray&lt;T&gt; which adds numerical operations. <a href="classoperations__research_1_1_numerical_rev_array.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_optimize_var.html">OptimizeVar</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class encapsulates an objective. <a href="classoperations__research_1_1_optimize_var.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_pack.html">Pack</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_pair_exchange_operator.html">PairExchangeOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which exchanges the position of two pairs; for both pairs the first node of the pair must be before the second node on the same path. <a href="classoperations__research_1_1_pair_exchange_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_pair_exchange_relocate_operator.html">PairExchangeRelocateOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which exchanges the paths of two pairs (path have to be different). <a href="classoperations__research_1_1_pair_exchange_relocate_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_pair_node_swap_active_operator.html">PairNodeSwapActiveOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which inserts pairs of inactive nodes into a path and makes an active node inactive. <a href="classoperations__research_1_1_pair_node_swap_active_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_pair_relocate_operator.html">PairRelocateOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which moves a pair of nodes to another position where the first node of the pair must be before the second node on the same path. <a href="classoperations__research_1_1_pair_relocate_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_path_operator.html">PathOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class of the local search operators dedicated to path modifications (a path is a set of nodes linked together by arcs). <a href="classoperations__research_1_1_path_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_path_state.html">PathState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_profiled_decision_builder.html">ProfiledDecisionBuilder</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html">PropagationBaseObject</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NOLINT. <a href="classoperations__research_1_1_propagation_base_object.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_monitor.html">PropagationMonitor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_regular_limit.html">RegularLimit</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Usual limit based on wall_time, number of explored branches and number of failures in the search tree. <a href="classoperations__research_1_1_regular_limit.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_relocate_expensive_chain.html">RelocateExpensiveChain</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_relocate_expensive_chain.html" title="RelocateExpensiveChain.">RelocateExpensiveChain</a>. <a href="classoperations__research_1_1_relocate_expensive_chain.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_relocate_path_and_heuristic_insert_unperformed_operator.html">RelocatePathAndHeuristicInsertUnperformedOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Heuristic-based local search operator which relocates an entire route to an empty vehicle of different vehicle class and then tries to insert unperformed nodes using the heuristic. <a href="classoperations__research_1_1_relocate_path_and_heuristic_insert_unperformed_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_relocate_subtrip.html">RelocateSubtrip</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to move subtrips after an insertion node. <a href="classoperations__research_1_1_relocate_subtrip.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_resource_assignment_optimizer.html">ResourceAssignmentOptimizer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev.html">Rev</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class adds reversibility to a POD type. <a href="classoperations__research_1_1_rev.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_array.html">RevArray</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reversible array of POD types. <a href="classoperations__research_1_1_rev_array.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_bit_matrix.html">RevBitMatrix</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Matrix version of the <a class="el" href="classoperations__research_1_1_rev_bit_set.html" title="This class represents a reversible bitset.">RevBitSet</a> class. <a href="classoperations__research_1_1_rev_bit_matrix.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_bit_set.html">RevBitSet</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents a reversible bitset. <a href="classoperations__research_1_1_rev_bit_set.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_growing_array.html">RevGrowingArray</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is a reversible growing array. <a href="classoperations__research_1_1_rev_growing_array.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_immutable_multi_map.html">RevImmutableMultiMap</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reversible Immutable MultiMap class. <a href="classoperations__research_1_1_rev_immutable_multi_map.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_int_set.html">RevIntSet</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a special class to represent a 'residual' set of T. <a href="classoperations__research_1_1_rev_int_set.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_partial_sequence.html">RevPartialSequence</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">--&mdash; <a class="el" href="classoperations__research_1_1_rev_partial_sequence.html" title="--— RevPartialSequence --—">RevPartialSequence</a> --&mdash; <a href="classoperations__research_1_1_rev_partial_sequence.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_rev_switch.html">RevSwitch</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A reversible switch that can switch once from false to true. <a href="classoperations__research_1_1_rev_switch.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_c_p_sat_wrapper.html">RoutingCPSatWrapper</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dimensions represent quantities accumulated at nodes along the routes. <a href="classoperations__research_1_1_routing_dimension.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_glop_wrapper.html">RoutingGlopWrapper</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_index_manager.html">RoutingIndexManager</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manager for any NodeIndex &lt;-&gt; variable index conversion. <a href="classoperations__research_1_1_routing_index_manager.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_linear_solver_wrapper.html">RoutingLinearSolverWrapper</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_routing_model_visitor.html">RoutingModelVisitor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Routing model visitor. <a href="classoperations__research_1_1_routing_model_visitor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_search_limit.html">SearchLimit</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class of all search limits. <a href="classoperations__research_1_1_search_limit.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_search_log.html">SearchLog</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base class of all search logs that periodically outputs information when the search is running. <a href="classoperations__research_1_1_search_log.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_search_monitor.html">SearchMonitor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A search monitor is a simple set of callbacks to monitor all search events. <a href="classoperations__research_1_1_search_monitor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_sequence_var.html">SequenceVar</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A sequence variable is a variable whose domain is a set of possible orderings of the interval variables. <a href="classoperations__research_1_1_sequence_var.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_sequence_var_element.html">SequenceVarElement</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classoperations__research_1_1_sequence_var_element.html" title="The SequenceVarElement stores a partial representation of ranked interval variables in the underlying...">SequenceVarElement</a> stores a partial representation of ranked interval variables in the underlying sequence variable. <a href="classoperations__research_1_1_sequence_var_element.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_sequence_var_local_search_handler.html">SequenceVarLocalSearchHandler</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_sequence_var_local_search_operator.html">SequenceVarLocalSearchOperator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_simple_bound_costs.html">SimpleBoundCosts</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure meant to store soft bounds and associated violation constants. <a href="classoperations__research_1_1_simple_bound_costs.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_simple_rev_f_i_f_o.html">SimpleRevFIFO</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represent a reversible FIFO structure. <a href="classoperations__research_1_1_simple_rev_f_i_f_o.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_small_rev_bit_set.html">SmallRevBitSet</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents a small reversible bitset (size &lt;= 64). <a href="classoperations__research_1_1_small_rev_bit_set.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_solution_collector.html">SolutionCollector</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is the root class of all solution collectors. <a href="classoperations__research_1_1_solution_collector.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_solution_pool.html">SolutionPool</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is used to manage a pool of solutions. <a href="classoperations__research_1_1_solution_pool.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_solver.html" title="Solver Class.">Solver</a> Class. <a href="classoperations__research_1_1_solver.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_swap_index_pair_operator.html">SwapIndexPairOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator which iterates through each alternative of a set of pairs. <a href="classoperations__research_1_1_swap_index_pair_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_symmetry_breaker.html">SymmetryBreaker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in return. <a href="classoperations__research_1_1_symmetry_breaker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1_travel_bounds.html">TravelBounds</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_type_incompatibility_checker.html">TypeIncompatibilityChecker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checker for type incompatibilities. <a href="classoperations__research_1_1_type_incompatibility_checker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_type_regulations_checker.html">TypeRegulationsChecker</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_type_regulations_constraint.html">TypeRegulationsConstraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The following constraint ensures that incompatibilities and requirements between types are respected. <a href="classoperations__research_1_1_type_regulations_constraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_type_requirement_checker.html">TypeRequirementChecker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checker for type requirements. <a href="classoperations__research_1_1_type_requirement_checker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_unary_dimension_checker.html">UnaryDimensionChecker</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_unsorted_nullable_rev_bitset.html">UnsortedNullableRevBitset</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class represents a reversible bitset. <a href="classoperations__research_1_1_unsorted_nullable_rev_bitset.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_var_local_search_operator.html">VarLocalSearchOperator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base operator class for operators manipulating variables. <a href="classoperations__research_1_1_var_local_search_operator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ad502b08bb4d69dfbaf025415310b8da8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classoperations__research_1_1_var_local_search_operator.html">VarLocalSearchOperator</a>&lt; <a class="el" href="classoperations__research_1_1_sequence_var.html">SequenceVar</a>, std::vector&lt; int &gt;, <a class="el" href="classoperations__research_1_1_sequence_var_local_search_handler.html">SequenceVarLocalSearchHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ad502b08bb4d69dfbaf025415310b8da8">SequenceVarLocalSearchOperatorTemplate</a></td></tr>
<tr class="separator:ad502b08bb4d69dfbaf025415310b8da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae02b84a58c3008fb747c0f6917bfe6c"><td class="memItemLeft" align="right" valign="top">typedef std::function&lt; int64_t(int64_t)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aae02b84a58c3008fb747c0f6917bfe6c">RoutingTransitCallback1</a></td></tr>
<tr class="separator:aae02b84a58c3008fb747c0f6917bfe6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26868b9d744edcd8d59145e068678885"><td class="memItemLeft" align="right" valign="top">typedef std::function&lt; int64_t(int64_t, int64_t)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a26868b9d744edcd8d59145e068678885">RoutingTransitCallback2</a></td></tr>
<tr class="separator:a26868b9d744edcd8d59145e068678885"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a630fe793e232b361cd9fd99f18599df1"><td class="memItemLeft" align="right" valign="top">typedef std::pair&lt; std::vector&lt; int64_t &gt;, std::vector&lt; int64_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a630fe793e232b361cd9fd99f18599df1">RoutingIndexPair</a></td></tr>
<tr class="separator:a630fe793e232b361cd9fd99f18599df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef7db0bee0a22d1791d040fd3853f3b7"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="namespaceoperations__research.html#a630fe793e232b361cd9fd99f18599df1">RoutingIndexPair</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aef7db0bee0a22d1791d040fd3853f3b7">RoutingIndexPairs</a></td></tr>
<tr class="separator:aef7db0bee0a22d1791d040fd3853f3b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a403e52e933033645c3388146d5e2edd2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2">VarTypes</a> { <br />
&#160;&#160;<a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2aa876f4fb4e5f7f0c5c48fcf66c9ce7ce">UNSPECIFIED</a>
, <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2afd9ce19c75c8a2e8ff4c7307eff08e38">DOMAIN_INT_VAR</a>
, <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2a00e6c449ab034942ac313f8b48643f4b">BOOLEAN_VAR</a>
, <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2ac84956f1086e3f828921e0b3d51d806b">CONST_VAR</a>
, <br />
&#160;&#160;<a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2a16071208281c29136c1be022b7d170f0">VAR_ADD_CST</a>
, <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2a0ae20d0967db3441a2b885e5074c4b36">VAR_TIMES_CST</a>
, <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2a89a5a9b8c00be595eb52b4d464613d30">CST_SUB_VAR</a>
, <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2ae8e4c6f3e5a6d22d24204ec432f57860">OPP_VAR</a>
, <br />
&#160;&#160;<a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2af2d15b703802d6a1f8f402f90de90dc6">TRACE_VAR</a>
<br />
}</td></tr>
<tr class="memdesc:a403e52e933033645c3388146d5e2edd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This enum is used internally to do dynamic typing on subclasses of integer variables. <a href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2">More...</a><br /></td></tr>
<tr class="separator:a403e52e933033645c3388146d5e2edd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0787bf78fb09d1e30f2451b5a68d4b8"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa0787bf78fb09d1e30f2451b5a68d4b8">DimensionSchedulingStatus</a> { <a class="el" href="namespaceoperations__research.html#aa0787bf78fb09d1e30f2451b5a68d4b8af00c8dbdd6e1f11bdae06be94277d293">OPTIMAL</a>
, <a class="el" href="namespaceoperations__research.html#aa0787bf78fb09d1e30f2451b5a68d4b8af8cfb2115ef7ab822bca8edd1edac285">RELAXED_OPTIMAL_ONLY</a>
, <a class="el" href="namespaceoperations__research.html#aa0787bf78fb09d1e30f2451b5a68d4b8a6faaca695f728b47f47dd389f31e4a93">INFEASIBLE</a>
}</td></tr>
<tr class="separator:aa0787bf78fb09d1e30f2451b5a68d4b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6daa2481a6bbd7b307647006a8752630"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a6daa2481a6bbd7b307647006a8752630">CpRandomSeed</a> ()</td></tr>
<tr class="separator:a6daa2481a6bbd7b307647006a8752630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87fdc0126f6fc98ffb86ba1aa618f322"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a87fdc0126f6fc98ffb86ba1aa618f322">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s)</td></tr>
<tr class="separator:a87fdc0126f6fc98ffb86ba1aa618f322"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a9881f8a07b166ef2cbde572cea27b6"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5a9881f8a07b166ef2cbde572cea27b6">Zero</a> ()</td></tr>
<tr class="memdesc:a5a9881f8a07b166ef2cbde572cea27b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">NOLINT. <a href="namespaceoperations__research.html#a5a9881f8a07b166ef2cbde572cea27b6">More...</a><br /></td></tr>
<tr class="separator:a5a9881f8a07b166ef2cbde572cea27b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e48359348ad94d97e6c44ffd52b33e3"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a9e48359348ad94d97e6c44ffd52b33e3">One</a> ()</td></tr>
<tr class="memdesc:a9e48359348ad94d97e6c44ffd52b33e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method returns 1. <a href="namespaceoperations__research.html#a9e48359348ad94d97e6c44ffd52b33e3">More...</a><br /></td></tr>
<tr class="separator:a9e48359348ad94d97e6c44ffd52b33e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab563b868509e5ca6c0db57a038d863e4"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab563b868509e5ca6c0db57a038d863e4">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="classoperations__research_1_1_base_object.html">BaseObject</a> *o)</td></tr>
<tr class="separator:ab563b868509e5ca6c0db57a038d863e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82d722796fae06c7fb9d1d8a37c91c99"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a82d722796fae06c7fb9d1d8a37c91c99">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> &amp;assignment)</td></tr>
<tr class="separator:a82d722796fae06c7fb9d1d8a37c91c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea2bf322fab4e2319a23ad22acf8ccf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aea2bf322fab4e2319a23ad22acf8ccf8">SetAssignmentFromAssignment</a> (<a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *target_assignment, const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;target_vars, const <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *source_assignment, const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;source_vars)</td></tr>
<tr class="memdesc:aea2bf322fab4e2319a23ad22acf8ccf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">NOLINT. <a href="namespaceoperations__research.html#aea2bf322fab4e2319a23ad22acf8ccf8">More...</a><br /></td></tr>
<tr class="separator:aea2bf322fab4e2319a23ad22acf8ccf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee1401375b23909949cce272a3b787db"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aee1401375b23909949cce272a3b787db">Hash1</a> (uint64_t value)</td></tr>
<tr class="memdesc:aee1401375b23909949cce272a3b787db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hash functions. <a href="namespaceoperations__research.html#aee1401375b23909949cce272a3b787db">More...</a><br /></td></tr>
<tr class="separator:aee1401375b23909949cce272a3b787db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c150546a98dce59439f838f68493d84"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5c150546a98dce59439f838f68493d84">Hash1</a> (uint32_t value)</td></tr>
<tr class="separator:a5c150546a98dce59439f838f68493d84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e95e16a711ae93395f3735e07708708"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a8e95e16a711ae93395f3735e07708708">Hash1</a> (int64_t value)</td></tr>
<tr class="separator:a8e95e16a711ae93395f3735e07708708"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53a6358ea0e13e600820df98156f132d"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a53a6358ea0e13e600820df98156f132d">Hash1</a> (int value)</td></tr>
<tr class="separator:a53a6358ea0e13e600820df98156f132d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24d85d1e77f31f346dba6bdc02067473"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a24d85d1e77f31f346dba6bdc02067473">Hash1</a> (void *const ptr)</td></tr>
<tr class="separator:a24d85d1e77f31f346dba6bdc02067473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14927dac339bd5be7348433e5ae46551"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a14927dac339bd5be7348433e5ae46551"><td class="memTemplItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a14927dac339bd5be7348433e5ae46551">Hash1</a> (const std::vector&lt; T * &gt; &amp;ptrs)</td></tr>
<tr class="separator:a14927dac339bd5be7348433e5ae46551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a597f70b9007402fadc265ccb27687966"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a597f70b9007402fadc265ccb27687966">Hash1</a> (const std::vector&lt; int64_t &gt; &amp;ptrs)</td></tr>
<tr class="separator:a597f70b9007402fadc265ccb27687966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a2c92a28ee59ab17dfb5885ab3e20c8"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a5a2c92a28ee59ab17dfb5885ab3e20c8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_local_search_operator.html">LocalSearchOperator</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5a2c92a28ee59ab17dfb5885ab3e20c8">MakeLocalSearchOperator</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *solver, const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars, const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;secondary_vars, std::function&lt; int(int64_t)&gt; start_empty_path_class)</td></tr>
<tr class="memdesc:a5a2c92a28ee59ab17dfb5885ab3e20c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator Factories. <a href="namespaceoperations__research.html#a5a2c92a28ee59ab17dfb5885ab3e20c8">More...</a><br /></td></tr>
<tr class="separator:a5a2c92a28ee59ab17dfb5885ab3e20c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12527c82ffc8b31c5d8dc836c366d624"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a12527c82ffc8b31c5d8dc836c366d624"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a12527c82ffc8b31c5d8dc836c366d624">IsArrayConstant</a> (const std::vector&lt; T &gt; &amp;values, const T &amp;value)</td></tr>
<tr class="separator:a12527c82ffc8b31c5d8dc836c366d624"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f4525e71a6b05d97c868f0832750a60"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3f4525e71a6b05d97c868f0832750a60"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3f4525e71a6b05d97c868f0832750a60">IsArrayBoolean</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:a3f4525e71a6b05d97c868f0832750a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3e4f71c4c79e0b4ec00c4e715a7c298"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ae3e4f71c4c79e0b4ec00c4e715a7c298"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae3e4f71c4c79e0b4ec00c4e715a7c298">AreAllOnes</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:ae3e4f71c4c79e0b4ec00c4e715a7c298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0ae787392a8dd8a499eb55ac0916aa4"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ab0ae787392a8dd8a499eb55ac0916aa4"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab0ae787392a8dd8a499eb55ac0916aa4">AreAllNull</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:ab0ae787392a8dd8a499eb55ac0916aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aea406979285a28c91fd1ee8115af74"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3aea406979285a28c91fd1ee8115af74"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3aea406979285a28c91fd1ee8115af74">AreAllGreaterOrEqual</a> (const std::vector&lt; T &gt; &amp;values, const T &amp;value)</td></tr>
<tr class="separator:a3aea406979285a28c91fd1ee8115af74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15f08cfbb35e2b8b1eb76f79caea924a"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a15f08cfbb35e2b8b1eb76f79caea924a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a15f08cfbb35e2b8b1eb76f79caea924a">AreAllLessOrEqual</a> (const std::vector&lt; T &gt; &amp;values, const T &amp;value)</td></tr>
<tr class="separator:a15f08cfbb35e2b8b1eb76f79caea924a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab62b402f767cda48eb67ef8b50397f8f"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ab62b402f767cda48eb67ef8b50397f8f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab62b402f767cda48eb67ef8b50397f8f">AreAllPositive</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:ab62b402f767cda48eb67ef8b50397f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38972723946490ea4df4e34298d8805d"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a38972723946490ea4df4e34298d8805d"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a38972723946490ea4df4e34298d8805d">AreAllNegative</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:a38972723946490ea4df4e34298d8805d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3de09f9134b976e5ba64751ac0f4440b"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3de09f9134b976e5ba64751ac0f4440b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3de09f9134b976e5ba64751ac0f4440b">AreAllStrictlyPositive</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:a3de09f9134b976e5ba64751ac0f4440b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8351829c324863ddda52e201df4f9f84"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a8351829c324863ddda52e201df4f9f84"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a8351829c324863ddda52e201df4f9f84">AreAllStrictlyNegative</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:a8351829c324863ddda52e201df4f9f84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafac7375c23337f25821aa6f86ca627c"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:aafac7375c23337f25821aa6f86ca627c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aafac7375c23337f25821aa6f86ca627c">IsIncreasingContiguous</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:aafac7375c23337f25821aa6f86ca627c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d434774c07815a25ffaa7adb343c19e"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3d434774c07815a25ffaa7adb343c19e"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3d434774c07815a25ffaa7adb343c19e">IsIncreasing</a> (const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="separator:a3d434774c07815a25ffaa7adb343c19e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf2aea6c68fe502389c9264b971b2f85"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:adf2aea6c68fe502389c9264b971b2f85"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#adf2aea6c68fe502389c9264b971b2f85">IsArrayInRange</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars, T range_min, T range_max)</td></tr>
<tr class="separator:adf2aea6c68fe502389c9264b971b2f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4c7a8bfc6877606e512d3279549f44d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae4c7a8bfc6877606e512d3279549f44d">AreAllBound</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars)</td></tr>
<tr class="separator:ae4c7a8bfc6877606e512d3279549f44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7abde7313cef64d25202a18f07481fc3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a7abde7313cef64d25202a18f07481fc3">AreAllBooleans</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars)</td></tr>
<tr class="separator:a7abde7313cef64d25202a18f07481fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54470bffc3ea32cc37d0222e5dbb62a6"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a54470bffc3ea32cc37d0222e5dbb62a6"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a54470bffc3ea32cc37d0222e5dbb62a6">AreAllBoundOrNull</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars, const std::vector&lt; T &gt; &amp;values)</td></tr>
<tr class="memdesc:a54470bffc3ea32cc37d0222e5dbb62a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if all the variables are assigned to a single value, or if their corresponding value is null. <a href="namespaceoperations__research.html#a54470bffc3ea32cc37d0222e5dbb62a6">More...</a><br /></td></tr>
<tr class="separator:a54470bffc3ea32cc37d0222e5dbb62a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78ff06a9b302c6c96d8d917da235b749"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a78ff06a9b302c6c96d8d917da235b749">AreAllBoundTo</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars, int64_t value)</td></tr>
<tr class="memdesc:a78ff06a9b302c6c96d8d917da235b749"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if all variables are assigned to 'value'. <a href="namespaceoperations__research.html#a78ff06a9b302c6c96d8d917da235b749">More...</a><br /></td></tr>
<tr class="separator:a78ff06a9b302c6c96d8d917da235b749"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587a6a73cbcb4e4a4c7d3b596fa407aa"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a587a6a73cbcb4e4a4c7d3b596fa407aa">MaxVarArray</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars)</td></tr>
<tr class="separator:a587a6a73cbcb4e4a4c7d3b596fa407aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e8f645f06f9749b562b6625cd822daa"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a8e8f645f06f9749b562b6625cd822daa">MinVarArray</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars)</td></tr>
<tr class="separator:a8e8f645f06f9749b562b6625cd822daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79edaa5bfddfcd382d36a2ae25df798c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a79edaa5bfddfcd382d36a2ae25df798c">FillValues</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;vars, std::vector&lt; int64_t &gt; *const values)</td></tr>
<tr class="separator:a79edaa5bfddfcd382d36a2ae25df798c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb0903025d265c67199f5f09cee57ed0"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#afb0903025d265c67199f5f09cee57ed0">PosIntDivUp</a> (int64_t e, int64_t v)</td></tr>
<tr class="separator:afb0903025d265c67199f5f09cee57ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade1945fe75ec08245775fc4df20153d6"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ade1945fe75ec08245775fc4df20153d6">PosIntDivDown</a> (int64_t e, int64_t v)</td></tr>
<tr class="separator:ade1945fe75ec08245775fc4df20153d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9ef36940950625d5a6745caf0000a78"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int64_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa9ef36940950625d5a6745caf0000a78">ToInt64Vector</a> (const std::vector&lt; int &gt; &amp;input)</td></tr>
<tr class="separator:aa9ef36940950625d5a6745caf0000a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cdc2ad7aac33203a04919652bd0a916"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_local_search_filter.html">LocalSearchFilter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a6cdc2ad7aac33203a04919652bd0a916">MakePathStateFilter</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *solver, std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1_path_state.html">PathState</a> &gt; path_state, const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;nexts)</td></tr>
<tr class="separator:a6cdc2ad7aac33203a04919652bd0a916"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc7429aa3368c33f6444304ad8669259"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_local_search_filter.html">LocalSearchFilter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#acc7429aa3368c33f6444304ad8669259">MakeUnaryDimensionFilter</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *solver, std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1_unary_dimension_checker.html">UnaryDimensionChecker</a> &gt; checker, const std::string &amp;dimension_name)</td></tr>
<tr class="separator:acc7429aa3368c33f6444304ad8669259"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa24417adbd90d64820e9b7e274652934"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa24417adbd90d64820e9b7e274652934">AppendTasksFromPath</a> (const std::vector&lt; int64_t &gt; &amp;path, const <a class="el" href="structoperations__research_1_1_travel_bounds.html">TravelBounds</a> &amp;travel_bounds, const <a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a> &amp;dimension, <a class="el" href="structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html">DisjunctivePropagator::Tasks</a> *tasks)</td></tr>
<tr class="separator:aa24417adbd90d64820e9b7e274652934"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec575fd72a48b07ceca957691d785d57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aec575fd72a48b07ceca957691d785d57">AppendTasksFromIntervals</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1_interval_var.html">IntervalVar</a> * &gt; &amp;intervals, <a class="el" href="structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html">DisjunctivePropagator::Tasks</a> *tasks)</td></tr>
<tr class="separator:aec575fd72a48b07ceca957691d785d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0da8bffc5e8eafc798d8b3b1750f05b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ab0da8bffc5e8eafc798d8b3b1750f05b">FillPathEvaluation</a> (const std::vector&lt; int64_t &gt; &amp;path, const <a class="el" href="classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a">RoutingModel::TransitCallback2</a> &amp;evaluator, std::vector&lt; int64_t &gt; *values)</td></tr>
<tr class="separator:ab0da8bffc5e8eafc798d8b3b1750f05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3923814cbd98268f7c8b9eb9ad16bc17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3923814cbd98268f7c8b9eb9ad16bc17">FillTravelBoundsOfVehicle</a> (int vehicle, const std::vector&lt; int64_t &gt; &amp;path, const <a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a> &amp;dimension, <a class="el" href="structoperations__research_1_1_travel_bounds.html">TravelBounds</a> *travel_bounds)</td></tr>
<tr class="separator:a3923814cbd98268f7c8b9eb9ad16bc17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbea4d6dff74754bcb65e6d432d71ebe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_decision_builder.html">DecisionBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#afbea4d6dff74754bcb65e6d432d71ebe">MakeSetValuesFromTargets</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *solver, std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; variables, std::vector&lt; int64_t &gt; targets)</td></tr>
<tr class="memdesc:afbea4d6dff74754bcb65e6d432d71ebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">A decision builder which tries to assign values to variables as close as possible to target values first. <a href="namespaceoperations__research.html#afbea4d6dff74754bcb65e6d432d71ebe">More...</a><br /></td></tr>
<tr class="separator:afbea4d6dff74754bcb65e6d432d71ebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa17cca151690da44e948d7fbe07abca5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa17cca151690da44e948d7fbe07abca5">SolveModelWithSat</a> (const <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> &amp;model, const RoutingSearchParameters &amp;search_parameters, const <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *initial_solution, <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *solution)</td></tr>
<tr class="memdesc:aa17cca151690da44e948d7fbe07abca5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to solve the model using the cp-sat solver. <a href="namespaceoperations__research.html#aa17cca151690da44e948d7fbe07abca5">More...</a><br /></td></tr>
<tr class="separator:aa17cca151690da44e948d7fbe07abca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ea29fb0eedce9f806f0e0f5fbaff870"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_int_var_local_search_filter.html">IntVarLocalSearchFilter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a4ea29fb0eedce9f806f0e0f5fbaff870">MakeVehicleBreaksFilter</a> (const <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> &amp;routing_model, const <a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a> &amp;dimension)</td></tr>
<tr class="separator:a4ea29fb0eedce9f806f0e0f5fbaff870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ccb557dd21c73b6bcd5470476201cb8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_decision_builder.html">DecisionBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5ccb557dd21c73b6bcd5470476201cb8">MakeRestoreDimensionValuesForUnchangedRoutes</a> (<a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> *model)</td></tr>
<tr class="separator:a5ccb557dd21c73b6bcd5470476201cb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae39a6c4d8ba890ec5150ea91a7aad643"><td class="memItemLeft" align="right" valign="top">RoutingModelParameters&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae39a6c4d8ba890ec5150ea91a7aad643">BuildModelParametersFromFlags</a> ()</td></tr>
<tr class="memdesc:ae39a6c4d8ba890ec5150ea91a7aad643"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds routing search parameters from flags. <a href="namespaceoperations__research.html#ae39a6c4d8ba890ec5150ea91a7aad643">More...</a><br /></td></tr>
<tr class="separator:ae39a6c4d8ba890ec5150ea91a7aad643"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95da1d3a46432afd40024f79279a48b2"><td class="memItemLeft" align="right" valign="top">RoutingSearchParameters&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a95da1d3a46432afd40024f79279a48b2">BuildSearchParametersFromFlags</a> ()</td></tr>
<tr class="memdesc:a95da1d3a46432afd40024f79279a48b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds routing search parameters from flags. <a href="namespaceoperations__research.html#a95da1d3a46432afd40024f79279a48b2">More...</a><br /></td></tr>
<tr class="separator:a95da1d3a46432afd40024f79279a48b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa388c8707db255ae7742c04046bdd613"><td class="memItemLeft" align="right" valign="top">RoutingModelParameters&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa388c8707db255ae7742c04046bdd613">DefaultRoutingModelParameters</a> ()</td></tr>
<tr class="separator:aa388c8707db255ae7742c04046bdd613"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcac4a11f1e4d36ceb47f7251461487d"><td class="memItemLeft" align="right" valign="top">RoutingSearchParameters&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#adcac4a11f1e4d36ceb47f7251461487d">DefaultRoutingSearchParameters</a> ()</td></tr>
<tr class="separator:adcac4a11f1e4d36ceb47f7251461487d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2e060e8ee4ea901dc4df260b3385eac"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae2e060e8ee4ea901dc4df260b3385eac">FindErrorInRoutingSearchParameters</a> (const RoutingSearchParameters &amp;search_parameters)</td></tr>
<tr class="memdesc:ae2e060e8ee4ea901dc4df260b3385eac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an empty std::string if the routing search parameters are valid, and a non-empty, human readable error description if they're not. <a href="namespaceoperations__research.html#ae2e060e8ee4ea901dc4df260b3385eac">More...</a><br /></td></tr>
<tr class="separator:ae2e060e8ee4ea901dc4df260b3385eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ac15931bc80d274989abd5021c1a405"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a5ac15931bc80d274989abd5021c1a405">DEFINE_STRONG_INT_TYPE</a> (RoutingNodeIndex, int)</td></tr>
<tr class="memdesc:a5ac15931bc80d274989abd5021c1a405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defining common types used in the routing library outside the main <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> class has several purposes: 1) It allows some small libraries to avoid a dependency on routing. <a href="namespaceoperations__research.html#a5ac15931bc80d274989abd5021c1a405">More...</a><br /></td></tr>
<tr class="separator:a5ac15931bc80d274989abd5021c1a405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac31922bec0fce604355f05e442c6841e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ac31922bec0fce604355f05e442c6841e">DEFINE_STRONG_INT_TYPE</a> (RoutingCostClassIndex, int)</td></tr>
<tr class="separator:ac31922bec0fce604355f05e442c6841e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81f46879035192e05c66ea2057a932a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a81f46879035192e05c66ea2057a932a2">DEFINE_STRONG_INT_TYPE</a> (RoutingDimensionIndex, int)</td></tr>
<tr class="separator:a81f46879035192e05c66ea2057a932a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09339ebcf4d5e8a848ebcf71a7c552ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a09339ebcf4d5e8a848ebcf71a7c552ce">DEFINE_STRONG_INT_TYPE</a> (RoutingDisjunctionIndex, int)</td></tr>
<tr class="separator:a09339ebcf4d5e8a848ebcf71a7c552ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85589635492c818a6f29133d763ad679"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a85589635492c818a6f29133d763ad679">DEFINE_STRONG_INT_TYPE</a> (RoutingVehicleClassIndex, int)</td></tr>
<tr class="separator:a85589635492c818a6f29133d763ad679"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:aa213d8f884283e0d72712243cbbefa7c"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:aa213d8f884283e0d72712243cbbefa7c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa213d8f884283e0d72712243cbbefa7c">MakeConstraintDemon0</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(), const std::string &amp;name)</td></tr>
<tr class="separator:aa213d8f884283e0d72712243cbbefa7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0953b50b08320d1109c678555137f1db"><td class="memTemplParams" colspan="2">template&lt;class P &gt; </td></tr>
<tr class="memitem:a0953b50b08320d1109c678555137f1db"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a0953b50b08320d1109c678555137f1db">ParameterDebugString</a> (P param)</td></tr>
<tr class="separator:a0953b50b08320d1109c678555137f1db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c2f93547af434566184b7dee7039c93"><td class="memTemplParams" colspan="2">template&lt;class P &gt; </td></tr>
<tr class="memitem:a3c2f93547af434566184b7dee7039c93"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3c2f93547af434566184b7dee7039c93">ParameterDebugString</a> (P *param)</td></tr>
<tr class="memdesc:a3c2f93547af434566184b7dee7039c93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Support limited to pointers to classes which define DebugString(). <a href="namespaceoperations__research.html#a3c2f93547af434566184b7dee7039c93">More...</a><br /></td></tr>
<tr class="separator:a3c2f93547af434566184b7dee7039c93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0190f4a9c848c207d0bff97f625fcd1"><td class="memTemplParams" colspan="2">template&lt;class T , class P &gt; </td></tr>
<tr class="memitem:ae0190f4a9c848c207d0bff97f625fcd1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae0190f4a9c848c207d0bff97f625fcd1">MakeConstraintDemon1</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(P), const std::string &amp;name, P param1)</td></tr>
<tr class="separator:ae0190f4a9c848c207d0bff97f625fcd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68441e43b6c0228145d1101db5f3c4de"><td class="memTemplParams" colspan="2">template&lt;class T , class P , class Q &gt; </td></tr>
<tr class="memitem:a68441e43b6c0228145d1101db5f3c4de"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a68441e43b6c0228145d1101db5f3c4de">MakeConstraintDemon2</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(P, Q), const std::string &amp;name, P param1, Q param2)</td></tr>
<tr class="separator:a68441e43b6c0228145d1101db5f3c4de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a362b5a75841c543eec770b731d6e6865"><td class="memTemplParams" colspan="2">template&lt;class T , class P , class Q , class R &gt; </td></tr>
<tr class="memitem:a362b5a75841c543eec770b731d6e6865"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a362b5a75841c543eec770b731d6e6865">MakeConstraintDemon3</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(P, Q, R), const std::string &amp;name, P param1, Q param2, R param3)</td></tr>
<tr class="separator:a362b5a75841c543eec770b731d6e6865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a6a001b36b291a4afe7dffdbb9194bc45"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a6a001b36b291a4afe7dffdbb9194bc45"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a6a001b36b291a4afe7dffdbb9194bc45">MakeDelayedConstraintDemon0</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(), const std::string &amp;name)</td></tr>
<tr class="separator:a6a001b36b291a4afe7dffdbb9194bc45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac316c82f31293db18e25c809592908dd"><td class="memTemplParams" colspan="2">template&lt;class T , class P &gt; </td></tr>
<tr class="memitem:ac316c82f31293db18e25c809592908dd"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ac316c82f31293db18e25c809592908dd">MakeDelayedConstraintDemon1</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(P), const std::string &amp;name, P param1)</td></tr>
<tr class="separator:ac316c82f31293db18e25c809592908dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c0bc84812eed9d626b00bc8fb5b9ae1"><td class="memTemplParams" colspan="2">template&lt;class T , class P , class Q &gt; </td></tr>
<tr class="memitem:a6c0bc84812eed9d626b00bc8fb5b9ae1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a6c0bc84812eed9d626b00bc8fb5b9ae1">MakeDelayedConstraintDemon2</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s, T *const ct, void(T::*method)(P, Q), const std::string &amp;name, P param1, Q param2)</td></tr>
<tr class="separator:a6c0bc84812eed9d626b00bc8fb5b9ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >Collection of objects used to extend the <a class="el" href="classoperations__research_1_1_constraint.html" title="A constraint is the main modeling object.">Constraint</a> <a class="el" href="classoperations__research_1_1_solver.html" title="Solver Class.">Solver</a> library. </p>
<p >The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows.</p>
<p >This file contains a set of objects that simplifies writing extensions of the library.</p>
<p >The main objects that define extensions are:</p><ul>
<li><a class="el" href="classoperations__research_1_1_base_int_expr.html">BaseIntExpr</a>, the base class of all expressions that are not variables.</li>
<li><a class="el" href="classoperations__research_1_1_simple_rev_f_i_f_o.html" title="This class represent a reversible FIFO structure.">SimpleRevFIFO</a>, a reversible FIFO list with templatized values. A reversible data structure is a data structure that reverts its modifications when the search is going up in the search tree, usually after a failure occurs.</li>
<li><a class="el" href="classoperations__research_1_1_rev_immutable_multi_map.html" title="Reversible Immutable MultiMap class.">RevImmutableMultiMap</a>, a reversible immutable multimap.</li>
<li>MakeConstraintDemon&lt;n&gt; and MakeDelayedConstraintDemon&lt;n&gt; to wrap methods of a constraint as a demon.</li>
<li><a class="el" href="classoperations__research_1_1_rev_switch.html" title="A reversible switch that can switch once from false to true.">RevSwitch</a>, a reversible flip-once switch.</li>
<li><a class="el" href="classoperations__research_1_1_small_rev_bit_set.html" title="This class represents a small reversible bitset (size &lt;= 64).">SmallRevBitSet</a>, <a class="el" href="classoperations__research_1_1_rev_bit_set.html" title="This class represents a reversible bitset.">RevBitSet</a>, and <a class="el" href="classoperations__research_1_1_rev_bit_matrix.html" title="Matrix version of the RevBitSet class.">RevBitMatrix</a>: reversible 1D or 2D bitsets.</li>
<li><a class="el" href="classoperations__research_1_1_local_search_operator.html" title="The base class for all local search operators.">LocalSearchOperator</a>, <a class="el" href="classoperations__research_1_1_int_var_local_search_operator.html" title="Specialization of LocalSearchOperator built from an array of IntVars which specifies the scope of the...">IntVarLocalSearchOperator</a>, <a class="el" href="classoperations__research_1_1_change_value.html" title="Defines operators which change the value of variables; each neighbor corresponds to one modified vari...">ChangeValue</a> and <a class="el" href="classoperations__research_1_1_path_operator.html" title="Base class of the local search operators dedicated to path modifications (a path is a set of nodes li...">PathOperator</a>, to create new local search operators.</li>
<li><a class="el" href="classoperations__research_1_1_local_search_filter.html" title="Local Search Filters are used for fast neighbor pruning.">LocalSearchFilter</a> and <a class="el" href="classoperations__research_1_1_int_var_local_search_filter.html">IntVarLocalSearchFilter</a>, to create new local search filters.</li>
<li><a class="el" href="classoperations__research_1_1_base_lns.html" title="This is the base class for building an Lns operator.">BaseLns</a>, to write Large Neighborhood Search operators.</li>
<li><a class="el" href="classoperations__research_1_1_symmetry_breaker.html" title="A symmetry breaker is an object that will visit a decision and create the &#39;symmetrical&#39; decision in r...">SymmetryBreaker</a>, to describe model symmetries that will be broken during search using the 'Symmetry Breaking During Search' framework see Gent, I. P., Harvey, W., &amp; Kelsey, T. (2002). Groups and Constraints: Symmetry Breaking During Search. Principles and Practice of <a class="el" href="classoperations__research_1_1_constraint.html" title="A constraint is the main modeling object.">Constraint</a> Programming CP2002 (Vol. 2470, pp. 415-430). Springer. Retrieved from <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.11.1442">http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.11.1442</a>.</li>
</ul>
<p >Then, there are some internal classes that are used throughout the solver and exposed in this file:</p><ul>
<li><a class="el" href="classoperations__research_1_1_search_log.html" title="The base class of all search logs that periodically outputs information when the search is running.">SearchLog</a>, the root class of all periodic outputs during search.</li>
<li><a class="el" href="classoperations__research_1_1_model_cache.html" title="Implements a complete cache for model elements: expressions and constraints.">ModelCache</a>, A caching layer to avoid creating twice the same object.</li>
</ul>
<p >The objective of a vehicle routing problem is to build routes covering a set of nodes minimizing the overall cost of the routes (usually proportional to the sum of the lengths of each segment of the routes) while respecting some problem-specific constraints (such as the length of a route). A route is equivalent to a path connecting nodes, starting/ending at specific starting/ending nodes.</p>
<p >The term "vehicle routing" is historical and the category of problems solved is not limited to the routing of vehicles: any problem involving finding routes visiting a given number of nodes optimally falls under this category of problems, such as finding the optimal sequence in a playlist. The literature around vehicle routing problems is extremely dense but one can find some basic introductions in the following links:</p><ul>
<li><a href="http://en.wikipedia.org/wiki/Travelling_salesman_problem">http://en.wikipedia.org/wiki/Travelling_salesman_problem</a></li>
<li><a href="http://www.tsp.gatech.edu/history/index.html">http://www.tsp.gatech.edu/history/index.html</a></li>
<li><a href="http://en.wikipedia.org/wiki/Vehicle_routing_problem">http://en.wikipedia.org/wiki/Vehicle_routing_problem</a></li>
</ul>
<p >The vehicle routing library is a vertical layer above the constraint programming library (ortools/constraint_programming:cp). One has access to all underlying constrained variables of the vehicle routing model which can therefore be enriched by adding any constraint available in the constraint programming library.</p>
<p >There are two sets of variables available:</p><ul>
<li>path variables:<ul>
<li>"next(i)" variables representing the immediate successor of the node corresponding to i; use IndexToNode() to get the node corresponding to a "next" variable value; note that node indices are strongly typed integers (cf. ortools/base/strong_int.h);</li>
<li>"vehicle(i)" variables representing the vehicle route to which the node corresponding to i belongs;</li>
<li>"active(i)" boolean variables, true if the node corresponding to i is visited and false if not; this can be false when nodes are either optional or part of a disjunction;</li>
<li>The following relationships hold for all i: active(i) == 0 &lt;=&gt; next(i) == i &lt;=&gt; vehicle(i) == -1, next(i) == j =&gt; vehicle(j) == vehicle(i).</li>
</ul>
</li>
<li>dimension variables, used when one is accumulating quantities along routes, such as weight or volume carried, distance or time:<ul>
<li>"cumul(i,d)" variables representing the quantity of dimension d when arriving at the node corresponding to i;</li>
<li>"transit(i,d)" variables representing the quantity of dimension d added after visiting the node corresponding to i.</li>
<li>The following relationship holds for all (i,d): next(i) == j =&gt; cumul(j,d) == cumul(i,d) + transit(i,d). Solving the vehicle routing problems is mainly done using approximate methods (namely local search, cf. <a href="http://en.wikipedia.org/wiki/Local_search_(optimization)">http://en.wikipedia.org/wiki/Local_search_(optimization)</a> ), potentially combined with exact techniques based on dynamic programming and exhaustive tree search. Advanced tips: Flags are available to tune the search used to solve routing problems. Here is a quick overview of the ones one might want to modify:</li>
</ul>
</li>
<li>Limiting the search for solutions:<ul>
<li>routing_solution_limit (default: kint64max): stop the search after finding 'routing_solution_limit' improving solutions;</li>
<li>routing_time_limit (default: kint64max): stop the search after 'routing_time_limit' milliseconds;</li>
</ul>
</li>
<li>Customizing search:<ul>
<li>routing_first_solution (default: select the first node with an unbound successor and connect it to the first available node): selects the heuristic to build a first solution which will then be improved by local search; possible values are GlobalCheapestArc (iteratively connect two nodes which produce the cheapest route segment), LocalCheapestArc (select the first node with an unbound successor and connect it to the node which produces the cheapest route segment), PathCheapestArc (starting from a route "start" node, connect it to the node which produces the cheapest route segment, then extend the route by iterating on the last node added to the route).</li>
<li>Local search neighborhoods:<ul>
<li>routing_no_lns (default: false): forbids the use of Large Neighborhood Search (LNS); LNS can find good solutions but is usually very slow. Refer to the description of PATHLNS in the LocalSearchOperators enum in <a class="el" href="constraint__solver_8h.html">constraint_solver.h</a> for more information.</li>
<li>routing_no_tsp (default: true): forbids the use of exact methods to solve "sub"-traveling salesman problems (TSPs) of the current model (such as sub-parts of a route, or one route in a multiple route problem). Uses dynamic programming to solve such TSPs with a maximum size (in number of nodes) up to cp_local_search_tsp_opt_size (flag with a default value of 13 nodes). It is not activated by default because it can slow down the search.</li>
</ul>
</li>
<li>Meta-heuristics: used to guide the search out of local minima found by local search. Note that, in general, a search with metaheuristics activated never stops, therefore one must specify a search limit. Several types of metaheuristics are provided:<ul>
<li>routing_guided_local_search (default: false): activates guided local search (cf. <a href="http://en.wikipedia.org/wiki/Guided_Local_Search">http://en.wikipedia.org/wiki/Guided_Local_Search</a>); this is generally the most efficient metaheuristic for vehicle routing;</li>
<li>routing_simulated_annealing (default: false): activates simulated annealing (cf. <a href="http://en.wikipedia.org/wiki/Simulated_annealing">http://en.wikipedia.org/wiki/Simulated_annealing</a>);</li>
<li>routing_tabu_search (default: false): activates tabu search (cf. <a href="http://en.wikipedia.org/wiki/Tabu_search">http://en.wikipedia.org/wiki/Tabu_search</a>).</li>
</ul>
</li>
</ul>
</li>
</ul>
<p >Code sample: Here is a simple example solving a traveling salesman problem given a cost function callback (returns the cost of a route segment):</p>
<ul>
<li><p class="startli">Define a custom distance/cost function from an index to another; in this example just returns the sum of the indices:</p>
<p class="startli">int64_t MyDistance(int64_t from, int64_t to) { return from + to; }</p>
</li>
<li><p class="startli">Create a routing model for a given problem size (int number of nodes) and number of routes (here, 1):</p>
<p class="startli"><a class="el" href="classoperations__research_1_1_routing_index_manager.html" title="Manager for any NodeIndex &lt;-&gt; variable index conversion.">RoutingIndexManager</a> manager(...number of nodes..., 1); <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> routing(manager);</p>
</li>
<li><p class="startli">Set the cost function by registering an std::function&lt;int64_t(int64_t,
int64_t)&gt; in the model and passing its index as the vehicle cost.</p>
<p class="startli">const int cost = routing.RegisterTransitCallback(MyDistance); routing.SetArcCostEvaluatorOfAllVehicles(cost);</p>
</li>
<li><p class="startli">Find a solution using Solve(), returns a solution if any (owned by routing):</p>
<p class="startli">const Assignment* solution = routing.Solve(); CHECK(solution != nullptr);</p>
</li>
<li><p class="startli">Inspect the solution cost and route (only one route here):</p>
<p class="startli">LOG(INFO) &lt;&lt; "Cost " &lt;&lt; solution-&gt;ObjectiveValue(); const int route_number = 0; for (int64_t node = routing.Start(route_number); !routing.IsEnd(node); node = solution-&gt;Value(routing.NextVar(node))) { LOG(INFO) &lt;&lt; manager.IndexToNode(node); }</p>
</li>
</ul>
<p >Keywords: Vehicle Routing, Traveling Salesman Problem, TSP, VRP, CVRPTW, PDP. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a630fe793e232b361cd9fd99f18599df1" name="a630fe793e232b361cd9fd99f18599df1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a630fe793e232b361cd9fd99f18599df1">&#9670;&nbsp;</a></span>RoutingIndexPair</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::pair&lt;std::vector&lt;int64_t&gt;, std::vector&lt;int64_t&gt; &gt; <a class="el" href="namespaceoperations__research.html#a630fe793e232b361cd9fd99f18599df1">RoutingIndexPair</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="routing__types_8h_source.html#l00045">45</a> of file <a class="el" href="routing__types_8h_source.html">routing_types.h</a>.</p>
</div>
</div>
<a id="aef7db0bee0a22d1791d040fd3853f3b7" name="aef7db0bee0a22d1791d040fd3853f3b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef7db0bee0a22d1791d040fd3853f3b7">&#9670;&nbsp;</a></span>RoutingIndexPairs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::vector&lt;<a class="el" href="namespaceoperations__research.html#a630fe793e232b361cd9fd99f18599df1">RoutingIndexPair</a>&gt; <a class="el" href="namespaceoperations__research.html#aef7db0bee0a22d1791d040fd3853f3b7">RoutingIndexPairs</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="routing__types_8h_source.html#l00046">46</a> of file <a class="el" href="routing__types_8h_source.html">routing_types.h</a>.</p>
</div>
</div>
<a id="aae02b84a58c3008fb747c0f6917bfe6c" name="aae02b84a58c3008fb747c0f6917bfe6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae02b84a58c3008fb747c0f6917bfe6c">&#9670;&nbsp;</a></span>RoutingTransitCallback1</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::function&lt;int64_t(int64_t)&gt; <a class="el" href="namespaceoperations__research.html#aae02b84a58c3008fb747c0f6917bfe6c">RoutingTransitCallback1</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="routing__types_8h_source.html#l00042">42</a> of file <a class="el" href="routing__types_8h_source.html">routing_types.h</a>.</p>
</div>
</div>
<a id="a26868b9d744edcd8d59145e068678885" name="a26868b9d744edcd8d59145e068678885"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26868b9d744edcd8d59145e068678885">&#9670;&nbsp;</a></span>RoutingTransitCallback2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::function&lt;int64_t(int64_t, int64_t)&gt; <a class="el" href="namespaceoperations__research.html#a26868b9d744edcd8d59145e068678885">RoutingTransitCallback2</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="routing__types_8h_source.html#l00043">43</a> of file <a class="el" href="routing__types_8h_source.html">routing_types.h</a>.</p>
</div>
</div>
<a id="ad502b08bb4d69dfbaf025415310b8da8" name="ad502b08bb4d69dfbaf025415310b8da8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad502b08bb4d69dfbaf025415310b8da8">&#9670;&nbsp;</a></span>SequenceVarLocalSearchOperatorTemplate</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classoperations__research_1_1_var_local_search_operator.html">VarLocalSearchOperator</a>&lt;<a class="el" href="classoperations__research_1_1_sequence_var.html">SequenceVar</a>, std::vector&lt;int&gt;, <a class="el" href="classoperations__research_1_1_sequence_var_local_search_handler.html">SequenceVarLocalSearchHandler</a>&gt; <a class="el" href="namespaceoperations__research.html#ad502b08bb4d69dfbaf025415310b8da8">SequenceVarLocalSearchOperatorTemplate</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l01148">1148</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="aa0787bf78fb09d1e30f2451b5a68d4b8" name="aa0787bf78fb09d1e30f2451b5a68d4b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0787bf78fb09d1e30f2451b5a68d4b8">&#9670;&nbsp;</a></span>DimensionSchedulingStatus</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum class <a class="el" href="namespaceoperations__research.html#aa0787bf78fb09d1e30f2451b5a68d4b8">DimensionSchedulingStatus</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa0787bf78fb09d1e30f2451b5a68d4b8af00c8dbdd6e1f11bdae06be94277d293" name="aa0787bf78fb09d1e30f2451b5a68d4b8af00c8dbdd6e1f11bdae06be94277d293"></a>OPTIMAL&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aa0787bf78fb09d1e30f2451b5a68d4b8af8cfb2115ef7ab822bca8edd1edac285" name="aa0787bf78fb09d1e30f2451b5a68d4b8af8cfb2115ef7ab822bca8edd1edac285"></a>RELAXED_OPTIMAL_ONLY&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aa0787bf78fb09d1e30f2451b5a68d4b8a6faaca695f728b47f47dd389f31e4a93" name="aa0787bf78fb09d1e30f2451b5a68d4b8a6faaca695f728b47f47dd389f31e4a93"></a>INFEASIBLE&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="routing__lp__scheduling_8h_source.html#l00150">150</a> of file <a class="el" href="routing__lp__scheduling_8h_source.html">routing_lp_scheduling.h</a>.</p>
</div>
</div>
<a id="a403e52e933033645c3388146d5e2edd2" name="a403e52e933033645c3388146d5e2edd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a403e52e933033645c3388146d5e2edd2">&#9670;&nbsp;</a></span>VarTypes</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceoperations__research.html#a403e52e933033645c3388146d5e2edd2">VarTypes</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This enum is used internally to do dynamic typing on subclasses of integer variables. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2aa876f4fb4e5f7f0c5c48fcf66c9ce7ce" name="a403e52e933033645c3388146d5e2edd2aa876f4fb4e5f7f0c5c48fcf66c9ce7ce"></a>UNSPECIFIED&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2afd9ce19c75c8a2e8ff4c7307eff08e38" name="a403e52e933033645c3388146d5e2edd2afd9ce19c75c8a2e8ff4c7307eff08e38"></a>DOMAIN_INT_VAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2a00e6c449ab034942ac313f8b48643f4b" name="a403e52e933033645c3388146d5e2edd2a00e6c449ab034942ac313f8b48643f4b"></a>BOOLEAN_VAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2ac84956f1086e3f828921e0b3d51d806b" name="a403e52e933033645c3388146d5e2edd2ac84956f1086e3f828921e0b3d51d806b"></a>CONST_VAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2a16071208281c29136c1be022b7d170f0" name="a403e52e933033645c3388146d5e2edd2a16071208281c29136c1be022b7d170f0"></a>VAR_ADD_CST&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2a0ae20d0967db3441a2b885e5074c4b36" name="a403e52e933033645c3388146d5e2edd2a0ae20d0967db3441a2b885e5074c4b36"></a>VAR_TIMES_CST&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2a89a5a9b8c00be595eb52b4d464613d30" name="a403e52e933033645c3388146d5e2edd2a89a5a9b8c00be595eb52b4d464613d30"></a>CST_SUB_VAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2ae8e4c6f3e5a6d22d24204ec432f57860" name="a403e52e933033645c3388146d5e2edd2ae8e4c6f3e5a6d22d24204ec432f57860"></a>OPP_VAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a403e52e933033645c3388146d5e2edd2af2d15b703802d6a1f8f402f90de90dc6" name="a403e52e933033645c3388146d5e2edd2af2d15b703802d6a1f8f402f90de90dc6"></a>TRACE_VAR&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00115">115</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aec575fd72a48b07ceca957691d785d57" name="aec575fd72a48b07ceca957691d785d57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec575fd72a48b07ceca957691d785d57">&#9670;&nbsp;</a></span>AppendTasksFromIntervals()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::AppendTasksFromIntervals </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_interval_var.html">IntervalVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>intervals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html">DisjunctivePropagator::Tasks</a> *&#160;</td>
<td class="paramname"><em>tasks</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa24417adbd90d64820e9b7e274652934" name="aa24417adbd90d64820e9b7e274652934"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa24417adbd90d64820e9b7e274652934">&#9670;&nbsp;</a></span>AppendTasksFromPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::AppendTasksFromPath </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64_t &gt; &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1_travel_bounds.html">TravelBounds</a> &amp;&#160;</td>
<td class="paramname"><em>travel_bounds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a> &amp;&#160;</td>
<td class="paramname"><em>dimension</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structoperations__research_1_1_disjunctive_propagator_1_1_tasks.html">DisjunctivePropagator::Tasks</a> *&#160;</td>
<td class="paramname"><em>tasks</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7abde7313cef64d25202a18f07481fc3" name="a7abde7313cef64d25202a18f07481fc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7abde7313cef64d25202a18f07481fc3">&#9670;&nbsp;</a></span>AreAllBooleans()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllBooleans </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02955">2955</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae4c7a8bfc6877606e512d3279549f44d" name="ae4c7a8bfc6877606e512d3279549f44d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4c7a8bfc6877606e512d3279549f44d">&#9670;&nbsp;</a></span>AreAllBound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllBound </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02946">2946</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a54470bffc3ea32cc37d0222e5dbb62a6" name="a54470bffc3ea32cc37d0222e5dbb62a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54470bffc3ea32cc37d0222e5dbb62a6">&#9670;&nbsp;</a></span>AreAllBoundOrNull()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllBoundOrNull </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if all the variables are assigned to a single value, or if their corresponding value is null. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02962">2962</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a78ff06a9b302c6c96d8d917da235b749" name="a78ff06a9b302c6c96d8d917da235b749"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78ff06a9b302c6c96d8d917da235b749">&#9670;&nbsp;</a></span>AreAllBoundTo()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllBoundTo </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if all variables are assigned to 'value'. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02973">2973</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a3aea406979285a28c91fd1ee8115af74" name="a3aea406979285a28c91fd1ee8115af74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3aea406979285a28c91fd1ee8115af74">&#9670;&nbsp;</a></span>AreAllGreaterOrEqual()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllGreaterOrEqual </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02876">2876</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a15f08cfbb35e2b8b1eb76f79caea924a" name="a15f08cfbb35e2b8b1eb76f79caea924a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15f08cfbb35e2b8b1eb76f79caea924a">&#9670;&nbsp;</a></span>AreAllLessOrEqual()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllLessOrEqual </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02886">2886</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a38972723946490ea4df4e34298d8805d" name="a38972723946490ea4df4e34298d8805d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38972723946490ea4df4e34298d8805d">&#9670;&nbsp;</a></span>AreAllNegative()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllNegative </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02901">2901</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ab0ae787392a8dd8a499eb55ac0916aa4" name="ab0ae787392a8dd8a499eb55ac0916aa4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0ae787392a8dd8a499eb55ac0916aa4">&#9670;&nbsp;</a></span>AreAllNull()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllNull </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02871">2871</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae3e4f71c4c79e0b4ec00c4e715a7c298" name="ae3e4f71c4c79e0b4ec00c4e715a7c298"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3e4f71c4c79e0b4ec00c4e715a7c298">&#9670;&nbsp;</a></span>AreAllOnes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllOnes </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02866">2866</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ab62b402f767cda48eb67ef8b50397f8f" name="ab62b402f767cda48eb67ef8b50397f8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab62b402f767cda48eb67ef8b50397f8f">&#9670;&nbsp;</a></span>AreAllPositive()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllPositive </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02896">2896</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8351829c324863ddda52e201df4f9f84" name="a8351829c324863ddda52e201df4f9f84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8351829c324863ddda52e201df4f9f84">&#9670;&nbsp;</a></span>AreAllStrictlyNegative()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllStrictlyNegative </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02911">2911</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a3de09f9134b976e5ba64751ac0f4440b" name="a3de09f9134b976e5ba64751ac0f4440b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3de09f9134b976e5ba64751ac0f4440b">&#9670;&nbsp;</a></span>AreAllStrictlyPositive()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AreAllStrictlyPositive </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02906">2906</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae39a6c4d8ba890ec5150ea91a7aad643" name="ae39a6c4d8ba890ec5150ea91a7aad643"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae39a6c4d8ba890ec5150ea91a7aad643">&#9670;&nbsp;</a></span>BuildModelParametersFromFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">RoutingModelParameters operations_research::BuildModelParametersFromFlags </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds routing search parameters from flags. </p>
</div>
</div>
<a id="a95da1d3a46432afd40024f79279a48b2" name="a95da1d3a46432afd40024f79279a48b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95da1d3a46432afd40024f79279a48b2">&#9670;&nbsp;</a></span>BuildSearchParametersFromFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">RoutingSearchParameters operations_research::BuildSearchParametersFromFlags </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds routing search parameters from flags. </p>
<p >describe a valid set of routing search parameters. </p>
</div>
</div>
<a id="a6daa2481a6bbd7b307647006a8752630" name="a6daa2481a6bbd7b307647006a8752630"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6daa2481a6bbd7b307647006a8752630">&#9670;&nbsp;</a></span>CpRandomSeed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::CpRandomSeed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l00160">160</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="aa388c8707db255ae7742c04046bdd613" name="aa388c8707db255ae7742c04046bdd613"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa388c8707db255ae7742c04046bdd613">&#9670;&nbsp;</a></span>DefaultRoutingModelParameters()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">RoutingModelParameters operations_research::DefaultRoutingModelParameters </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adcac4a11f1e4d36ceb47f7251461487d" name="adcac4a11f1e4d36ceb47f7251461487d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adcac4a11f1e4d36ceb47f7251461487d">&#9670;&nbsp;</a></span>DefaultRoutingSearchParameters()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">RoutingSearchParameters operations_research::DefaultRoutingSearchParameters </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac31922bec0fce604355f05e442c6841e" name="ac31922bec0fce604355f05e442c6841e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac31922bec0fce604355f05e442c6841e">&#9670;&nbsp;</a></span>DEFINE_STRONG_INT_TYPE() <span class="overload">[1/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::DEFINE_STRONG_INT_TYPE </td>
<td>(</td>
<td class="paramtype">RoutingCostClassIndex&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a81f46879035192e05c66ea2057a932a2" name="a81f46879035192e05c66ea2057a932a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81f46879035192e05c66ea2057a932a2">&#9670;&nbsp;</a></span>DEFINE_STRONG_INT_TYPE() <span class="overload">[2/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::DEFINE_STRONG_INT_TYPE </td>
<td>(</td>
<td class="paramtype">RoutingDimensionIndex&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a09339ebcf4d5e8a848ebcf71a7c552ce" name="a09339ebcf4d5e8a848ebcf71a7c552ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09339ebcf4d5e8a848ebcf71a7c552ce">&#9670;&nbsp;</a></span>DEFINE_STRONG_INT_TYPE() <span class="overload">[3/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::DEFINE_STRONG_INT_TYPE </td>
<td>(</td>
<td class="paramtype">RoutingDisjunctionIndex&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5ac15931bc80d274989abd5021c1a405" name="a5ac15931bc80d274989abd5021c1a405"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ac15931bc80d274989abd5021c1a405">&#9670;&nbsp;</a></span>DEFINE_STRONG_INT_TYPE() <span class="overload">[4/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::DEFINE_STRONG_INT_TYPE </td>
<td>(</td>
<td class="paramtype">RoutingNodeIndex&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Defining common types used in the routing library outside the main <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> class has several purposes: 1) It allows some small libraries to avoid a dependency on routing. </p>
<p >{h,cc}, eg. <a class="el" href="routing__neighborhoods_8h.html">routing_neighborhoods.h</a>. 2) It allows an easier wrapping via SWIG, which can have issues with intra-class types.</p>
<p >Users that depend on routing.{h,cc} should just use the <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a>:: equivalent, eg. RoutingModel::NodeIndex. </p>
</div>
</div>
<a id="a85589635492c818a6f29133d763ad679" name="a85589635492c818a6f29133d763ad679"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85589635492c818a6f29133d763ad679">&#9670;&nbsp;</a></span>DEFINE_STRONG_INT_TYPE() <span class="overload">[5/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::DEFINE_STRONG_INT_TYPE </td>
<td>(</td>
<td class="paramtype">RoutingVehicleClassIndex&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab0da8bffc5e8eafc798d8b3b1750f05b" name="ab0da8bffc5e8eafc798d8b3b1750f05b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0da8bffc5e8eafc798d8b3b1750f05b">&#9670;&nbsp;</a></span>FillPathEvaluation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::FillPathEvaluation </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64_t &gt; &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_routing_model.html#a5fa8aee5b0c67072dbbb03f1899ec60a">RoutingModel::TransitCallback2</a> &amp;&#160;</td>
<td class="paramname"><em>evaluator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int64_t &gt; *&#160;</td>
<td class="paramname"><em>values</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3923814cbd98268f7c8b9eb9ad16bc17" name="a3923814cbd98268f7c8b9eb9ad16bc17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3923814cbd98268f7c8b9eb9ad16bc17">&#9670;&nbsp;</a></span>FillTravelBoundsOfVehicle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::FillTravelBoundsOfVehicle </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>vehicle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64_t &gt; &amp;&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a> &amp;&#160;</td>
<td class="paramname"><em>dimension</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structoperations__research_1_1_travel_bounds.html">TravelBounds</a> *&#160;</td>
<td class="paramname"><em>travel_bounds</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a79edaa5bfddfcd382d36a2ae25df798c" name="a79edaa5bfddfcd382d36a2ae25df798c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79edaa5bfddfcd382d36a2ae25df798c">&#9670;&nbsp;</a></span>FillValues()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void operations_research::FillValues </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int64_t &gt; *const&#160;</td>
<td class="paramname"><em>values</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l03002">3002</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae2e060e8ee4ea901dc4df260b3385eac" name="ae2e060e8ee4ea901dc4df260b3385eac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2e060e8ee4ea901dc4df260b3385eac">&#9670;&nbsp;</a></span>FindErrorInRoutingSearchParameters()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::FindErrorInRoutingSearchParameters </td>
<td>(</td>
<td class="paramtype">const RoutingSearchParameters &amp;&#160;</td>
<td class="paramname"><em>search_parameters</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an empty std::string if the routing search parameters are valid, and a non-empty, human readable error description if they're not. </p>
</div>
</div>
<a id="a597f70b9007402fadc265ccb27687966" name="a597f70b9007402fadc265ccb27687966"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a597f70b9007402fadc265ccb27687966">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[1/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64_t &gt; &amp;&#160;</td>
<td class="paramname"><em>ptrs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00262">262</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a14927dac339bd5be7348433e5ae46551" name="a14927dac339bd5be7348433e5ae46551"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14927dac339bd5be7348433e5ae46551">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[2/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T * &gt; &amp;&#160;</td>
<td class="paramname"><em>ptrs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00252">252</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a53a6358ea0e13e600820df98156f132d" name="a53a6358ea0e13e600820df98156f132d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53a6358ea0e13e600820df98156f132d">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[3/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00240">240</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8e95e16a711ae93395f3735e07708708" name="a8e95e16a711ae93395f3735e07708708"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e95e16a711ae93395f3735e07708708">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[4/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00236">236</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a5c150546a98dce59439f838f68493d84" name="a5c150546a98dce59439f838f68493d84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c150546a98dce59439f838f68493d84">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[5/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00225">225</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aee1401375b23909949cce272a3b787db" name="aee1401375b23909949cce272a3b787db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee1401375b23909949cce272a3b787db">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[6/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Hash functions. </p>
<p >value = (value &lt;&lt; 21) - value - 1;</p>
<p >value * 265</p>
<p >value * 21</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00214">214</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a24d85d1e77f31f346dba6bdc02067473" name="a24d85d1e77f31f346dba6bdc02067473"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24d85d1e77f31f346dba6bdc02067473">&#9670;&nbsp;</a></span>Hash1() <span class="overload">[7/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t operations_research::Hash1 </td>
<td>(</td>
<td class="paramtype">void *const&#160;</td>
<td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00242">242</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a3f4525e71a6b05d97c868f0832750a60" name="a3f4525e71a6b05d97c868f0832750a60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f4525e71a6b05d97c868f0832750a60">&#9670;&nbsp;</a></span>IsArrayBoolean()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::IsArrayBoolean </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02856">2856</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a12527c82ffc8b31c5d8dc836c366d624" name="a12527c82ffc8b31c5d8dc836c366d624"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12527c82ffc8b31c5d8dc836c366d624">&#9670;&nbsp;</a></span>IsArrayConstant()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::IsArrayConstant </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02846">2846</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="adf2aea6c68fe502389c9264b971b2f85" name="adf2aea6c68fe502389c9264b971b2f85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf2aea6c68fe502389c9264b971b2f85">&#9670;&nbsp;</a></span>IsArrayInRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::IsArrayInRange </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>range_min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>range_max</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02936">2936</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a3d434774c07815a25ffaa7adb343c19e" name="a3d434774c07815a25ffaa7adb343c19e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d434774c07815a25ffaa7adb343c19e">&#9670;&nbsp;</a></span>IsIncreasing()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::IsIncreasing </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02926">2926</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aafac7375c23337f25821aa6f86ca627c" name="aafac7375c23337f25821aa6f86ca627c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafac7375c23337f25821aa6f86ca627c">&#9670;&nbsp;</a></span>IsIncreasingContiguous()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::IsIncreasingContiguous </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>values</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02916">2916</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aa213d8f884283e0d72712243cbbefa7c" name="aa213d8f884283e0d72712243cbbefa7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa213d8f884283e0d72712243cbbefa7c">&#9670;&nbsp;</a></span>MakeConstraintDemon0()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeConstraintDemon0 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)()&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00519">519</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ae0190f4a9c848c207d0bff97f625fcd1" name="ae0190f4a9c848c207d0bff97f625fcd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0190f4a9c848c207d0bff97f625fcd1">&#9670;&nbsp;</a></span>MakeConstraintDemon1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeConstraintDemon1 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)(P)&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>param1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00560">560</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a68441e43b6c0228145d1101db5f3c4de" name="a68441e43b6c0228145d1101db5f3c4de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68441e43b6c0228145d1101db5f3c4de">&#9670;&nbsp;</a></span>MakeConstraintDemon2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeConstraintDemon2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)(P, Q)&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>param1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Q&#160;</td>
<td class="paramname"><em>param2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00599">599</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a362b5a75841c543eec770b731d6e6865" name="a362b5a75841c543eec770b731d6e6865"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a362b5a75841c543eec770b731d6e6865">&#9670;&nbsp;</a></span>MakeConstraintDemon3()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeConstraintDemon3 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)(P, Q, R)&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>param1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Q&#160;</td>
<td class="paramname"><em>param2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">R&#160;</td>
<td class="paramname"><em>param3</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00642">642</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a6a001b36b291a4afe7dffdbb9194bc45" name="a6a001b36b291a4afe7dffdbb9194bc45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a001b36b291a4afe7dffdbb9194bc45">&#9670;&nbsp;</a></span>MakeDelayedConstraintDemon0()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeDelayedConstraintDemon0 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)()&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00682">682</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ac316c82f31293db18e25c809592908dd" name="ac316c82f31293db18e25c809592908dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac316c82f31293db18e25c809592908dd">&#9670;&nbsp;</a></span>MakeDelayedConstraintDemon1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeDelayedConstraintDemon1 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)(P)&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>param1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00718">718</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a6c0bc84812eed9d626b00bc8fb5b9ae1" name="a6c0bc84812eed9d626b00bc8fb5b9ae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c0bc84812eed9d626b00bc8fb5b9ae1">&#9670;&nbsp;</a></span>MakeDelayedConstraintDemon2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * operations_research::MakeDelayedConstraintDemon2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *const&#160;</td>
<td class="paramname"><em>ct</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(T::*)(P, Q)&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>param1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Q&#160;</td>
<td class="paramname"><em>param2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00762">762</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a5a2c92a28ee59ab17dfb5885ab3e20c8" name="a5a2c92a28ee59ab17dfb5885ab3e20c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a2c92a28ee59ab17dfb5885ab3e20c8">&#9670;&nbsp;</a></span>MakeLocalSearchOperator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_local_search_operator.html">LocalSearchOperator</a> * operations_research::MakeLocalSearchOperator </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *&#160;</td>
<td class="paramname"><em>solver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>secondary_vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; int(int64_t)&gt;&#160;</td>
<td class="paramname"><em>start_empty_path_class</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Operator Factories. </p>
</div>
</div>
<a id="a6cdc2ad7aac33203a04919652bd0a916" name="a6cdc2ad7aac33203a04919652bd0a916"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cdc2ad7aac33203a04919652bd0a916">&#9670;&nbsp;</a></span>MakePathStateFilter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_local_search_filter.html">LocalSearchFilter</a> * operations_research::MakePathStateFilter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *&#160;</td>
<td class="paramname"><em>solver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1_path_state.html">PathState</a> &gt;&#160;</td>
<td class="paramname"><em>path_state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>nexts</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5ccb557dd21c73b6bcd5470476201cb8" name="a5ccb557dd21c73b6bcd5470476201cb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ccb557dd21c73b6bcd5470476201cb8">&#9670;&nbsp;</a></span>MakeRestoreDimensionValuesForUnchangedRoutes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_decision_builder.html">DecisionBuilder</a> * operations_research::MakeRestoreDimensionValuesForUnchangedRoutes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> *&#160;</td>
<td class="paramname"><em>model</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afbea4d6dff74754bcb65e6d432d71ebe" name="afbea4d6dff74754bcb65e6d432d71ebe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbea4d6dff74754bcb65e6d432d71ebe">&#9670;&nbsp;</a></span>MakeSetValuesFromTargets()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_decision_builder.html">DecisionBuilder</a> * operations_research::MakeSetValuesFromTargets </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *&#160;</td>
<td class="paramname"><em>solver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt;&#160;</td>
<td class="paramname"><em>variables</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int64_t &gt;&#160;</td>
<td class="paramname"><em>targets</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>A decision builder which tries to assign values to variables as close as possible to target values first. </p>
</div>
</div>
<a id="acc7429aa3368c33f6444304ad8669259" name="acc7429aa3368c33f6444304ad8669259"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc7429aa3368c33f6444304ad8669259">&#9670;&nbsp;</a></span>MakeUnaryDimensionFilter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_local_search_filter.html">LocalSearchFilter</a> * operations_research::MakeUnaryDimensionFilter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *&#160;</td>
<td class="paramname"><em>solver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classoperations__research_1_1_unary_dimension_checker.html">UnaryDimensionChecker</a> &gt;&#160;</td>
<td class="paramname"><em>checker</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>dimension_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4ea29fb0eedce9f806f0e0f5fbaff870" name="a4ea29fb0eedce9f806f0e0f5fbaff870"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ea29fb0eedce9f806f0e0f5fbaff870">&#9670;&nbsp;</a></span>MakeVehicleBreaksFilter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_int_var_local_search_filter.html">IntVarLocalSearchFilter</a> * operations_research::MakeVehicleBreaksFilter </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> &amp;&#160;</td>
<td class="paramname"><em>routing_model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_routing_dimension.html">RoutingDimension</a> &amp;&#160;</td>
<td class="paramname"><em>dimension</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a587a6a73cbcb4e4a4c7d3b596fa407aa" name="a587a6a73cbcb4e4a4c7d3b596fa407aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a587a6a73cbcb4e4a4c7d3b596fa407aa">&#9670;&nbsp;</a></span>MaxVarArray()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::MaxVarArray </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p >The std::max&lt;int64_t&gt; is needed for compilation on MSVC.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02982">2982</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a8e8f645f06f9749b562b6625cd822daa" name="a8e8f645f06f9749b562b6625cd822daa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e8f645f06f9749b562b6625cd822daa">&#9670;&nbsp;</a></span>MinVarArray()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::MinVarArray </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>vars</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p >The std::min&lt;int64_t&gt; is needed for compilation on MSVC.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l02992">2992</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a9e48359348ad94d97e6c44ffd52b33e3" name="a9e48359348ad94d97e6c44ffd52b33e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e48359348ad94d97e6c44ffd52b33e3">&#9670;&nbsp;</a></span>One()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::One </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method returns 1. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03164">3164</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a82d722796fae06c7fb9d1d8a37c91c99" name="a82d722796fae06c7fb9d1d8a37c91c99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82d722796fae06c7fb9d1d8a37c91c99">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operations_research::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> &amp;&#160;</td>
<td class="paramname"><em>assignment</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab563b868509e5ca6c0db57a038d863e4" name="ab563b868509e5ca6c0db57a038d863e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab563b868509e5ca6c0db57a038d863e4">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operations_research::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_base_object.html">BaseObject</a> *&#160;</td>
<td class="paramname"><em>o</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a87fdc0126f6fc98ffb86ba1aa618f322" name="a87fdc0126f6fc98ffb86ba1aa618f322"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87fdc0126f6fc98ffb86ba1aa618f322">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operations_research::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3c2f93547af434566184b7dee7039c93" name="a3c2f93547af434566184b7dee7039c93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c2f93547af434566184b7dee7039c93">&#9670;&nbsp;</a></span>ParameterDebugString() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::ParameterDebugString </td>
<td>(</td>
<td class="paramtype">P *&#160;</td>
<td class="paramname"><em>param</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Support limited to pointers to classes which define DebugString(). </p>
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00531">531</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="a0953b50b08320d1109c678555137f1db" name="a0953b50b08320d1109c678555137f1db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0953b50b08320d1109c678555137f1db">&#9670;&nbsp;</a></span>ParameterDebugString() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::ParameterDebugString </td>
<td>(</td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>param</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l00525">525</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="ade1945fe75ec08245775fc4df20153d6" name="ade1945fe75ec08245775fc4df20153d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade1945fe75ec08245775fc4df20153d6">&#9670;&nbsp;</a></span>PosIntDivDown()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::PosIntDivDown </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>e</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l03016">3016</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="afb0903025d265c67199f5f09cee57ed0" name="afb0903025d265c67199f5f09cee57ed0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb0903025d265c67199f5f09cee57ed0">&#9670;&nbsp;</a></span>PosIntDivUp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::PosIntDivUp </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>e</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solveri_8h_source.html#l03011">3011</a> of file <a class="el" href="constraint__solveri_8h_source.html">constraint_solveri.h</a>.</p>
</div>
</div>
<a id="aea2bf322fab4e2319a23ad22acf8ccf8" name="aea2bf322fab4e2319a23ad22acf8ccf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea2bf322fab4e2319a23ad22acf8ccf8">&#9670;&nbsp;</a></span>SetAssignmentFromAssignment()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::SetAssignmentFromAssignment </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>target_assignment</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>target_vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>source_assignment</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>source_vars</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>NOLINT. </p>
<p >Given a "source_assignment", clears the "target_assignment" and adds all IntVars in "target_vars", with the values of the variables set according to the corresponding values of "source_vars" in "source_assignment". source_vars and target_vars must have the same number of elements. The source and target assignments can belong to different Solvers. </p>
</div>
</div>
<a id="aa17cca151690da44e948d7fbe07abca5" name="aa17cca151690da44e948d7fbe07abca5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa17cca151690da44e948d7fbe07abca5">&#9670;&nbsp;</a></span>SolveModelWithSat()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::SolveModelWithSat </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_routing_model.html">RoutingModel</a> &amp;&#160;</td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const RoutingSearchParameters &amp;&#160;</td>
<td class="paramname"><em>search_parameters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>initial_solution</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_assignment.html">Assignment</a> *&#160;</td>
<td class="paramname"><em>solution</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Attempts to solve the model using the cp-sat solver. </p>
<p >As of 5/2019, will solve the TSP corresponding to the model if it has a single vehicle. Therefore the resulting solution might not actually be feasible. Will return false if a solution could not be found. </p>
</div>
</div>
<a id="aa9ef36940950625d5a6745caf0000a78" name="aa9ef36940950625d5a6745caf0000a78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9ef36940950625d5a6745caf0000a78">&#9670;&nbsp;</a></span>ToInt64Vector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; int64_t &gt; operations_research::ToInt64Vector </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>input</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5a9881f8a07b166ef2cbde572cea27b6" name="a5a9881f8a07b166ef2cbde572cea27b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a9881f8a07b166ef2cbde572cea27b6">&#9670;&nbsp;</a></span>Zero()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int64_t operations_research::Zero </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>NOLINT. </p>
<p >This method returns 0. It is useful when 0 can be cast either as a pointer or as an integer value and thus lead to an ambiguous function call. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03161">3161</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
</div>
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>