Files
ortools-clone/docs/cpp_routing/classoperations__research_1_1Pack.html
2019-06-13 15:51:12 +02:00

1479 lines
78 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"/>-->
<link rel="stylesheet" type="text/css" href="doxygen.css" title="default" media="screen,print" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">OR-Tools 7.1@</span>
</div>
</div>
<div id="content">
<!-- Generated by Doxygen 1.8.15 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<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_1Pack.html">Pack</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classoperations__research_1_1Pack-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::Pack Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>-------&mdash; <a class="el" href="classoperations__research_1_1Pack.html" title="-------— Pack Constraint -------—">Pack</a> <a class="el" href="classoperations__research_1_1Constraint.html" title="A constraint is the main modeling object.">Constraint</a> -------&mdash;
<a href="classoperations__research_1_1Pack.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for operations_research::Pack:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1Pack__inherit__graph.png" border="0" usemap="#operations__research_1_1Pack_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1Pack_inherit__map" id="operations__research_1_1Pack_inherit__map">
<area shape="rect" title="&#45;&#45;&#45;&#45;&#45;&#45;&#45;— Pack Constraint &#45;&#45;&#45;&#45;&#45;&#45;&#45;—" alt="" coords="19,265,162,304"/>
<area shape="rect" href="classoperations__research_1_1Constraint.html" title="A constraint is the main modeling object." alt="" coords="19,179,162,217"/>
<area shape="rect" href="classoperations__research_1_1PropagationBaseObject.html" title="The PropagationBaseObject is a subclass of BaseObject that is also friend to the Solver class." alt="" coords="5,92,175,131"/>
<area shape="rect" href="classoperations__research_1_1BaseObject.html" title="Useful Search and Modeling Objects." alt="" coords="19,5,162,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for operations_research::Pack:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1Pack__coll__graph.png" border="0" usemap="#operations__research_1_1Pack_coll__map" alt="Collaboration graph"/></div>
<map name="operations__research_1_1Pack_coll__map" id="operations__research_1_1Pack_coll__map">
<area shape="rect" title="&#45;&#45;&#45;&#45;&#45;&#45;&#45;— Pack Constraint &#45;&#45;&#45;&#45;&#45;&#45;&#45;—" alt="" coords="19,265,162,304"/>
<area shape="rect" href="classoperations__research_1_1Constraint.html" title="A constraint is the main modeling object." alt="" coords="19,179,162,217"/>
<area shape="rect" href="classoperations__research_1_1PropagationBaseObject.html" title="The PropagationBaseObject is a subclass of BaseObject that is also friend to the Solver class." alt="" coords="5,92,175,131"/>
<area shape="rect" href="classoperations__research_1_1BaseObject.html" title="Useful Search and Modeling Objects." alt="" coords="19,5,162,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></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:a94969a5d7e604ccba7e5b515424a246e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a94969a5d7e604ccba7e5b515424a246e">Pack</a> (<a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *const s, const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;vars, int number_of_bins)</td></tr>
<tr class="separator:a94969a5d7e604ccba7e5b515424a246e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac41b9dfede7920f5baadea90cddc72ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ac41b9dfede7920f5baadea90cddc72ea">~Pack</a> () override</td></tr>
<tr class="separator:ac41b9dfede7920f5baadea90cddc72ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af69fc8b35affb174b5e47fbee6de9772"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#af69fc8b35affb174b5e47fbee6de9772">AddWeightedSumLessOrEqualConstantDimension</a> (const std::vector&lt; int64 &gt; &amp;weights, const std::vector&lt; int64 &gt; &amp;bounds)</td></tr>
<tr class="memdesc:af69fc8b35affb174b5e47fbee6de9772"><td class="mdescLeft">&#160;</td><td class="mdescRight">--&mdash; Public API --&mdash; <a href="#af69fc8b35affb174b5e47fbee6de9772">More...</a><br /></td></tr>
<tr class="separator:af69fc8b35affb174b5e47fbee6de9772"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee734afb685c74deb94817b754b9e518"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#aee734afb685c74deb94817b754b9e518">AddWeightedSumLessOrEqualConstantDimension</a> (<a class="el" href="classoperations__research_1_1Solver.html#a1040bdf484009e1a00e60ebb055ad1a1">Solver::IndexEvaluator1</a> weights, const std::vector&lt; int64 &gt; &amp;bounds)</td></tr>
<tr class="memdesc:aee734afb685c74deb94817b754b9e518"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension imposes that for all bins b, the weighted sum (weights-&gt;Run(i)) of all objects i assigned to 'b' is less or equal to 'bounds[b]'. <a href="#aee734afb685c74deb94817b754b9e518">More...</a><br /></td></tr>
<tr class="separator:aee734afb685c74deb94817b754b9e518"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a66d1abf3e8584e7c5ced64fdbd4cd8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a7a66d1abf3e8584e7c5ced64fdbd4cd8">AddWeightedSumLessOrEqualConstantDimension</a> (<a class="el" href="classoperations__research_1_1Solver.html#a0243986dd2db4b6e1bda331329ae529b">Solver::IndexEvaluator2</a> weights, const std::vector&lt; int64 &gt; &amp;bounds)</td></tr>
<tr class="memdesc:a7a66d1abf3e8584e7c5ced64fdbd4cd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension imposes that for all bins b, the weighted sum (weights-&gt;Run(i, b) of all objects i assigned to 'b' is less or equal to 'bounds[b]'. <a href="#a7a66d1abf3e8584e7c5ced64fdbd4cd8">More...</a><br /></td></tr>
<tr class="separator:a7a66d1abf3e8584e7c5ced64fdbd4cd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae82f80cca2acf98982b3c0eb5cc96d03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ae82f80cca2acf98982b3c0eb5cc96d03">AddWeightedSumEqualVarDimension</a> (const std::vector&lt; int64 &gt; &amp;weights, const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;loads)</td></tr>
<tr class="memdesc:ae82f80cca2acf98982b3c0eb5cc96d03"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension imposes that for all bins b, the weighted sum (weights[i]) of all objects i assigned to 'b' is equal to loads[b]. <a href="#ae82f80cca2acf98982b3c0eb5cc96d03">More...</a><br /></td></tr>
<tr class="separator:ae82f80cca2acf98982b3c0eb5cc96d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42267aa342941682b197ebef1a9fd6bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a42267aa342941682b197ebef1a9fd6bc">AddWeightedSumEqualVarDimension</a> (<a class="el" href="classoperations__research_1_1Solver.html#a0243986dd2db4b6e1bda331329ae529b">Solver::IndexEvaluator2</a> weights, const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;loads)</td></tr>
<tr class="memdesc:a42267aa342941682b197ebef1a9fd6bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension imposes that for all bins b, the weighted sum (weights-&gt;Run(i, b)) of all objects i assigned to 'b' is equal to loads[b]. <a href="#a42267aa342941682b197ebef1a9fd6bc">More...</a><br /></td></tr>
<tr class="separator:a42267aa342941682b197ebef1a9fd6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92da0e27853c3c611f0384457e1fcdb2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a92da0e27853c3c611f0384457e1fcdb2">AddSumVariableWeightsLessOrEqualConstantDimension</a> (const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;usage, const std::vector&lt; int64 &gt; &amp;capacity)</td></tr>
<tr class="memdesc:a92da0e27853c3c611f0384457e1fcdb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension imposes: forall b in bins, sum (i in items: usage[i] * is_assigned(i, b)) &lt;= capacity[b] where is_assigned(i, b) is true if and only if item i is assigned to the bin b. <a href="#a92da0e27853c3c611f0384457e1fcdb2">More...</a><br /></td></tr>
<tr class="separator:a92da0e27853c3c611f0384457e1fcdb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbb9380640b30f024e9986f96d5fe582"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#acbb9380640b30f024e9986f96d5fe582">AddWeightedSumOfAssignedDimension</a> (const std::vector&lt; int64 &gt; &amp;weights, <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *const cost_var)</td></tr>
<tr class="memdesc:acbb9380640b30f024e9986f96d5fe582"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension enforces that cost_var == sum of weights[i] for all objects 'i' assigned to a bin. <a href="#acbb9380640b30f024e9986f96d5fe582">More...</a><br /></td></tr>
<tr class="separator:acbb9380640b30f024e9986f96d5fe582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3030c379670033531aab20df788376ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a3030c379670033531aab20df788376ed">AddCountUsedBinDimension</a> (<a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *const count_var)</td></tr>
<tr class="memdesc:a3030c379670033531aab20df788376ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension links 'count_var' to the actual number of bins used in the pack. <a href="#a3030c379670033531aab20df788376ed">More...</a><br /></td></tr>
<tr class="separator:a3030c379670033531aab20df788376ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8c9281df8ab547dbed84de1364267d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#aa8c9281df8ab547dbed84de1364267d4">AddCountAssignedItemsDimension</a> (<a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *const count_var)</td></tr>
<tr class="memdesc:aa8c9281df8ab547dbed84de1364267d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This dimension links 'count_var' to the actual number of items assigned to a bin in the pack. <a href="#aa8c9281df8ab547dbed84de1364267d4">More...</a><br /></td></tr>
<tr class="separator:aa8c9281df8ab547dbed84de1364267d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22f97f40518e3d2f565d78f7ef6f3b56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a22f97f40518e3d2f565d78f7ef6f3b56">Post</a> () override</td></tr>
<tr class="memdesc:a22f97f40518e3d2f565d78f7ef6f3b56"><td class="mdescLeft">&#160;</td><td class="mdescRight">--&mdash; Internal API --&mdash; <a href="#a22f97f40518e3d2f565d78f7ef6f3b56">More...</a><br /></td></tr>
<tr class="separator:a22f97f40518e3d2f565d78f7ef6f3b56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af10aa93a14a72df0bd8b5c7143c6648e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#af10aa93a14a72df0bd8b5c7143c6648e">ClearAll</a> ()</td></tr>
<tr class="separator:af10aa93a14a72df0bd8b5c7143c6648e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2a200cf86dc0fa3b6a7905971ad88e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ac2a200cf86dc0fa3b6a7905971ad88e6">PropagateDelayed</a> ()</td></tr>
<tr class="separator:ac2a200cf86dc0fa3b6a7905971ad88e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adac62b65b527aa23434dd7d1fdba3b14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#adac62b65b527aa23434dd7d1fdba3b14">InitialPropagate</a> () override</td></tr>
<tr class="memdesc:adac62b65b527aa23434dd7d1fdba3b14"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method performs the initial propagation of the constraint. <a href="#adac62b65b527aa23434dd7d1fdba3b14">More...</a><br /></td></tr>
<tr class="separator:adac62b65b527aa23434dd7d1fdba3b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f65d45d0fefbab371c7265572d54f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a29f65d45d0fefbab371c7265572d54f4">Propagate</a> ()</td></tr>
<tr class="separator:a29f65d45d0fefbab371c7265572d54f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13898c8553d217fa3d52c6e2b504f8d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#af13898c8553d217fa3d52c6e2b504f8d">OneDomain</a> (int var_index)</td></tr>
<tr class="separator:af13898c8553d217fa3d52c6e2b504f8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a494cf6256ff568544390e507a6943112"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a494cf6256ff568544390e507a6943112">DebugString</a> () const override</td></tr>
<tr class="separator:a494cf6256ff568544390e507a6943112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc53068cf76b2865a10fafd410da228e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#afc53068cf76b2865a10fafd410da228e">IsUndecided</a> (int var_index, int bin_index) const</td></tr>
<tr class="separator:afc53068cf76b2865a10fafd410da228e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7875687d4d252d247a0c4c7b78a0326"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ae7875687d4d252d247a0c4c7b78a0326">SetImpossible</a> (int var_index, int bin_index)</td></tr>
<tr class="separator:ae7875687d4d252d247a0c4c7b78a0326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15e81047afe54184915345326a7cdaa6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a15e81047afe54184915345326a7cdaa6">Assign</a> (int var_index, int bin_index)</td></tr>
<tr class="separator:a15e81047afe54184915345326a7cdaa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dc7ba8d99e3f6cc958125cbfaf22293"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a6dc7ba8d99e3f6cc958125cbfaf22293">IsAssignedStatusKnown</a> (int var_index) const</td></tr>
<tr class="separator:a6dc7ba8d99e3f6cc958125cbfaf22293"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21511d7769c6d0d590e3e8a02892052f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a21511d7769c6d0d590e3e8a02892052f">IsPossible</a> (int var_index, int bin_index) const</td></tr>
<tr class="separator:a21511d7769c6d0d590e3e8a02892052f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7c46b011db8d3382e6b370bbdeaca4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ae7c46b011db8d3382e6b370bbdeaca4f">AssignVar</a> (int var_index, int bin_index) const</td></tr>
<tr class="separator:ae7c46b011db8d3382e6b370bbdeaca4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a104bd60ce9672f53c0539dac7daec58f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a104bd60ce9672f53c0539dac7daec58f">SetAssigned</a> (int var_index)</td></tr>
<tr class="separator:a104bd60ce9672f53c0539dac7daec58f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c9c26b5eef0f2a6bc5c29a6cd193cac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a0c9c26b5eef0f2a6bc5c29a6cd193cac">SetUnassigned</a> (int var_index)</td></tr>
<tr class="separator:a0c9c26b5eef0f2a6bc5c29a6cd193cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e8efc23e9db0d7d793ca7697e89e05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ab4e8efc23e9db0d7d793ca7697e89e05">RemoveAllPossibleFromBin</a> (int bin_index)</td></tr>
<tr class="separator:ab4e8efc23e9db0d7d793ca7697e89e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c3227b06d52ecdb2f09dccc01baa347"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a4c3227b06d52ecdb2f09dccc01baa347">AssignAllPossibleToBin</a> (int bin_index)</td></tr>
<tr class="separator:a4c3227b06d52ecdb2f09dccc01baa347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7406f484f98fd83e408ffae60895905c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a7406f484f98fd83e408ffae60895905c">AssignFirstPossibleToBin</a> (int bin_index)</td></tr>
<tr class="separator:a7406f484f98fd83e408ffae60895905c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b59d1fd372a5f0657774bf83acf847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a48b59d1fd372a5f0657774bf83acf847">AssignAllRemainingItems</a> ()</td></tr>
<tr class="separator:a48b59d1fd372a5f0657774bf83acf847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43b6922981e5f524b4cd259cc4538336"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#a43b6922981e5f524b4cd259cc4538336">UnassignAllRemainingItems</a> ()</td></tr>
<tr class="separator:a43b6922981e5f524b4cd259cc4538336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fda9d44f000fcb907d2bdeec845423"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Pack.html#ad7fda9d44f000fcb907d2bdeec845423">Accept</a> (<a class="el" href="classoperations__research_1_1ModelVisitor.html">ModelVisitor</a> *const visitor) const override</td></tr>
<tr class="memdesc:ad7fda9d44f000fcb907d2bdeec845423"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accepts the given visitor. <a href="#ad7fda9d44f000fcb907d2bdeec845423">More...</a><br /></td></tr>
<tr class="separator:ad7fda9d44f000fcb907d2bdeec845423"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92c3bfe86238b5c95448d4a0384a327f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Constraint.html#a92c3bfe86238b5c95448d4a0384a327f">PostAndPropagate</a> ()</td></tr>
<tr class="memdesc:a92c3bfe86238b5c95448d4a0384a327f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls Post and then Propagate to initialize the constraints. <a href="#a92c3bfe86238b5c95448d4a0384a327f">More...</a><br /></td></tr>
<tr class="separator:a92c3bfe86238b5c95448d4a0384a327f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a834edc2ae995b866a6aa63e44c242570"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Constraint.html#a834edc2ae995b866a6aa63e44c242570">IsCastConstraint</a> () const</td></tr>
<tr class="memdesc:a834edc2ae995b866a6aa63e44c242570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the constraint created by a cast from expression to integer variable? <a href="#a834edc2ae995b866a6aa63e44c242570">More...</a><br /></td></tr>
<tr class="separator:a834edc2ae995b866a6aa63e44c242570"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5606cc31756a1708615d492ab75ba886"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Constraint.html#a5606cc31756a1708615d492ab75ba886">Var</a> ()</td></tr>
<tr class="memdesc:a5606cc31756a1708615d492ab75ba886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a Boolean variable representing the status of the constraint (false = constraint is violated, true = constraint is satisfied). <a href="#a5606cc31756a1708615d492ab75ba886">More...</a><br /></td></tr>
<tr class="separator:a5606cc31756a1708615d492ab75ba886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3aa61657c74294f198a16d1dbc52580"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#ab3aa61657c74294f198a16d1dbc52580">solver</a> () const</td></tr>
<tr class="separator:ab3aa61657c74294f198a16d1dbc52580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78b16596f589dd63573a1586f61c2dbd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a78b16596f589dd63573a1586f61c2dbd">FreezeQueue</a> ()</td></tr>
<tr class="memdesc:a78b16596f589dd63573a1586f61c2dbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method freezes the propagation queue. <a href="#a78b16596f589dd63573a1586f61c2dbd">More...</a><br /></td></tr>
<tr class="separator:a78b16596f589dd63573a1586f61c2dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97782b79fbcf8043201fefaa7729dcf1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a97782b79fbcf8043201fefaa7729dcf1">UnfreezeQueue</a> ()</td></tr>
<tr class="memdesc:a97782b79fbcf8043201fefaa7729dcf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method unfreezes the propagation queue. <a href="#a97782b79fbcf8043201fefaa7729dcf1">More...</a><br /></td></tr>
<tr class="separator:a97782b79fbcf8043201fefaa7729dcf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dd87cd906d80738f8727fda04bc5ace"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a5dd87cd906d80738f8727fda04bc5ace">EnqueueDelayedDemon</a> (<a class="el" href="classoperations__research_1_1Demon.html">Demon</a> *const d)</td></tr>
<tr class="memdesc:a5dd87cd906d80738f8727fda04bc5ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method pushes the demon onto the propagation queue. <a href="#a5dd87cd906d80738f8727fda04bc5ace">More...</a><br /></td></tr>
<tr class="separator:a5dd87cd906d80738f8727fda04bc5ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fe6115081d583d57b6cd8b0dd1783d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a3fe6115081d583d57b6cd8b0dd1783d7">EnqueueVar</a> (<a class="el" href="classoperations__research_1_1Demon.html">Demon</a> *const d)</td></tr>
<tr class="separator:a3fe6115081d583d57b6cd8b0dd1783d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a7285479f5e0fa7663c043cdfc7dd61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a4a7285479f5e0fa7663c043cdfc7dd61">ExecuteAll</a> (const <a class="el" href="classoperations__research_1_1SimpleRevFIFO.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1Demon.html">Demon</a> * &gt; &amp;demons)</td></tr>
<tr class="separator:a4a7285479f5e0fa7663c043cdfc7dd61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5975e144479d99ceae4f009472ca5e92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a5975e144479d99ceae4f009472ca5e92">EnqueueAll</a> (const <a class="el" href="classoperations__research_1_1SimpleRevFIFO.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1Demon.html">Demon</a> * &gt; &amp;demons)</td></tr>
<tr class="separator:a5975e144479d99ceae4f009472ca5e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c6bf90bb0b099a2c8f81aaefdfdd46c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a5c6bf90bb0b099a2c8f81aaefdfdd46c">set_action_on_fail</a> (<a class="el" href="classoperations__research_1_1Solver.html#a87ca0b6abf9c8724900387f5aa557c04">Solver::Action</a> a)</td></tr>
<tr class="memdesc:a5c6bf90bb0b099a2c8f81aaefdfdd46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method sets a callback that will be called if a failure happens during the propagation of the queue. <a href="#a5c6bf90bb0b099a2c8f81aaefdfdd46c">More...</a><br /></td></tr>
<tr class="separator:a5c6bf90bb0b099a2c8f81aaefdfdd46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad07aa613bcc8d3896dff3f33520b061c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#ad07aa613bcc8d3896dff3f33520b061c">reset_action_on_fail</a> ()</td></tr>
<tr class="memdesc:ad07aa613bcc8d3896dff3f33520b061c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method clears the failure callback. <a href="#ad07aa613bcc8d3896dff3f33520b061c">More...</a><br /></td></tr>
<tr class="separator:ad07aa613bcc8d3896dff3f33520b061c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d2ccb8a806df14394b3271791c81e61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a4d2ccb8a806df14394b3271791c81e61">set_variable_to_clean_on_fail</a> (<a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *v)</td></tr>
<tr class="memdesc:a4d2ccb8a806df14394b3271791c81e61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortcut for variable cleaner. <a href="#a4d2ccb8a806df14394b3271791c81e61">More...</a><br /></td></tr>
<tr class="separator:a4d2ccb8a806df14394b3271791c81e61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8be8b75223b76744791e48747677cdb6"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a8be8b75223b76744791e48747677cdb6">name</a> () const</td></tr>
<tr class="memdesc:a8be8b75223b76744791e48747677cdb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object naming. <a href="#a8be8b75223b76744791e48747677cdb6">More...</a><br /></td></tr>
<tr class="separator:a8be8b75223b76744791e48747677cdb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d4a4cf402b353ba2908836656cf0c62"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a5d4a4cf402b353ba2908836656cf0c62">set_name</a> (const std::string &amp;<a class="el" href="classoperations__research_1_1PropagationBaseObject.html#a8be8b75223b76744791e48747677cdb6">name</a>)</td></tr>
<tr class="separator:a5d4a4cf402b353ba2908836656cf0c62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6e627822f954d6072125c1d152c30f8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#af6e627822f954d6072125c1d152c30f8">HasName</a> () const</td></tr>
<tr class="memdesc:af6e627822f954d6072125c1d152c30f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the object has been named or not. <a href="#af6e627822f954d6072125c1d152c30f8">More...</a><br /></td></tr>
<tr class="separator:af6e627822f954d6072125c1d152c30f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34671f68433c582260a443f3d15bfae"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PropagationBaseObject.html#ab34671f68433c582260a443f3d15bfae">BaseName</a> () const</td></tr>
<tr class="memdesc:ab34671f68433c582260a443f3d15bfae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a base name for automatic naming. <a href="#ab34671f68433c582260a443f3d15bfae">More...</a><br /></td></tr>
<tr class="separator:ab34671f68433c582260a443f3d15bfae"><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>-------&mdash; <a class="el" href="classoperations__research_1_1Pack.html" title="-------— Pack Constraint -------—">Pack</a> <a class="el" href="classoperations__research_1_1Constraint.html" title="A constraint is the main modeling object.">Constraint</a> -------&mdash; </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l05201">5201</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a94969a5d7e604ccba7e5b515424a246e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94969a5d7e604ccba7e5b515424a246e">&#9670;&nbsp;</a></span>Pack()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operations_research::Pack::Pack </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html">Solver</a> *const&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.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">int&#160;</td>
<td class="paramname"><em>number_of_bins</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac41b9dfede7920f5baadea90cddc72ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac41b9dfede7920f5baadea90cddc72ea">&#9670;&nbsp;</a></span>~Pack()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">operations_research::Pack::~Pack </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad7fda9d44f000fcb907d2bdeec845423"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7fda9d44f000fcb907d2bdeec845423">&#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 operations_research::Pack::Accept </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1ModelVisitor.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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Accepts the given visitor. </p>
<p>Reimplemented from <a class="el" href="classoperations__research_1_1Constraint.html#a6e3070956af148d6fa0491de1d3cf289">operations_research::Constraint</a>.</p>
</div>
</div>
<a id="aa8c9281df8ab547dbed84de1364267d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8c9281df8ab547dbed84de1364267d4">&#9670;&nbsp;</a></span>AddCountAssignedItemsDimension()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddCountAssignedItemsDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *const&#160;</td>
<td class="paramname"><em>count_var</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension links 'count_var' to the actual number of items assigned to a bin in the pack. </p>
</div>
</div>
<a id="a3030c379670033531aab20df788376ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3030c379670033531aab20df788376ed">&#9670;&nbsp;</a></span>AddCountUsedBinDimension()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddCountUsedBinDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *const&#160;</td>
<td class="paramname"><em>count_var</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension links 'count_var' to the actual number of bins used in the pack. </p>
</div>
</div>
<a id="a92da0e27853c3c611f0384457e1fcdb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92da0e27853c3c611f0384457e1fcdb2">&#9670;&nbsp;</a></span>AddSumVariableWeightsLessOrEqualConstantDimension()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddSumVariableWeightsLessOrEqualConstantDimension </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>usage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>capacity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension imposes: forall b in bins, sum (i in items: usage[i] * is_assigned(i, b)) &lt;= capacity[b] where is_assigned(i, b) is true if and only if item i is assigned to the bin b. </p>
<p>This can be used to model shapes of items by linking variables of the same item on parallel dimensions with an allowed assignment constraint. </p>
</div>
</div>
<a id="ae82f80cca2acf98982b3c0eb5cc96d03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae82f80cca2acf98982b3c0eb5cc96d03">&#9670;&nbsp;</a></span>AddWeightedSumEqualVarDimension() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddWeightedSumEqualVarDimension </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>loads</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension imposes that for all bins b, the weighted sum (weights[i]) of all objects i assigned to 'b' is equal to loads[b]. </p>
</div>
</div>
<a id="a42267aa342941682b197ebef1a9fd6bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42267aa342941682b197ebef1a9fd6bc">&#9670;&nbsp;</a></span>AddWeightedSumEqualVarDimension() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddWeightedSumEqualVarDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html#a0243986dd2db4b6e1bda331329ae529b">Solver::IndexEvaluator2</a>&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>loads</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension imposes that for all bins b, the weighted sum (weights-&gt;Run(i, b)) of all objects i assigned to 'b' is equal to loads[b]. </p>
</div>
</div>
<a id="af69fc8b35affb174b5e47fbee6de9772"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af69fc8b35affb174b5e47fbee6de9772">&#9670;&nbsp;</a></span>AddWeightedSumLessOrEqualConstantDimension() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddWeightedSumLessOrEqualConstantDimension </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>bounds</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>--&mdash; Public API --&mdash; </p>
<p>Dimensions are additional constraints than can restrict what is possible with the pack constraint. It can be used to set capacity limits, to count objects per bin, to compute unassigned penalties... This dimension imposes that for all bins b, the weighted sum (weights[i]) of all objects i assigned to 'b' is less or equal 'bounds[b]'. </p>
</div>
</div>
<a id="aee734afb685c74deb94817b754b9e518"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee734afb685c74deb94817b754b9e518">&#9670;&nbsp;</a></span>AddWeightedSumLessOrEqualConstantDimension() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddWeightedSumLessOrEqualConstantDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html#a1040bdf484009e1a00e60ebb055ad1a1">Solver::IndexEvaluator1</a>&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>bounds</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension imposes that for all bins b, the weighted sum (weights-&gt;Run(i)) of all objects i assigned to 'b' is less or equal to 'bounds[b]'. </p>
<p>Ownership of the callback is transferred to the pack constraint. </p>
</div>
</div>
<a id="a7a66d1abf3e8584e7c5ced64fdbd4cd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a66d1abf3e8584e7c5ced64fdbd4cd8">&#9670;&nbsp;</a></span>AddWeightedSumLessOrEqualConstantDimension() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddWeightedSumLessOrEqualConstantDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html#a0243986dd2db4b6e1bda331329ae529b">Solver::IndexEvaluator2</a>&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>bounds</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension imposes that for all bins b, the weighted sum (weights-&gt;Run(i, b) of all objects i assigned to 'b' is less or equal to 'bounds[b]'. </p>
<p>Ownership of the callback is transferred to the pack constraint. </p>
</div>
</div>
<a id="acbb9380640b30f024e9986f96d5fe582"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbb9380640b30f024e9986f96d5fe582">&#9670;&nbsp;</a></span>AddWeightedSumOfAssignedDimension()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AddWeightedSumOfAssignedDimension </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int64 &gt; &amp;&#160;</td>
<td class="paramname"><em>weights</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a> *const&#160;</td>
<td class="paramname"><em>cost_var</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This dimension enforces that cost_var == sum of weights[i] for all objects 'i' assigned to a bin. </p>
</div>
</div>
<a id="a15e81047afe54184915345326a7cdaa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15e81047afe54184915345326a7cdaa6">&#9670;&nbsp;</a></span>Assign()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::Assign </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4c3227b06d52ecdb2f09dccc01baa347"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c3227b06d52ecdb2f09dccc01baa347">&#9670;&nbsp;</a></span>AssignAllPossibleToBin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AssignAllPossibleToBin </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a48b59d1fd372a5f0657774bf83acf847"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48b59d1fd372a5f0657774bf83acf847">&#9670;&nbsp;</a></span>AssignAllRemainingItems()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AssignAllRemainingItems </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7406f484f98fd83e408ffae60895905c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7406f484f98fd83e408ffae60895905c">&#9670;&nbsp;</a></span>AssignFirstPossibleToBin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::AssignFirstPossibleToBin </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae7c46b011db8d3382e6b370bbdeaca4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7c46b011db8d3382e6b370bbdeaca4f">&#9670;&nbsp;</a></span>AssignVar()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1IntVar.html">IntVar</a>* operations_research::Pack::AssignVar </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab34671f68433c582260a443f3d15bfae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab34671f68433c582260a443f3d15bfae">&#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">virtual std::string operations_research::PropagationBaseObject::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_1BooleanVar.html#af9f1ddd2359a6d10c4003822bfc81289">operations_research::BooleanVar</a>.</p>
</div>
</div>
<a id="af10aa93a14a72df0bd8b5c7143c6648e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af10aa93a14a72df0bd8b5c7143c6648e">&#9670;&nbsp;</a></span>ClearAll()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::ClearAll </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a494cf6256ff568544390e507a6943112"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a494cf6256ff568544390e507a6943112">&#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 operations_research::Pack::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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented from <a class="el" href="classoperations__research_1_1Constraint.html#a443bf6da3f8db15c240cb92d20e37466">operations_research::Constraint</a>.</p>
</div>
</div>
<a id="a5975e144479d99ceae4f009472ca5e92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5975e144479d99ceae4f009472ca5e92">&#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 operations_research::PropagationBaseObject::EnqueueAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1SimpleRevFIFO.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1Demon.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">
</div>
</div>
<a id="a5dd87cd906d80738f8727fda04bc5ace"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dd87cd906d80738f8727fda04bc5ace">&#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 operations_research::PropagationBaseObject::EnqueueDelayedDemon </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Demon.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#l03173">3173</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a3fe6115081d583d57b6cd8b0dd1783d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fe6115081d583d57b6cd8b0dd1783d7">&#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 operations_research::PropagationBaseObject::EnqueueVar </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Demon.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#l03174">3174</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a4a7285479f5e0fa7663c043cdfc7dd61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a7285479f5e0fa7663c043cdfc7dd61">&#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 operations_research::PropagationBaseObject::ExecuteAll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1SimpleRevFIFO.html">SimpleRevFIFO</a>&lt; <a class="el" href="classoperations__research_1_1Demon.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">
</div>
</div>
<a id="a78b16596f589dd63573a1586f61c2dbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78b16596f589dd63573a1586f61c2dbd">&#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 operations_research::PropagationBaseObject::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#l03164">3164</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="af6e627822f954d6072125c1d152c30f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6e627822f954d6072125c1d152c30f8">&#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 operations_research::PropagationBaseObject::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>
</div>
</div>
<a id="adac62b65b527aa23434dd7d1fdba3b14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adac62b65b527aa23434dd7d1fdba3b14">&#9670;&nbsp;</a></span>InitialPropagate()</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::Pack::InitialPropagate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method performs the initial propagation of the constraint. </p>
<p>It is called just after the post. </p>
<p>Implements <a class="el" href="classoperations__research_1_1Constraint.html#a64ab23714e57db311ba5b9fe1e742979">operations_research::Constraint</a>.</p>
</div>
</div>
<a id="a6dc7ba8d99e3f6cc958125cbfaf22293"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6dc7ba8d99e3f6cc958125cbfaf22293">&#9670;&nbsp;</a></span>IsAssignedStatusKnown()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::Pack::IsAssignedStatusKnown </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a834edc2ae995b866a6aa63e44c242570"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a834edc2ae995b866a6aa63e44c242570">&#9670;&nbsp;</a></span>IsCastConstraint()</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::Constraint::IsCastConstraint </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>Is the constraint created by a cast from expression to integer variable? </p>
</div>
</div>
<a id="a21511d7769c6d0d590e3e8a02892052f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21511d7769c6d0d590e3e8a02892052f">&#9670;&nbsp;</a></span>IsPossible()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::Pack::IsPossible </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afc53068cf76b2865a10fafd410da228e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc53068cf76b2865a10fafd410da228e">&#9670;&nbsp;</a></span>IsUndecided()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::Pack::IsUndecided </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a8be8b75223b76744791e48747677cdb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8be8b75223b76744791e48747677cdb6">&#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">virtual std::string operations_research::PropagationBaseObject::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>
</div>
</div>
<a id="af13898c8553d217fa3d52c6e2b504f8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af13898c8553d217fa3d52c6e2b504f8d">&#9670;&nbsp;</a></span>OneDomain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::OneDomain </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a22f97f40518e3d2f565d78f7ef6f3b56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22f97f40518e3d2f565d78f7ef6f3b56">&#9670;&nbsp;</a></span>Post()</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::Pack::Post </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>--&mdash; Internal API --&mdash; </p>
<p>Implements <a class="el" href="classoperations__research_1_1Constraint.html#aaa882d58b5fc0f2e3df6eff957ad4a0d">operations_research::Constraint</a>.</p>
</div>
</div>
<a id="a92c3bfe86238b5c95448d4a0384a327f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92c3bfe86238b5c95448d4a0384a327f">&#9670;&nbsp;</a></span>PostAndPropagate()</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::Constraint::PostAndPropagate </td>
<td>(</td>
<td class="paramname"></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>Calls Post and then Propagate to initialize the constraints. </p>
<p>This is usually done in the root node. </p>
</div>
</div>
<a id="a29f65d45d0fefbab371c7265572d54f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29f65d45d0fefbab371c7265572d54f4">&#9670;&nbsp;</a></span>Propagate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::Propagate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac2a200cf86dc0fa3b6a7905971ad88e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2a200cf86dc0fa3b6a7905971ad88e6">&#9670;&nbsp;</a></span>PropagateDelayed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::PropagateDelayed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab4e8efc23e9db0d7d793ca7697e89e05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4e8efc23e9db0d7d793ca7697e89e05">&#9670;&nbsp;</a></span>RemoveAllPossibleFromBin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::RemoveAllPossibleFromBin </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad07aa613bcc8d3896dff3f33520b061c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad07aa613bcc8d3896dff3f33520b061c">&#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 operations_research::PropagationBaseObject::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#l03187">3187</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a5c6bf90bb0b099a2c8f81aaefdfdd46c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c6bf90bb0b099a2c8f81aaefdfdd46c">&#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 operations_research::PropagationBaseObject::set_action_on_fail </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1Solver.html#a87ca0b6abf9c8724900387f5aa557c04">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>This method sets a callback that will be called if a failure happens during the propagation of the queue. </p>
<p class="definition">Definition at line <a class="el" href="constraint__solver_8h_source.html#l03181">3181</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a5d4a4cf402b353ba2908836656cf0c62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d4a4cf402b353ba2908836656cf0c62">&#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 operations_research::PropagationBaseObject::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">
</div>
</div>
<a id="a4d2ccb8a806df14394b3271791c81e61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d2ccb8a806df14394b3271791c81e61">&#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 operations_research::PropagationBaseObject::set_variable_to_clean_on_fail </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1IntVar.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#l03190">3190</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a104bd60ce9672f53c0539dac7daec58f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a104bd60ce9672f53c0539dac7daec58f">&#9670;&nbsp;</a></span>SetAssigned()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::SetAssigned </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae7875687d4d252d247a0c4c7b78a0326"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7875687d4d252d247a0c4c7b78a0326">&#9670;&nbsp;</a></span>SetImpossible()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::SetImpossible </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>bin_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a0c9c26b5eef0f2a6bc5c29a6cd193cac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c9c26b5eef0f2a6bc5c29a6cd193cac">&#9670;&nbsp;</a></span>SetUnassigned()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::SetUnassigned </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>var_index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab3aa61657c74294f198a16d1dbc52580"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3aa61657c74294f198a16d1dbc52580">&#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_1Solver.html">Solver</a>* operations_research::PropagationBaseObject::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#l03161">3161</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a43b6922981e5f524b4cd259cc4538336"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43b6922981e5f524b4cd259cc4538336">&#9670;&nbsp;</a></span>UnassignAllRemainingItems()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::Pack::UnassignAllRemainingItems </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a97782b79fbcf8043201fefaa7729dcf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97782b79fbcf8043201fefaa7729dcf1">&#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 operations_research::PropagationBaseObject::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#l03168">3168</a> of file <a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a>.</p>
</div>
</div>
<a id="a5606cc31756a1708615d492ab75ba886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5606cc31756a1708615d492ab75ba886">&#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_1IntVar.html">IntVar</a>* operations_research::Constraint::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">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a Boolean variable representing the status of the constraint (false = constraint is violated, true = constraint is satisfied). </p>
<p>It returns nullptr if the constraint does not support this API. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="constraint__solver_8h_source.html">constraint_solver.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>