Files
ortools-clone/docs/cpp/element_8cc.html
Mizux Seiha d1b6751cad Update doc
2020-11-18 14:53:53 +01:00

311 lines
16 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.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: element.cc File Reference</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>
<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">8.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<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('element_8cc.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">element.cc File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="element_8cc_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_if_then_else_ct.html">IfThenElseCt</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceoperations__research"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html">operations_research</a></td></tr>
<tr class="memdesc:namespaceoperations__research"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ae40d2ccaf13a8f831331ba8be7115994"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="element_8cc.html#ae40d2ccaf13a8f831331ba8be7115994">UPDATE_BASE_ELEMENT_INDEX_BOUNDS</a>(test)</td></tr>
<tr class="separator:ae40d2ccaf13a8f831331ba8be7115994"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af284cb6e0cef6e8fb276380b92524ffd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="element_8cc.html#af284cb6e0cef6e8fb276380b92524ffd">UPDATE_RMQ_BASE_ELEMENT_INDEX_BOUNDS</a>(test)</td></tr>
<tr class="separator:af284cb6e0cef6e8fb276380b92524ffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03fb7adebf0edf074fec98d8790c6506"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="element_8cc.html#a03fb7adebf0edf074fec98d8790c6506">UPDATE_ELEMENT_INDEX_BOUNDS</a>(test)</td></tr>
<tr class="separator:a03fb7adebf0edf074fec98d8790c6506"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ac0db2d451cc038ba5425ebb07a91c6bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="element_8cc.html#ac0db2d451cc038ba5425ebb07a91c6bf">ABSL_FLAG</a> (bool, cp_disable_element_cache, true, &quot;If true, caching for IntElement is disabled.&quot;)</td></tr>
<tr class="separator:ac0db2d451cc038ba5425ebb07a91c6bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac14e5bdd8a27f1b2089a783f842dce2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ac14e5bdd8a27f1b2089a783f842dce2f">LinkVarExpr</a> (Solver *const s, IntExpr *const expr, IntVar *const <a class="el" href="sat__solver_8cc.html#a8392bdc4ed570e6a95c7fca35b09f83f">var</a>)</td></tr>
<tr class="separator:ac14e5bdd8a27f1b2089a783f842dce2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ae40d2ccaf13a8f831331ba8be7115994"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae40d2ccaf13a8f831331ba8be7115994">&#9670;&nbsp;</a></span>UPDATE_BASE_ELEMENT_INDEX_BOUNDS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UPDATE_BASE_ELEMENT_INDEX_BOUNDS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">test</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">const</span> <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> emin = ExprMin(); \</div>
<div class="line"> const <a class="code" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> emax = ExprMax(); \</div>
<div class="line"> int64 nmin = emin; \</div>
<div class="line"> int64 <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a> = ElementValue(nmin); \</div>
<div class="line"> while (nmin &lt; emax &amp;&amp; test) { \</div>
<div class="line"> nmin++; \</div>
<div class="line"> value = ElementValue(nmin); \</div>
<div class="line"> } \</div>
<div class="line"> if (nmin == emax &amp;&amp; test) { \</div>
<div class="line"> solver()-&gt;Fail(); \</div>
<div class="line"> } \</div>
<div class="line"> int64 nmax = emax; \</div>
<div class="line"> value = ElementValue(nmax); \</div>
<div class="line"> while (nmax &gt;= nmin &amp;&amp; test) { \</div>
<div class="line"> nmax--; \</div>
<div class="line"> value = ElementValue(nmax); \</div>
<div class="line"> } \</div>
<div class="line"> expr_-&gt;SetRange(nmin, nmax);</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="element_8cc_source.html#l00127">127</a> of file <a class="el" href="element_8cc_source.html">element.cc</a>.</p>
</div>
</div>
<a id="a03fb7adebf0edf074fec98d8790c6506"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03fb7adebf0edf074fec98d8790c6506">&#9670;&nbsp;</a></span>UPDATE_ELEMENT_INDEX_BOUNDS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UPDATE_ELEMENT_INDEX_BOUNDS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">test</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="element_8cc_source.html#l00977">977</a> of file <a class="el" href="element_8cc_source.html">element.cc</a>.</p>
</div>
</div>
<a id="af284cb6e0cef6e8fb276380b92524ffd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af284cb6e0cef6e8fb276380b92524ffd">&#9670;&nbsp;</a></span>UPDATE_RMQ_BASE_ELEMENT_INDEX_BOUNDS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UPDATE_RMQ_BASE_ELEMENT_INDEX_BOUNDS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">test</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">const</span> std::vector&lt;int64&gt;&amp; values = min_rmq_.array(); \</div>
<div class="line"> int64 index_min = IndexMin(); \</div>
<div class="line"> int64 index_max = IndexMax(); \</div>
<div class="line"> int64 <a class="code" href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a> = values[index_min]; \</div>
<div class="line"> while (index_min &lt; index_max &amp;&amp; (test)) { \</div>
<div class="line"> index_min++; \</div>
<div class="line"> value = values[index_min]; \</div>
<div class="line"> } \</div>
<div class="line"> if (index_min == index_max &amp;&amp; (test)) { \</div>
<div class="line"> solver()-&gt;Fail(); \</div>
<div class="line"> } \</div>
<div class="line"> value = values[index_max]; \</div>
<div class="line"> while (index_max &gt;= index_min &amp;&amp; (test)) { \</div>
<div class="line"> index_max--; \</div>
<div class="line"> value = values[index_max]; \</div>
<div class="line"> } \</div>
<div class="line"> index_-&gt;SetRange(index_min, index_max);</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="element_8cc_source.html#l00417">417</a> of file <a class="el" href="element_8cc_source.html">element.cc</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ac0db2d451cc038ba5425ebb07a91c6bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0db2d451cc038ba5425ebb07a91c6bf">&#9670;&nbsp;</a></span>ABSL_FLAG()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_FLAG </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">cp_disable_element_cache&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">true&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&quot;If&#160;</td>
<td class="paramname"><em>true</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">caching for IntElement is disabled.&quot;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a2dac2393bef148b7c15723ef0770d558"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dac2393bef148b7c15723ef0770d558">&#9670;&nbsp;</a></span>expr_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">IntVar* const expr_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="element_8cc_source.html#l00085">85</a> of file <a class="el" href="element_8cc_source.html">element.cc</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="ademon__profiler_8cc_html_a21edc7ca4cc5802c8779d68556bc09cf"><div class="ttname"><a href="demon__profiler_8cc.html#a21edc7ca4cc5802c8779d68556bc09cf">value</a></div><div class="ttdeci">int64 value</div><div class="ttdef"><b>Definition:</b> <a href="demon__profiler_8cc_source.html#l00043">demon_profiler.cc:43</a></div></div>
<div class="ttc" id="aintegral__types_8h_html_a7cde0074dfd288f2d70c0e035dacb28a"><div class="ttname"><a href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a></div><div class="ttdeci">int64_t int64</div><div class="ttdef"><b>Definition:</b> <a href="integral__types_8h_source.html#l00034">integral_types.h:34</a></div></div>
<!-- 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="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_afbb39f66221aac28bbdefd1dca2b2b0.html">constraint_solver</a></li><li class="navelem"><a class="el" href="element_8cc.html">element.cc</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.20 </li>
</ul>
</div>
</body>
</html>