1105 lines
66 KiB
HTML
1105 lines
66 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="ortools.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 Page</span></a></li>
|
||
<li><a href="pages.html"><span>Related 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 List</span></a></li>
|
||
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
||
<li><a href="functions.html"><span>Class 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_1Domain.html">Domain</a></li> </ul>
|
||
</div>
|
||
</div><!-- top -->
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#pub-methods">Public Member Functions</a> |
|
||
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||
<a href="classoperations__research_1_1Domain-members.html">List of all members</a> </div>
|
||
<div class="headertitle">
|
||
<div class="title">operations_research::Domain Class Reference</div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
|
||
<p>We call "domain" any subset of Int64 = [kint64min, kint64max].
|
||
<a href="classoperations__research_1_1Domain.html#details">More...</a></p>
|
||
|
||
<p><code>#include <<a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>></code></p>
|
||
<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:a8026c98d5255e56fc3f224be687a07c3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a8026c98d5255e56fc3f224be687a07c3">Domain</a> ()</td></tr>
|
||
<tr class="memdesc:a8026c98d5255e56fc3f224be687a07c3"><td class="mdescLeft"> </td><td class="mdescRight">By default, <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> will be empty. <a href="#a8026c98d5255e56fc3f224be687a07c3">More...</a><br /></td></tr>
|
||
<tr class="separator:a8026c98d5255e56fc3f224be687a07c3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4604d54b843d603bde4f76ef853464e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a4604d54b843d603bde4f76ef853464e6">Domain</a> (int64 value)</td></tr>
|
||
<tr class="memdesc:a4604d54b843d603bde4f76ef853464e6"><td class="mdescLeft"> </td><td class="mdescRight">Constructor for the common case of a singleton domain. <a href="#a4604d54b843d603bde4f76ef853464e6">More...</a><br /></td></tr>
|
||
<tr class="separator:a4604d54b843d603bde4f76ef853464e6"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8c763d670dcbb2656b8b708bf50d7262"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a8c763d670dcbb2656b8b708bf50d7262">Domain</a> (int64 left, int64 right)</td></tr>
|
||
<tr class="memdesc:a8c763d670dcbb2656b8b708bf50d7262"><td class="mdescLeft"> </td><td class="mdescRight">Constructor for the common case of a single interval [left, right]. <a href="#a8c763d670dcbb2656b8b708bf50d7262">More...</a><br /></td></tr>
|
||
<tr class="separator:a8c763d670dcbb2656b8b708bf50d7262"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2de0f6b61253050ad242107ce42ba825"><td class="memItemLeft" align="right" valign="top">std::vector< int64 > </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a2de0f6b61253050ad242107ce42ba825">FlattenedIntervals</a> () const</td></tr>
|
||
<tr class="memdesc:a2de0f6b61253050ad242107ce42ba825"><td class="mdescLeft"> </td><td class="mdescRight">This method returns the flattened list of interval bounds of the domain. <a href="#a2de0f6b61253050ad242107ce42ba825">More...</a><br /></td></tr>
|
||
<tr class="separator:a2de0f6b61253050ad242107ce42ba825"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7f13c8b45290e4cf8889c4e677b0cd85"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a7f13c8b45290e4cf8889c4e677b0cd85">IsEmpty</a> () const</td></tr>
|
||
<tr class="memdesc:a7f13c8b45290e4cf8889c4e677b0cd85"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this is the empty set. <a href="#a7f13c8b45290e4cf8889c4e677b0cd85">More...</a><br /></td></tr>
|
||
<tr class="separator:a7f13c8b45290e4cf8889c4e677b0cd85"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:afc9e0537e74ddbb050a001b96f4ca05c"><td class="memItemLeft" align="right" valign="top">int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#afc9e0537e74ddbb050a001b96f4ca05c">Size</a> () const</td></tr>
|
||
<tr class="memdesc:afc9e0537e74ddbb050a001b96f4ca05c"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of elements in the domain. It is capped at kint64max. <a href="#afc9e0537e74ddbb050a001b96f4ca05c">More...</a><br /></td></tr>
|
||
<tr class="separator:afc9e0537e74ddbb050a001b96f4ca05c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a9ed997be60938397604bc2761b0c6775"><td class="memItemLeft" align="right" valign="top">int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a9ed997be60938397604bc2761b0c6775">Min</a> () const</td></tr>
|
||
<tr class="memdesc:a9ed997be60938397604bc2761b0c6775"><td class="mdescLeft"> </td><td class="mdescRight">Returns the domain min value. <a href="#a9ed997be60938397604bc2761b0c6775">More...</a><br /></td></tr>
|
||
<tr class="separator:a9ed997be60938397604bc2761b0c6775"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a23a06dbf9d08cc91d8de1fe86b8bccc9"><td class="memItemLeft" align="right" valign="top">int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a23a06dbf9d08cc91d8de1fe86b8bccc9">Max</a> () const</td></tr>
|
||
<tr class="memdesc:a23a06dbf9d08cc91d8de1fe86b8bccc9"><td class="mdescLeft"> </td><td class="mdescRight">Returns the domain max value. <a href="#a23a06dbf9d08cc91d8de1fe86b8bccc9">More...</a><br /></td></tr>
|
||
<tr class="separator:a23a06dbf9d08cc91d8de1fe86b8bccc9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aca55d3d10ee99aeab77e457d216d8c02"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#aca55d3d10ee99aeab77e457d216d8c02">Contains</a> (int64 value) const</td></tr>
|
||
<tr class="memdesc:aca55d3d10ee99aeab77e457d216d8c02"><td class="mdescLeft"> </td><td class="mdescRight">Returns true iff value is in <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a>. <a href="#aca55d3d10ee99aeab77e457d216d8c02">More...</a><br /></td></tr>
|
||
<tr class="separator:aca55d3d10ee99aeab77e457d216d8c02"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a770758f5d9d0569a04c3e203cb2ce216"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a770758f5d9d0569a04c3e203cb2ce216">IsIncludedIn</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &domain) const</td></tr>
|
||
<tr class="memdesc:a770758f5d9d0569a04c3e203cb2ce216"><td class="mdescLeft"> </td><td class="mdescRight">Returns true iff D is included in the given domain. <a href="#a770758f5d9d0569a04c3e203cb2ce216">More...</a><br /></td></tr>
|
||
<tr class="separator:a770758f5d9d0569a04c3e203cb2ce216"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac6beb8d0bb66ee165d94623d5a704abd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#ac6beb8d0bb66ee165d94623d5a704abd">Complement</a> () const</td></tr>
|
||
<tr class="memdesc:ac6beb8d0bb66ee165d94623d5a704abd"><td class="mdescLeft"> </td><td class="mdescRight">Returns the set Int64 ∖ D. <a href="#ac6beb8d0bb66ee165d94623d5a704abd">More...</a><br /></td></tr>
|
||
<tr class="separator:ac6beb8d0bb66ee165d94623d5a704abd"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4b24ac9e300406590558a82ae378db1e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a4b24ac9e300406590558a82ae378db1e">Negation</a> () const</td></tr>
|
||
<tr class="memdesc:a4b24ac9e300406590558a82ae378db1e"><td class="mdescLeft"> </td><td class="mdescRight">Returns {x ∈ Int64, ∃ e ∈ D, x = -e}. <a href="#a4b24ac9e300406590558a82ae378db1e">More...</a><br /></td></tr>
|
||
<tr class="separator:a4b24ac9e300406590558a82ae378db1e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4bf09b90ae38afd5bd3aa87ed5e0dc04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a4bf09b90ae38afd5bd3aa87ed5e0dc04">IntersectionWith</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &domain) const</td></tr>
|
||
<tr class="memdesc:a4bf09b90ae38afd5bd3aa87ed5e0dc04"><td class="mdescLeft"> </td><td class="mdescRight">Returns the set D ∩ domain. <a href="#a4bf09b90ae38afd5bd3aa87ed5e0dc04">More...</a><br /></td></tr>
|
||
<tr class="separator:a4bf09b90ae38afd5bd3aa87ed5e0dc04"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac33030581b21c1e9fc6ec13a0486c28e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#ac33030581b21c1e9fc6ec13a0486c28e">UnionWith</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &domain) const</td></tr>
|
||
<tr class="memdesc:ac33030581b21c1e9fc6ec13a0486c28e"><td class="mdescLeft"> </td><td class="mdescRight">Returns the set D ∪ domain. <a href="#ac33030581b21c1e9fc6ec13a0486c28e">More...</a><br /></td></tr>
|
||
<tr class="separator:ac33030581b21c1e9fc6ec13a0486c28e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a714a1473bb78dab3195bd5cd5e90af42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a714a1473bb78dab3195bd5cd5e90af42">AdditionWith</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &domain) const</td></tr>
|
||
<tr class="memdesc:a714a1473bb78dab3195bd5cd5e90af42"><td class="mdescLeft"> </td><td class="mdescRight">Returns {x ∈ Int64, ∃ a ∈ D, ∃ b ∈ domain, x = a + b}. <a href="#a714a1473bb78dab3195bd5cd5e90af42">More...</a><br /></td></tr>
|
||
<tr class="separator:a714a1473bb78dab3195bd5cd5e90af42"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a0d8ff8a937591b31265b86db6353fa34"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34">MultiplicationBy</a> (int64 coeff, bool *exact=nullptr) const</td></tr>
|
||
<tr class="memdesc:a0d8ff8a937591b31265b86db6353fa34"><td class="mdescLeft"> </td><td class="mdescRight">Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}. <a href="#a0d8ff8a937591b31265b86db6353fa34">More...</a><br /></td></tr>
|
||
<tr class="separator:a0d8ff8a937591b31265b86db6353fa34"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ab06560137156458393e8f44acfd01712"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#ab06560137156458393e8f44acfd01712">RelaxIfTooComplex</a> () const</td></tr>
|
||
<tr class="memdesc:ab06560137156458393e8f44acfd01712"><td class="mdescLeft"> </td><td class="mdescRight">If <a class="el" href="classoperations__research_1_1Domain.html#a7c440e0dfafdb9c1299576f17a52b34e" title="Basic read-only std::vector<> wrapping to view a Domain as a sorted list of non-adjacent intervals.">NumIntervals()</a> is too large, this return a superset of the domain. <a href="#ab06560137156458393e8f44acfd01712">More...</a><br /></td></tr>
|
||
<tr class="separator:ab06560137156458393e8f44acfd01712"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5fa203b31737f4c452a0b04779ce45a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a5fa203b31737f4c452a0b04779ce45a8">ContinuousMultiplicationBy</a> (int64 coeff) const</td></tr>
|
||
<tr class="memdesc:a5fa203b31737f4c452a0b04779ce45a8"><td class="mdescLeft"> </td><td class="mdescRight">Returns a super-set of <a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34" title="Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}.">MultiplicationBy()</a> to avoid the explosion in the representation size. <a href="#a5fa203b31737f4c452a0b04779ce45a8">More...</a><br /></td></tr>
|
||
<tr class="separator:a5fa203b31737f4c452a0b04779ce45a8"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4c1fd36870e1dbf2029c462d3fb3d517"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a4c1fd36870e1dbf2029c462d3fb3d517">ContinuousMultiplicationBy</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &domain) const</td></tr>
|
||
<tr class="memdesc:a4c1fd36870e1dbf2029c462d3fb3d517"><td class="mdescLeft"> </td><td class="mdescRight">Returns a super-set of <a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34" title="Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}.">MultiplicationBy()</a> to avoid the explosion in the representation size. <a href="#a4c1fd36870e1dbf2029c462d3fb3d517">More...</a><br /></td></tr>
|
||
<tr class="separator:a4c1fd36870e1dbf2029c462d3fb3d517"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a9f653103edc20fa77ecdd7708c76d037"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a9f653103edc20fa77ecdd7708c76d037">DivisionBy</a> (int64 coeff) const</td></tr>
|
||
<tr class="memdesc:a9f653103edc20fa77ecdd7708c76d037"><td class="mdescLeft"> </td><td class="mdescRight">Returns {x ∈ Int64, ∃ e ∈ D, x = e / coeff}. <a href="#a9f653103edc20fa77ecdd7708c76d037">More...</a><br /></td></tr>
|
||
<tr class="separator:a9f653103edc20fa77ecdd7708c76d037"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a3b6727dfefc8413b855926e1c4d27da6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a3b6727dfefc8413b855926e1c4d27da6">InverseMultiplicationBy</a> (const int64 coeff) const</td></tr>
|
||
<tr class="memdesc:a3b6727dfefc8413b855926e1c4d27da6"><td class="mdescLeft"> </td><td class="mdescRight">Returns {x ∈ Int64, ∃ e ∈ D, x * coeff = e}. <a href="#a3b6727dfefc8413b855926e1c4d27da6">More...</a><br /></td></tr>
|
||
<tr class="separator:a3b6727dfefc8413b855926e1c4d27da6"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a0217b50fb7a5dc20f697ef3d0b14ec41"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a0217b50fb7a5dc20f697ef3d0b14ec41">SimplifyUsingImpliedDomain</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &implied_domain) const</td></tr>
|
||
<tr class="memdesc:a0217b50fb7a5dc20f697ef3d0b14ec41"><td class="mdescLeft"> </td><td class="mdescRight">Advanced usage. <a href="#a0217b50fb7a5dc20f697ef3d0b14ec41">More...</a><br /></td></tr>
|
||
<tr class="separator:a0217b50fb7a5dc20f697ef3d0b14ec41"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a94b8d91180431ec7bf1073c2a8538f70"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a94b8d91180431ec7bf1073c2a8538f70">ToString</a> () const</td></tr>
|
||
<tr class="memdesc:a94b8d91180431ec7bf1073c2a8538f70"><td class="mdescLeft"> </td><td class="mdescRight">Returns a compact std::string of a vector of intervals like "[1,4][6][10,20]". <a href="#a94b8d91180431ec7bf1073c2a8538f70">More...</a><br /></td></tr>
|
||
<tr class="separator:a94b8d91180431ec7bf1073c2a8538f70"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a27c69d2928356d00ee0624323e116fc8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a27c69d2928356d00ee0624323e116fc8">operator<</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &other) const</td></tr>
|
||
<tr class="memdesc:a27c69d2928356d00ee0624323e116fc8"><td class="mdescLeft"> </td><td class="mdescRight">Lexicographic order on the <a class="el" href="classoperations__research_1_1Domain.html#a153837b45a0e9ddf5620679f243baa96">intervals()</a> representation. <a href="#a27c69d2928356d00ee0624323e116fc8">More...</a><br /></td></tr>
|
||
<tr class="separator:a27c69d2928356d00ee0624323e116fc8"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:acf15b6795a380eeb7521e1a8e15ee5d9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#acf15b6795a380eeb7521e1a8e15ee5d9">operator==</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &other) const</td></tr>
|
||
<tr class="separator:acf15b6795a380eeb7521e1a8e15ee5d9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:afc2fcedb7011ed72d191ca8be79e2ec7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#afc2fcedb7011ed72d191ca8be79e2ec7">operator!=</a> (const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> &other) const</td></tr>
|
||
<tr class="separator:afc2fcedb7011ed72d191ca8be79e2ec7"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7c440e0dfafdb9c1299576f17a52b34e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a7c440e0dfafdb9c1299576f17a52b34e">NumIntervals</a> () const</td></tr>
|
||
<tr class="memdesc:a7c440e0dfafdb9c1299576f17a52b34e"><td class="mdescLeft"> </td><td class="mdescRight">Basic read-only std::vector<> wrapping to view a <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> as a sorted list of non-adjacent intervals. <a href="#a7c440e0dfafdb9c1299576f17a52b34e">More...</a><br /></td></tr>
|
||
<tr class="separator:a7c440e0dfafdb9c1299576f17a52b34e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aede4d7f8e8486355c2eb4d9604ed20db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#aede4d7f8e8486355c2eb4d9604ed20db">front</a> () const</td></tr>
|
||
<tr class="separator:aede4d7f8e8486355c2eb4d9604ed20db"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac61a6df7b21becb7105b149b35992fbb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#ac61a6df7b21becb7105b149b35992fbb">back</a> () const</td></tr>
|
||
<tr class="separator:ac61a6df7b21becb7105b149b35992fbb"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ad3bfaa1ea6a1fce5a0c5a8ee61bfca3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#ad3bfaa1ea6a1fce5a0c5a8ee61bfca3f">operator[]</a> (int i) const</td></tr>
|
||
<tr class="separator:ad3bfaa1ea6a1fce5a0c5a8ee61bfca3f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:abae404f5f46ad1b7cd495000aec19639"><td class="memItemLeft" align="right" valign="top">absl::InlinedVector< <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a>, 1 >::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#abae404f5f46ad1b7cd495000aec19639">begin</a> () const</td></tr>
|
||
<tr class="separator:abae404f5f46ad1b7cd495000aec19639"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5c5e5505773dda5ca11ff5fddd70ae9b"><td class="memItemLeft" align="right" valign="top">absl::InlinedVector< <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a>, 1 >::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a5c5e5505773dda5ca11ff5fddd70ae9b">end</a> () const</td></tr>
|
||
<tr class="separator:a5c5e5505773dda5ca11ff5fddd70ae9b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a153837b45a0e9ddf5620679f243baa96"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a153837b45a0e9ddf5620679f243baa96">intervals</a> () const</td></tr>
|
||
<tr class="separator:a153837b45a0e9ddf5620679f243baa96"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
||
Static Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:a5d6343e6f8f0356f0270b25e76aa03b2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a5d6343e6f8f0356f0270b25e76aa03b2">AllValues</a> ()</td></tr>
|
||
<tr class="memdesc:a5d6343e6f8f0356f0270b25e76aa03b2"><td class="mdescLeft"> </td><td class="mdescRight">Returns the full domain Int64. <a href="#a5d6343e6f8f0356f0270b25e76aa03b2">More...</a><br /></td></tr>
|
||
<tr class="separator:a5d6343e6f8f0356f0270b25e76aa03b2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:afb43df1420e70ff6feda3557a1142dfc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#afb43df1420e70ff6feda3557a1142dfc">FromValues</a> (std::vector< int64 > values)</td></tr>
|
||
<tr class="memdesc:afb43df1420e70ff6feda3557a1142dfc"><td class="mdescLeft"> </td><td class="mdescRight">Creates a domain from the union of an unsorted list of integer values. <a href="#afb43df1420e70ff6feda3557a1142dfc">More...</a><br /></td></tr>
|
||
<tr class="separator:afb43df1420e70ff6feda3557a1142dfc"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a3f44e38ea10baff35e9d8f210e5900ed"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a3f44e38ea10baff35e9d8f210e5900ed">FromIntervals</a> (absl::Span< const <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > <a class="el" href="classoperations__research_1_1Domain.html#a153837b45a0e9ddf5620679f243baa96">intervals</a>)</td></tr>
|
||
<tr class="memdesc:a3f44e38ea10baff35e9d8f210e5900ed"><td class="mdescLeft"> </td><td class="mdescRight">Creates a domain from the union of an unsorted list of intervals. <a href="#a3f44e38ea10baff35e9d8f210e5900ed">More...</a><br /></td></tr>
|
||
<tr class="separator:a3f44e38ea10baff35e9d8f210e5900ed"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5840372e81d2500f8aeb77d880d22bc6"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a5840372e81d2500f8aeb77d880d22bc6">FromVectorIntervals</a> (const std::vector< std::vector< int64 > > &<a class="el" href="classoperations__research_1_1Domain.html#a153837b45a0e9ddf5620679f243baa96">intervals</a>)</td></tr>
|
||
<tr class="memdesc:a5840372e81d2500f8aeb77d880d22bc6"><td class="mdescLeft"> </td><td class="mdescRight">This method is available in Python, Java and .NET. <a href="#a5840372e81d2500f8aeb77d880d22bc6">More...</a><br /></td></tr>
|
||
<tr class="separator:a5840372e81d2500f8aeb77d880d22bc6"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a130878d13a4dd79365b1ecfa171b4714"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1Domain.html#a130878d13a4dd79365b1ecfa171b4714">FromFlatIntervals</a> (const std::vector< int64 > &flat_intervals)</td></tr>
|
||
<tr class="memdesc:a130878d13a4dd79365b1ecfa171b4714"><td class="mdescLeft"> </td><td class="mdescRight">This method is available in Python, Java and .NET. <a href="#a130878d13a4dd79365b1ecfa171b4714">More...</a><br /></td></tr>
|
||
<tr class="separator:a130878d13a4dd79365b1ecfa171b4714"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock"><p>We call "domain" any subset of Int64 = [kint64min, kint64max]. </p>
|
||
<p>This class can be used to represent such set efficiently as a sorted and non-adjacent list of intervals. This is efficient as long as the size of such list stays reasonable.In the comments below, the domain of *this will always be written 'D'. </p><dl class="section note"><dt>Note</dt><dd>all the functions are safe with respect to integer overflow. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00070">70</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||
<a id="a8026c98d5255e56fc3f224be687a07c3"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8026c98d5255e56fc3f224be687a07c3">◆ </a></span>Domain() <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">operations_research::Domain::Domain </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>By default, <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> will be empty. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00073">73</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4604d54b843d603bde4f76ef853464e6"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4604d54b843d603bde4f76ef853464e6">◆ </a></span>Domain() <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">operations_research::Domain::Domain </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>value</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Constructor for the common case of a singleton domain. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a8c763d670dcbb2656b8b708bf50d7262"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8c763d670dcbb2656b8b708bf50d7262">◆ </a></span>Domain() <span class="overload">[3/3]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">operations_research::Domain::Domain </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>left</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>right</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Constructor for the common case of a single interval [left, right]. </p>
|
||
<p>If left > right, this will result in the empty domain. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="a714a1473bb78dab3195bd5cd5e90af42"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a714a1473bb78dab3195bd5cd5e90af42">◆ </a></span>AdditionWith()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::AdditionWith </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>domain</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns {x ∈ Int64, ∃ a ∈ D, ∃ b ∈ domain, x = a + b}. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5d6343e6f8f0356f0270b25e76aa03b2"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5d6343e6f8f0356f0270b25e76aa03b2">◆ </a></span>AllValues()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::AllValues </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the full domain Int64. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac61a6df7b21becb7105b149b35992fbb"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac61a6df7b21becb7105b149b35992fbb">◆ </a></span>back()</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="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> operations_research::Domain::back </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> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00244">244</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="abae404f5f46ad1b7cd495000aec19639"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#abae404f5f46ad1b7cd495000aec19639">◆ </a></span>begin()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">absl::InlinedVector<<a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a>, 1>::const_iterator operations_research::Domain::begin </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> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00246">246</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac6beb8d0bb66ee165d94623d5a704abd"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac6beb8d0bb66ee165d94623d5a704abd">◆ </a></span>Complement()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::Complement </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the set Int64 ∖ D. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aca55d3d10ee99aeab77e457d216d8c02"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aca55d3d10ee99aeab77e457d216d8c02">◆ </a></span>Contains()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool operations_research::Domain::Contains </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>value</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns true iff value is in <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a>. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5fa203b31737f4c452a0b04779ce45a8"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5fa203b31737f4c452a0b04779ce45a8">◆ </a></span>ContinuousMultiplicationBy() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::ContinuousMultiplicationBy </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>coeff</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns a super-set of <a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34" title="Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}.">MultiplicationBy()</a> to avoid the explosion in the representation size. </p>
|
||
<p>This behaves as if we replace the set D of non-adjacent integer intervals by the set of floating-point element in the same intervals.For instance, [1, 100] * 2 will be transformed in [2, 200] and not in [2][4][6]...[200] like in <a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34" title="Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}.">MultiplicationBy()</a>. Note that this would be similar to a InverseDivisionBy(), but not quite the same because if we look for {x ∈ Int64, ∃ e ∈ D, x / coeff = e}, then we will get [2, 201] in the case above. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4c1fd36870e1dbf2029c462d3fb3d517"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4c1fd36870e1dbf2029c462d3fb3d517">◆ </a></span>ContinuousMultiplicationBy() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::ContinuousMultiplicationBy </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>domain</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns a super-set of <a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34" title="Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}.">MultiplicationBy()</a> to avoid the explosion in the representation size. </p>
|
||
<p>This behaves as if we replace the set D of non-adjacent integer intervals by the set of floating-point element in the same intervals.For instance, [1, 100] * 2 will be transformed in [2, 200] and not in [2][4][6]...[200] like in <a class="el" href="classoperations__research_1_1Domain.html#a0d8ff8a937591b31265b86db6353fa34" title="Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}.">MultiplicationBy()</a>. Note that this would be similar to a InverseDivisionBy(), but not quite the same because if we look for {x ∈ Int64, ∃ e ∈ D, x / coeff = e}, then we will get [2, 201] in the case above. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a9f653103edc20fa77ecdd7708c76d037"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a9f653103edc20fa77ecdd7708c76d037">◆ </a></span>DivisionBy()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::DivisionBy </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>coeff</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns {x ∈ Int64, ∃ e ∈ D, x = e / coeff}. </p>
|
||
<p>For instance Domain(1, 7).DivisionBy(2) == Domain(0, 3). </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5c5e5505773dda5ca11ff5fddd70ae9b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5c5e5505773dda5ca11ff5fddd70ae9b">◆ </a></span>end()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">absl::InlinedVector<<a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a>, 1>::const_iterator operations_research::Domain::end </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> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00249">249</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a2de0f6b61253050ad242107ce42ba825"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2de0f6b61253050ad242107ce42ba825">◆ </a></span>FlattenedIntervals()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector<int64> operations_research::Domain::FlattenedIntervals </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>This method returns the flattened list of interval bounds of the domain. </p>
|
||
<p>Thus the domain {0, 1, 2, 5, 8, 9, 10} will return <a href="as a C++ std::vector<int64>, as a java or C# long[], as
|
||
a python list of integers">0, 2, 5, 5, 8, 10</a>. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a130878d13a4dd79365b1ecfa171b4714"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a130878d13a4dd79365b1ecfa171b4714">◆ </a></span>FromFlatIntervals()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::FromFlatIntervals </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< int64 > & </td>
|
||
<td class="paramname"><em>flat_intervals</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>This method is available in Python, Java and .NET. </p>
|
||
<p>It allows building a <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> object from a flattened list of intervals (long[] in Java and .NET, [0, 2, 5, 5, 8, 10] in python). </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a3f44e38ea10baff35e9d8f210e5900ed"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a3f44e38ea10baff35e9d8f210e5900ed">◆ </a></span>FromIntervals()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::FromIntervals </td>
|
||
<td>(</td>
|
||
<td class="paramtype">absl::Span< const <a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> > </td>
|
||
<td class="paramname"><em>intervals</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Creates a domain from the union of an unsorted list of intervals. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="afb43df1420e70ff6feda3557a1142dfc"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#afb43df1420e70ff6feda3557a1142dfc">◆ </a></span>FromValues()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::FromValues </td>
|
||
<td>(</td>
|
||
<td class="paramtype">std::vector< int64 > </td>
|
||
<td class="paramname"><em>values</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Creates a domain from the union of an unsorted list of integer values. </p>
|
||
<p>Input values may be repeated, with no consequence on the output </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5840372e81d2500f8aeb77d880d22bc6"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5840372e81d2500f8aeb77d880d22bc6">◆ </a></span>FromVectorIntervals()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::FromVectorIntervals </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< std::vector< int64 > > & </td>
|
||
<td class="paramname"><em>intervals</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>This method is available in Python, Java and .NET. </p>
|
||
<p>It allows building a <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> object from a list of intervals (long[][] in Java and .NET, [[0, 2], [5, 5], [8, 10]] in python). </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aede4d7f8e8486355c2eb4d9604ed20db"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aede4d7f8e8486355c2eb4d9604ed20db">◆ </a></span>front()</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="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> operations_research::Domain::front </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> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00243">243</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4bf09b90ae38afd5bd3aa87ed5e0dc04"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4bf09b90ae38afd5bd3aa87ed5e0dc04">◆ </a></span>IntersectionWith()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::IntersectionWith </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>domain</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the set D ∩ domain. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a153837b45a0e9ddf5620679f243baa96"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a153837b45a0e9ddf5620679f243baa96">◆ </a></span>intervals()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::vector<<a class="el" href="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a>> operations_research::Domain::intervals </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> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd></dd></dl>
|
||
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>(user): remove, this makes a copy and is of a different type that our internal InlinedVector() anyway.</dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00258">258</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a3b6727dfefc8413b855926e1c4d27da6"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a3b6727dfefc8413b855926e1c4d27da6">◆ </a></span>InverseMultiplicationBy()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::InverseMultiplicationBy </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const int64 </td>
|
||
<td class="paramname"><em>coeff</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns {x ∈ Int64, ∃ e ∈ D, x * coeff = e}. </p>
|
||
<p>For instance Domain(1, 7).InverseMultiplicationBy(2) == Domain(1, 3). </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7f13c8b45290e4cf8889c4e677b0cd85"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7f13c8b45290e4cf8889c4e677b0cd85">◆ </a></span>IsEmpty()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool operations_research::Domain::IsEmpty </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns true if this is the empty set. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a770758f5d9d0569a04c3e203cb2ce216"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a770758f5d9d0569a04c3e203cb2ce216">◆ </a></span>IsIncludedIn()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool operations_research::Domain::IsIncludedIn </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>domain</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns true iff D is included in the given domain. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a23a06dbf9d08cc91d8de1fe86b8bccc9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a23a06dbf9d08cc91d8de1fe86b8bccc9">◆ </a></span>Max()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int64 operations_research::Domain::Max </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the domain max value. </p>
|
||
<p>It checks that the domain is not empty. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a9ed997be60938397604bc2761b0c6775"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a9ed997be60938397604bc2761b0c6775">◆ </a></span>Min()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int64 operations_research::Domain::Min </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the domain min value. </p>
|
||
<p>It checks that the domain is not empty. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a0d8ff8a937591b31265b86db6353fa34"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a0d8ff8a937591b31265b86db6353fa34">◆ </a></span>MultiplicationBy()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::MultiplicationBy </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int64 </td>
|
||
<td class="paramname"><em>coeff</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">bool * </td>
|
||
<td class="paramname"><em>exact</em> = <code>nullptr</code> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns {x ∈ Int64, ∃ e ∈ D, x = e * coeff}. </p>
|
||
<dl class="section note"><dt>Note</dt><dd>because the resulting domain will only contains multiple of coeff, the size of intervals.size() can become really large. If it is larger than a fixed constant, exact will be set to false and the result will be set to ContinuousMultiplicationBy(coeff). </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4b24ac9e300406590558a82ae378db1e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4b24ac9e300406590558a82ae378db1e">◆ </a></span>Negation()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::Negation </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns {x ∈ Int64, ∃ e ∈ D, x = -e}. </p>
|
||
<p>Note in particular that if the negation of Int64 is not Int64 but Int64 \ {kint64min} !! </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7c440e0dfafdb9c1299576f17a52b34e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7c440e0dfafdb9c1299576f17a52b34e">◆ </a></span>NumIntervals()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int operations_research::Domain::NumIntervals </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> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Basic read-only std::vector<> wrapping to view a <a class="el" href="classoperations__research_1_1Domain.html" title="We call "domain" any subset of Int64 = [kint64min, kint64max].">Domain</a> as a sorted list of non-adjacent intervals. </p>
|
||
<p>Note that we don't expose size() which might be confused with the number of values in the domain. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00241">241</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="afc2fcedb7011ed72d191ca8be79e2ec7"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#afc2fcedb7011ed72d191ca8be79e2ec7">◆ </a></span>operator!=()</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::Domain::operator!= </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>other</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00233">233</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a27c69d2928356d00ee0624323e116fc8"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a27c69d2928356d00ee0624323e116fc8">◆ </a></span>operator<()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool operations_research::Domain::operator< </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>other</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Lexicographic order on the <a class="el" href="classoperations__research_1_1Domain.html#a153837b45a0e9ddf5620679f243baa96">intervals()</a> representation. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="acf15b6795a380eeb7521e1a8e15ee5d9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#acf15b6795a380eeb7521e1a8e15ee5d9">◆ </a></span>operator==()</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::Domain::operator== </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>other</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00229">229</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ad3bfaa1ea6a1fce5a0c5a8ee61bfca3f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ad3bfaa1ea6a1fce5a0c5a8ee61bfca3f">◆ </a></span>operator[]()</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="structoperations__research_1_1ClosedInterval.html">ClosedInterval</a> operations_research::Domain::operator[] </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>i</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="sorted__interval__list_8h_source.html#l00245">245</a> of file <a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ab06560137156458393e8f44acfd01712"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ab06560137156458393e8f44acfd01712">◆ </a></span>RelaxIfTooComplex()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::RelaxIfTooComplex </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>If <a class="el" href="classoperations__research_1_1Domain.html#a7c440e0dfafdb9c1299576f17a52b34e" title="Basic read-only std::vector<> wrapping to view a Domain as a sorted list of non-adjacent intervals.">NumIntervals()</a> is too large, this return a superset of the domain. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a0217b50fb7a5dc20f697ef3d0b14ec41"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a0217b50fb7a5dc20f697ef3d0b14ec41">◆ </a></span>SimplifyUsingImpliedDomain()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::SimplifyUsingImpliedDomain </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>implied_domain</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Advanced usage. </p>
|
||
<p>Given some "implied" information on this domain that is assumed to be always true (i.e. only values in the intersection with implied domain matter), this function will simplify the current domain without changing the set of "possible values".More precisely, this will:</p><ul>
|
||
<li>Take the intersection with implied_domain.</li>
|
||
<li>Minimize the number of intervals. That is, if the domain is like [1,2][4] and implied is [1][4], then the domain can be relaxed to [1, 4] to simplify its complexity without changing the set of admissible value assuming only implied values can be seen.</li>
|
||
<li>Restrict as much as possible the bounds of the remaining intervals. I.e if the input is [1,2] and implied is [0,4], then the domain will not be changed.<dl class="section note"><dt>Note</dt><dd>domain.SimplifyUsingImpliedDomain(domain) will just return [domain.Min(), domain.Max()]. This is meant to be applied to the rhs of a constraint to make its propagation more efficient. </dd></dl>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="afc9e0537e74ddbb050a001b96f4ca05c"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#afc9e0537e74ddbb050a001b96f4ca05c">◆ </a></span>Size()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int64 operations_research::Domain::Size </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the number of elements in the domain. It is capped at kint64max. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a94b8d91180431ec7bf1073c2a8538f70"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a94b8d91180431ec7bf1073c2a8538f70">◆ </a></span>ToString()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::string operations_research::Domain::ToString </td>
|
||
<td>(</td>
|
||
<td class="paramname"></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns a compact std::string of a vector of intervals like "[1,4][6][10,20]". </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac33030581b21c1e9fc6ec13a0486c28e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac33030581b21c1e9fc6ec13a0486c28e">◆ </a></span>UnionWith()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1Domain.html">Domain</a> operations_research::Domain::UnionWith </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const <a class="el" href="classoperations__research_1_1Domain.html">Domain</a> & </td>
|
||
<td class="paramname"><em>domain</em></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the set D ∪ domain. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||
<li><a class="el" href="sorted__interval__list_8h_source.html">sorted_interval_list.h</a></li>
|
||
</ul>
|
||
</div><!-- contents -->
|
||
</div>
|
||
<div id="footer-container">
|
||
<div id="footer">
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|