Files
ortools-clone/docs/cpp/classoperations__research_1_1_int_expr.html
Laurent Perron a2ad6677e1 regenerate doc
2022-01-16 18:02:36 +01:00

1169 lines
62 KiB
HTML

<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: IntExpr</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="orLogo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">OR-Tools
&#160;<span id="projectnumber">9.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classoperations__research_1_1_int_expr.html','');});
/* @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="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1_int_expr-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">IntExpr<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>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. </p>
<p>It contains the basic protocol for an expression:</p><ul>
<li>setting and modifying its bound</li>
<li>querying if it is bound</li>
<li>listening to events modifying its bounds</li>
<li>casting it into a variable (instance of <a class="el" href="classoperations__research_1_1_int_var.html" title="The class IntVar is a subset of IntExpr.">IntVar</a>) </li>
</ul>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03878">3878</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a71eb39de86b7fb423d3b9c215f56593c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a71eb39de86b7fb423d3b9c215f56593c">IntExpr</a> (<a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *const s)</td></tr>
<tr class="separator:a71eb39de86b7fb423d3b9c215f56593c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ca509deddcf7e1a1498f770ec71934e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a5ca509deddcf7e1a1498f770ec71934e">~IntExpr</a> () override</td></tr>
<tr class="separator:a5ca509deddcf7e1a1498f770ec71934e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62b340f6d1dde6a36560bd88a382ada7"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a62b340f6d1dde6a36560bd88a382ada7">Min</a> () const =0</td></tr>
<tr class="separator:a62b340f6d1dde6a36560bd88a382ada7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac7dfcb9ef06cc889474d5043b580a45"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#aac7dfcb9ef06cc889474d5043b580a45">SetMin</a> (int64_t m)=0</td></tr>
<tr class="separator:aac7dfcb9ef06cc889474d5043b580a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac84c250d67f30c89e845cd460eeaaad8"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#ac84c250d67f30c89e845cd460eeaaad8">Max</a> () const =0</td></tr>
<tr class="separator:ac84c250d67f30c89e845cd460eeaaad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67b97db6268b823e295b9d5284e5a03e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a67b97db6268b823e295b9d5284e5a03e">SetMax</a> (int64_t m)=0</td></tr>
<tr class="separator:a67b97db6268b823e295b9d5284e5a03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace746bea8d19ba6bbf319dafbd5f5e5c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#ace746bea8d19ba6bbf319dafbd5f5e5c">Range</a> (int64_t *l, int64_t *u)</td></tr>
<tr class="memdesc:ace746bea8d19ba6bbf319dafbd5f5e5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">By default calls <a class="el" href="classoperations__research_1_1_int_expr.html#a62b340f6d1dde6a36560bd88a382ada7">Min()</a> and <a class="el" href="classoperations__research_1_1_int_expr.html#ac84c250d67f30c89e845cd460eeaaad8">Max()</a>, but can be redefined when Min and Max code can be factorized. <a href="#ace746bea8d19ba6bbf319dafbd5f5e5c">More...</a><br /></td></tr>
<tr class="separator:ace746bea8d19ba6bbf319dafbd5f5e5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a076a8890703df019ca737781b376cbe3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a076a8890703df019ca737781b376cbe3">SetRange</a> (int64_t l, int64_t u)</td></tr>
<tr class="memdesc:a076a8890703df019ca737781b376cbe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method sets both the min and the max of the expression. <a href="#a076a8890703df019ca737781b376cbe3">More...</a><br /></td></tr>
<tr class="separator:a076a8890703df019ca737781b376cbe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e57f8b497596533aae4607d8a89dd10"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a2e57f8b497596533aae4607d8a89dd10">SetValue</a> (int64_t v)</td></tr>
<tr class="memdesc:a2e57f8b497596533aae4607d8a89dd10"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method sets the value of the expression. <a href="#a2e57f8b497596533aae4607d8a89dd10">More...</a><br /></td></tr>
<tr class="separator:a2e57f8b497596533aae4607d8a89dd10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d04569b37cb7fe6ed0956ab71e08bc9"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a1d04569b37cb7fe6ed0956ab71e08bc9">Bound</a> () const</td></tr>
<tr class="memdesc:a1d04569b37cb7fe6ed0956ab71e08bc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the min and the max of the expression are equal. <a href="#a1d04569b37cb7fe6ed0956ab71e08bc9">More...</a><br /></td></tr>
<tr class="separator:a1d04569b37cb7fe6ed0956ab71e08bc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e9b93ea445f156328eaa782adf7cb8b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a2e9b93ea445f156328eaa782adf7cb8b">IsVar</a> () const</td></tr>
<tr class="memdesc:a2e9b93ea445f156328eaa782adf7cb8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the expression is indeed a variable. <a href="#a2e9b93ea445f156328eaa782adf7cb8b">More...</a><br /></td></tr>
<tr class="separator:a2e9b93ea445f156328eaa782adf7cb8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07173db6ca3b22fdb35ad963831a962b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a07173db6ca3b22fdb35ad963831a962b">Var</a> ()=0</td></tr>
<tr class="memdesc:a07173db6ca3b22fdb35ad963831a962b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a variable from the expression. <a href="#a07173db6ca3b22fdb35ad963831a962b">More...</a><br /></td></tr>
<tr class="separator:a07173db6ca3b22fdb35ad963831a962b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd9d7cc56655b46f400ee98ffd9870ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#abd9d7cc56655b46f400ee98ffd9870ab">VarWithName</a> (const std::string &amp;<a class="el" href="classoperations__research_1_1_propagation_base_object.html#a1d89c28bd42ba9a52da008bb69367171">name</a>)</td></tr>
<tr class="memdesc:abd9d7cc56655b46f400ee98ffd9870ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a variable from the expression and set the name of the resulting var. <a href="#abd9d7cc56655b46f400ee98ffd9870ab">More...</a><br /></td></tr>
<tr class="separator:abd9d7cc56655b46f400ee98ffd9870ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13b2ea301c6800bb6d43bd70716bf6d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#af13b2ea301c6800bb6d43bd70716bf6d">WhenRange</a> (<a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *d)=0</td></tr>
<tr class="memdesc:af13b2ea301c6800bb6d43bd70716bf6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach a demon that will watch the min or the max of the expression. <a href="#af13b2ea301c6800bb6d43bd70716bf6d">More...</a><br /></td></tr>
<tr class="separator:af13b2ea301c6800bb6d43bd70716bf6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b5304838bbd2834ba9f7b38db07996f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#a0b5304838bbd2834ba9f7b38db07996f">WhenRange</a> (<a class="el" href="classoperations__research_1_1_solver.html#ad4c4d0d62a6d65debcff4437948435a1">Solver::Closure</a> closure)</td></tr>
<tr class="memdesc:a0b5304838bbd2834ba9f7b38db07996f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach a demon that will watch the min or the max of the expression. <a href="#a0b5304838bbd2834ba9f7b38db07996f">More...</a><br /></td></tr>
<tr class="separator:a0b5304838bbd2834ba9f7b38db07996f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af460f815f9770713347d6609456c9508"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#af460f815f9770713347d6609456c9508">WhenRange</a> (<a class="el" href="classoperations__research_1_1_solver.html#ad7946514ee3dd6cb3ab993dc9e98b33b">Solver::Action</a> action)</td></tr>
<tr class="memdesc:af460f815f9770713347d6609456c9508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach a demon that will watch the min or the max of the expression. <a href="#af460f815f9770713347d6609456c9508">More...</a><br /></td></tr>
<tr class="separator:af460f815f9770713347d6609456c9508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4aa5ecf086378b1bbac4b669bab4db"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_int_expr.html#aac4aa5ecf086378b1bbac4b669bab4db">Accept</a> (<a class="el" href="classoperations__research_1_1_model_visitor.html">ModelVisitor</a> *const visitor) const</td></tr>
<tr class="memdesc:aac4aa5ecf086378b1bbac4b669bab4db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accepts the given visitor. <a href="#aac4aa5ecf086378b1bbac4b669bab4db">More...</a><br /></td></tr>
<tr class="separator:aac4aa5ecf086378b1bbac4b669bab4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed804747c45a7e1caf81461f9e45dd91"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#aed804747c45a7e1caf81461f9e45dd91">DebugString</a> () const override</td></tr>
<tr class="separator:aed804747c45a7e1caf81461f9e45dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f32c22c620c811754ba7b6f977db864"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a5f32c22c620c811754ba7b6f977db864">solver</a> () const</td></tr>
<tr class="separator:a5f32c22c620c811754ba7b6f977db864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5155ff01cf80f5a478fd09916abab155"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a5155ff01cf80f5a478fd09916abab155">FreezeQueue</a> ()</td></tr>
<tr class="memdesc:a5155ff01cf80f5a478fd09916abab155"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method freezes the propagation queue. <a href="#a5155ff01cf80f5a478fd09916abab155">More...</a><br /></td></tr>
<tr class="separator:a5155ff01cf80f5a478fd09916abab155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae038f4a9249362629fc47e8dfc441ec7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#ae038f4a9249362629fc47e8dfc441ec7">UnfreezeQueue</a> ()</td></tr>
<tr class="memdesc:ae038f4a9249362629fc47e8dfc441ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method unfreezes the propagation queue. <a href="#ae038f4a9249362629fc47e8dfc441ec7">More...</a><br /></td></tr>
<tr class="separator:ae038f4a9249362629fc47e8dfc441ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a173cbf153462b14f9b57362d2c45638a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a173cbf153462b14f9b57362d2c45638a">EnqueueDelayedDemon</a> (<a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *const d)</td></tr>
<tr class="memdesc:a173cbf153462b14f9b57362d2c45638a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method pushes the demon onto the propagation queue. <a href="#a173cbf153462b14f9b57362d2c45638a">More...</a><br /></td></tr>
<tr class="separator:a173cbf153462b14f9b57362d2c45638a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a448b9bde901fcf3ec2e94ab972b083f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a448b9bde901fcf3ec2e94ab972b083f0">EnqueueVar</a> (<a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *const d)</td></tr>
<tr class="separator:a448b9bde901fcf3ec2e94ab972b083f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d3bd9d99cf43cf184a1246d2c278c31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a3d3bd9d99cf43cf184a1246d2c278c31">ExecuteAll</a> (const <a class="el" href="classoperations__research_1_1_simple_rev_f_i_f_o.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * &gt; &amp;demons)</td></tr>
<tr class="separator:a3d3bd9d99cf43cf184a1246d2c278c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a5ad1a2482043e4a9d2c19bbab1e250"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a5a5ad1a2482043e4a9d2c19bbab1e250">EnqueueAll</a> (const <a class="el" href="classoperations__research_1_1_simple_rev_f_i_f_o.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * &gt; &amp;demons)</td></tr>
<tr class="separator:a5a5ad1a2482043e4a9d2c19bbab1e250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ae4667b0e7a9e6c63c91202480c8876"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a3ae4667b0e7a9e6c63c91202480c8876">set_action_on_fail</a> (<a class="el" href="classoperations__research_1_1_solver.html#ad7946514ee3dd6cb3ab993dc9e98b33b">Solver::Action</a> <a class="el" href="constraint__solver_2table_8cc.html#acb18315d548212835cd8ed4287e6c0b6">a</a>)</td></tr>
<tr class="separator:a3ae4667b0e7a9e6c63c91202480c8876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26d87b428f06d54a1a44d6e950a0e196"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a26d87b428f06d54a1a44d6e950a0e196">reset_action_on_fail</a> ()</td></tr>
<tr class="memdesc:a26d87b428f06d54a1a44d6e950a0e196"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method clears the failure callback. <a href="#a26d87b428f06d54a1a44d6e950a0e196">More...</a><br /></td></tr>
<tr class="separator:a26d87b428f06d54a1a44d6e950a0e196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa799a452245f03cc53355e6432c107a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#aa799a452245f03cc53355e6432c107a7">set_variable_to_clean_on_fail</a> (<a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> *v)</td></tr>
<tr class="memdesc:aa799a452245f03cc53355e6432c107a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortcut for variable cleaner. <a href="#aa799a452245f03cc53355e6432c107a7">More...</a><br /></td></tr>
<tr class="separator:aa799a452245f03cc53355e6432c107a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d89c28bd42ba9a52da008bb69367171"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a1d89c28bd42ba9a52da008bb69367171">name</a> () const</td></tr>
<tr class="memdesc:a1d89c28bd42ba9a52da008bb69367171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object naming. <a href="#a1d89c28bd42ba9a52da008bb69367171">More...</a><br /></td></tr>
<tr class="separator:a1d89c28bd42ba9a52da008bb69367171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5260b9627048b854b45d05ed34adc22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#ad5260b9627048b854b45d05ed34adc22">set_name</a> (const std::string &amp;<a class="el" href="classoperations__research_1_1_propagation_base_object.html#a1d89c28bd42ba9a52da008bb69367171">name</a>)</td></tr>
<tr class="separator:ad5260b9627048b854b45d05ed34adc22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31eda3918c04e32fa9e8c432d72b2d60"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a31eda3918c04e32fa9e8c432d72b2d60">HasName</a> () const</td></tr>
<tr class="memdesc:a31eda3918c04e32fa9e8c432d72b2d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the object has been named or not. <a href="#a31eda3918c04e32fa9e8c432d72b2d60">More...</a><br /></td></tr>
<tr class="separator:a31eda3918c04e32fa9e8c432d72b2d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d3de765a37ab507b801467955dc183e"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_propagation_base_object.html#a8d3de765a37ab507b801467955dc183e">BaseName</a> () const</td></tr>
<tr class="memdesc:a8d3de765a37ab507b801467955dc183e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a base name for automatic naming. <a href="#a8d3de765a37ab507b801467955dc183e">More...</a><br /></td></tr>
<tr class="separator:a8d3de765a37ab507b801467955dc183e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a71eb39de86b7fb423d3b9c215f56593c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71eb39de86b7fb423d3b9c215f56593c">&#9670;&nbsp;</a></span>IntExpr()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_int_expr.html">IntExpr</a> </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><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03880">3880</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a5ca509deddcf7e1a1498f770ec71934e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ca509deddcf7e1a1498f770ec71934e">&#9670;&nbsp;</a></span>~IntExpr()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classoperations__research_1_1_int_expr.html">IntExpr</a> </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 class="mlabel">override</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03881">3881</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aac4aa5ecf086378b1bbac4b669bab4db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac4aa5ecf086378b1bbac4b669bab4db">&#9670;&nbsp;</a></span>Accept()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Accept </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_model_visitor.html">ModelVisitor</a> *const&#160;</td>
<td class="paramname"><em>visitor</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Accepts the given visitor. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#aa30c84aec5e60d6b74e1e1eb15011d4a">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_int_var.html#aa30c84aec5e60d6b74e1e1eb15011d4a">IntVar</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l03308">3308</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="a8d3de765a37ab507b801467955dc183e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d3de765a37ab507b801467955dc183e">&#9670;&nbsp;</a></span>BaseName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string BaseName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a base name for automatic naming. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_boolean_var.html#adbfe3c73b9cad61f112ccb082b553c51">BooleanVar</a>, and <a class="el" href="class_swig_director___constraint.html#a8d3de765a37ab507b801467955dc183e">SwigDirector_Constraint</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l02521">2521</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="a1d04569b37cb7fe6ed0956ab71e08bc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d04569b37cb7fe6ed0956ab71e08bc9">&#9670;&nbsp;</a></span>Bound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool Bound </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the min and the max of the expression are equal. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_boolean_var.html#a303c8b67c301d6d436bd06e50d41cd6b">BooleanVar</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03904">3904</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="aed804747c45a7e1caf81461f9e45dd91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed804747c45a7e1caf81461f9e45dd91">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classoperations__research_1_1_base_object.html#a8eba5d533fa9df4617c1868d3ec2afc4">BaseObject</a>.</p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#aed804747c45a7e1caf81461f9e45dd91">PiecewiseLinearExpr</a>, <a class="el" href="classoperations__research_1_1_pack.html#aed804747c45a7e1caf81461f9e45dd91">Pack</a>, <a class="el" href="classoperations__research_1_1_assignment.html#aed804747c45a7e1caf81461f9e45dd91">Assignment</a>, <a class="el" href="classoperations__research_1_1_sequence_var.html#aed804747c45a7e1caf81461f9e45dd91">SequenceVar</a>, <a class="el" href="classoperations__research_1_1_constraint.html#aed804747c45a7e1caf81461f9e45dd91">Constraint</a>, <a class="el" href="classoperations__research_1_1_global_vehicle_breaks_constraint.html#aed804747c45a7e1caf81461f9e45dd91">GlobalVehicleBreaksConstraint</a>, <a class="el" href="classoperations__research_1_1_boolean_var.html#aed804747c45a7e1caf81461f9e45dd91">BooleanVar</a>, <a class="el" href="classoperations__research_1_1_if_then_else_ct.html#aed804747c45a7e1caf81461f9e45dd91">IfThenElseCt</a>, <a class="el" href="class_swig_director___constraint.html#a8eba5d533fa9df4617c1868d3ec2afc4">SwigDirector_Constraint</a>, <a class="el" href="class_swig_director___constraint.html#a764be64f3029f8b8e23511061d8de355">SwigDirector_Constraint</a>, and <a class="el" href="class_swig_director___propagation_base_object.html#a764be64f3029f8b8e23511061d8de355">SwigDirector_PropagationBaseObject</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03189">3189</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a5a5ad1a2482043e4a9d2c19bbab1e250"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a5ad1a2482043e4a9d2c19bbab1e250">&#9670;&nbsp;</a></span>EnqueueAll()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void EnqueueAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_simple_rev_f_i_f_o.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>demons</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l02527">2527</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="a173cbf153462b14f9b57362d2c45638a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a173cbf153462b14f9b57362d2c45638a">&#9670;&nbsp;</a></span>EnqueueDelayedDemon()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void EnqueueDelayedDemon </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *const&#160;</td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method pushes the demon onto the propagation queue. </p>
<p>It will be processed directly if the queue is empty. It will be enqueued according to its priority otherwise. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03209">3209</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a448b9bde901fcf3ec2e94ab972b083f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a448b9bde901fcf3ec2e94ab972b083f0">&#9670;&nbsp;</a></span>EnqueueVar()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void EnqueueVar </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *const&#160;</td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03210">3210</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a3d3bd9d99cf43cf184a1246d2c278c31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d3bd9d99cf43cf184a1246d2c278c31">&#9670;&nbsp;</a></span>ExecuteAll()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ExecuteAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_simple_rev_f_i_f_o.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1_demon.html">Demon</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>demons</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l02523">2523</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="a5155ff01cf80f5a478fd09916abab155"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5155ff01cf80f5a478fd09916abab155">&#9670;&nbsp;</a></span>FreezeQueue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void FreezeQueue </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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method freezes the propagation queue. </p>
<p>It is useful when you need to apply multiple modifications at once. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03200">3200</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a31eda3918c04e32fa9e8c432d72b2d60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31eda3918c04e32fa9e8c432d72b2d60">&#9670;&nbsp;</a></span>HasName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool HasName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns whether the object has been named or not. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l02519">2519</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="a2e9b93ea445f156328eaa782adf7cb8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e9b93ea445f156328eaa782adf7cb8b">&#9670;&nbsp;</a></span>IsVar()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool IsVar </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the expression is indeed a variable. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_int_var.html#af5d847a82550308399c315915ef8408f">IntVar</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03907">3907</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="ac84c250d67f30c89e845cd460eeaaad8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac84c250d67f30c89e845cd460eeaaad8">&#9670;&nbsp;</a></span>Max()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int64_t Max </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#abd0cf0dd59c0427b3e6242da7328c409">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_boolean_var.html#abd0cf0dd59c0427b3e6242da7328c409">BooleanVar</a>.</p>
</div>
</div>
<a id="a62b340f6d1dde6a36560bd88a382ada7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62b340f6d1dde6a36560bd88a382ada7">&#9670;&nbsp;</a></span>Min()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int64_t Min </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#a57de3380cd407d67b62bfdbc72869994">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_boolean_var.html#a57de3380cd407d67b62bfdbc72869994">BooleanVar</a>.</p>
</div>
</div>
<a id="a1d89c28bd42ba9a52da008bb69367171"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d89c28bd42ba9a52da008bb69367171">&#9670;&nbsp;</a></span>name()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string name </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Object naming. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#aa4f4ba750a08765e64da2d0bd473944a">PiecewiseLinearExpr</a>, <a class="el" href="class_swig_director___constraint.html#a6a119daa8b83c3aaffdb6e11fac1f97e">SwigDirector_Constraint</a>, <a class="el" href="class_swig_director___constraint.html#a1d89c28bd42ba9a52da008bb69367171">SwigDirector_Constraint</a>, and <a class="el" href="class_swig_director___propagation_base_object.html#a1d89c28bd42ba9a52da008bb69367171">SwigDirector_PropagationBaseObject</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l02511">2511</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="ace746bea8d19ba6bbf319dafbd5f5e5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace746bea8d19ba6bbf319dafbd5f5e5c">&#9670;&nbsp;</a></span>Range()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void Range </td>
<td>(</td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>u</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 class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>By default calls <a class="el" href="classoperations__research_1_1_int_expr.html#a62b340f6d1dde6a36560bd88a382ada7">Min()</a> and <a class="el" href="classoperations__research_1_1_int_expr.html#ac84c250d67f30c89e845cd460eeaaad8">Max()</a>, but can be redefined when Min and Max code can be factorized. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03890">3890</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a26d87b428f06d54a1a44d6e950a0e196"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26d87b428f06d54a1a44d6e950a0e196">&#9670;&nbsp;</a></span>reset_action_on_fail()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void reset_action_on_fail </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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method clears the failure callback. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03223">3223</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a3ae4667b0e7a9e6c63c91202480c8876"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ae4667b0e7a9e6c63c91202480c8876">&#9670;&nbsp;</a></span>set_action_on_fail()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void set_action_on_fail </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html#ad7946514ee3dd6cb3ab993dc9e98b33b">Solver::Action</a>&#160;</td>
<td class="paramname"><em>a</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03217">3217</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="ad5260b9627048b854b45d05ed34adc22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5260b9627048b854b45d05ed34adc22">&#9670;&nbsp;</a></span>set_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void set_name </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8cc_source.html#l02515">2515</a> of file <a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a>.</p>
</div>
</div>
<a id="aa799a452245f03cc53355e6432c107a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa799a452245f03cc53355e6432c107a7">&#9670;&nbsp;</a></span>set_variable_to_clean_on_fail()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void set_variable_to_clean_on_fail </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Shortcut for variable cleaner. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03226">3226</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a67b97db6268b823e295b9d5284e5a03e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b97db6268b823e295b9d5284e5a03e">&#9670;&nbsp;</a></span>SetMax()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void SetMax </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>m</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#abf767486aa5751c9ad0654541f485438">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_boolean_var.html#abf767486aa5751c9ad0654541f485438">BooleanVar</a>.</p>
</div>
</div>
<a id="aac7dfcb9ef06cc889474d5043b580a45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac7dfcb9ef06cc889474d5043b580a45">&#9670;&nbsp;</a></span>SetMin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void SetMin </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>m</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#aea5901833f54f13948533de9dd621fa0">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_boolean_var.html#aea5901833f54f13948533de9dd621fa0">BooleanVar</a>.</p>
</div>
</div>
<a id="a076a8890703df019ca737781b376cbe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a076a8890703df019ca737781b376cbe3">&#9670;&nbsp;</a></span>SetRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void SetRange </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>u</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 class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method sets both the min and the max of the expression. </p>
<p>Reimplemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#a69bd58336048bdba44665933e9dd96ce">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_boolean_var.html#a4c709f12a536ae7bf0bd938e4c93a809">BooleanVar</a>.</p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03895">3895</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a2e57f8b497596533aae4607d8a89dd10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e57f8b497596533aae4607d8a89dd10">&#9670;&nbsp;</a></span>SetValue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void SetValue </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method sets the value of the expression. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03901">3901</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a5f32c22c620c811754ba7b6f977db864"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f32c22c620c811754ba7b6f977db864">&#9670;&nbsp;</a></span>solver()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_solver.html">Solver</a>* solver </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03196">3196</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="ae038f4a9249362629fc47e8dfc441ec7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae038f4a9249362629fc47e8dfc441ec7">&#9670;&nbsp;</a></span>UnfreezeQueue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void UnfreezeQueue </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 class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method unfreezes the propagation queue. </p>
<p>All modifications that happened when the queue was frozen will be processed. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03204">3204</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a07173db6ca3b22fdb35ad963831a962b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07173db6ca3b22fdb35ad963831a962b">&#9670;&nbsp;</a></span>Var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a>* Var </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a variable from the expression. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1_int_var.html#a36d71f28bff7448b6490fe4720ab2fe0">IntVar</a>, and <a class="el" href="classoperations__research_1_1_base_int_expr.html#aabb6b039a96b1f9aaed302ba620c08cd">BaseIntExpr</a>.</p>
</div>
</div>
<a id="abd9d7cc56655b46f400ee98ffd9870ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd9d7cc56655b46f400ee98ffd9870ab">&#9670;&nbsp;</a></span>VarWithName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_int_var.html">IntVar</a> * VarWithName </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a variable from the expression and set the name of the resulting var. </p>
<p>If the expression is already a variable, then it will set the name of the expression, possibly overwriting it. This is just a shortcut to <a class="el" href="classoperations__research_1_1_int_expr.html#a07173db6ca3b22fdb35ad963831a962b" title="Creates a variable from the expression.">Var()</a> followed by <a class="el" href="classoperations__research_1_1_propagation_base_object.html#ad5260b9627048b854b45d05ed34adc22">set_name()</a>. </p>
<p class="definition">Definition at line <a class="el" href="expressions_8cc_source.html#l00051">51</a> of file <a class="el" href="expressions_8cc_source.html">expressions.cc</a>.</p>
</div>
</div>
<a id="af13b2ea301c6800bb6d43bd70716bf6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af13b2ea301c6800bb6d43bd70716bf6d">&#9670;&nbsp;</a></span>WhenRange() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void WhenRange </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_demon.html">Demon</a> *&#160;</td>
<td class="paramname"><em>d</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Attach a demon that will watch the min or the max of the expression. </p>
<p>Implemented in <a class="el" href="classoperations__research_1_1_piecewise_linear_expr.html#a4aa5eab0485ae0ec6eac0a81e5d5b9bd">PiecewiseLinearExpr</a>, and <a class="el" href="classoperations__research_1_1_boolean_var.html#a4aa5eab0485ae0ec6eac0a81e5d5b9bd">BooleanVar</a>.</p>
</div>
</div>
<a id="a0b5304838bbd2834ba9f7b38db07996f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b5304838bbd2834ba9f7b38db07996f">&#9670;&nbsp;</a></span>WhenRange() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void WhenRange </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html#ad4c4d0d62a6d65debcff4437948435a1">Solver::Closure</a>&#160;</td>
<td class="paramname"><em>closure</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>Attach a demon that will watch the min or the max of the expression. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03921">3921</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="af460f815f9770713347d6609456c9508"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af460f815f9770713347d6609456c9508">&#9670;&nbsp;</a></span>WhenRange() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void WhenRange </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_solver.html#ad7946514ee3dd6cb3ab993dc9e98b33b">Solver::Action</a>&#160;</td>
<td class="paramname"><em>action</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>Attach a demon that will watch the min or the max of the expression. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03927">3927</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a></li>
<li><a class="el" href="constraint__solver_8cc_source.html">constraint_solver.cc</a></li>
<li><a class="el" href="expressions_8cc_source.html">expressions.cc</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.18-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceoperations__research.html">operations_research</a></li><li class="navelem"><a class="el" href="classoperations__research_1_1_int_expr.html">IntExpr</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul>
</div>
</body>
</html>