2019-06-13 15:51:12 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< title > OR-Tools< / title >
< meta http-equiv = "Content-Type" content = "text/html;" / >
< meta charset = "utf-8" / >
<!-- <link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/> -->
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
2020-09-01 16:00:33 +02:00
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< link href = "styleSheet.tmp.css" rel = "stylesheet" type = "text/css" / >
2019-06-13 15:51:12 +02:00
< / head >
< body >
< div id = "banner-container" >
< div id = "banner" >
2022-03-04 00:11:33 +01:00
< span id = "sfml" > Google OR-Tools 9.3< / span >
2019-06-13 15:51:12 +02:00
< / div >
< / div >
2019-08-07 18:01:08 -07:00
< div id = "content" style = "width: 100%; overflow: hidden;" >
< div style = "margin-left: 15px; margin-top: 5px; float: left; color: #145A32;" >
2019-08-12 09:16:03 -07:00
< h2 > C++ Reference< / h2 >
2019-08-07 18:01:08 -07:00
< ul >
< li > < a href = "../cpp_algorithms/annotated.html" > Algorithms< / a > < / li >
2019-08-12 09:16:03 -07:00
< li > < a href = "../cpp_sat/annotated.html" > CP-SAT< / a > < / li >
2019-08-07 18:01:08 -07:00
< li > < a href = "../cpp_graph/annotated.html" > Graph< / a > < / li >
< li > < a href = "../cpp_routing/annotated.html" > Routing< / a > < / li >
< li > < a href = "../cpp_linear/annotated.html" > Linear solver< / a > < / li >
< / ul >
< / div >
2019-06-13 15:51:12 +02:00
< div id = "content" >
2019-08-07 18:01:08 -07:00
< div align = "center" >
< h1 style = "color: #145A32;" > C++ Reference: CP-SAT< / h1 >
< / div >
2022-01-17 21:42:14 +01:00
<!-- Generated by Doxygen 1.9.3 -->
2020-09-01 16:00:33 +02:00
< script type = "text/javascript" >
2022-01-17 21:42:14 +01:00
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
2020-09-01 16:00:33 +02:00
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
2022-01-17 21:42:14 +01:00
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
2020-09-01 16:00:33 +02:00
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
2022-01-17 21:42:14 +01:00
/* @license-end */
< / script >
2020-09-01 16:00:33 +02:00
< div id = "main-nav" > < / div >
2019-08-07 18:01:08 -07:00
< / div > <!-- top -->
2020-09-01 16:00:33 +02:00
< 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" >
2022-01-17 21:42:14 +01:00
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(document).ready(function(){initNavTree('namespaceoperations__research.html',''); initResizable(); });
2020-09-01 16:00:33 +02:00
/* @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 >
2019-06-13 15:51:12 +02:00
< div class = "header" >
< div class = "summary" >
< a href = "#namespaces" > Namespaces< / a > |
< a href = "#nested-classes" > Classes< / a > |
2020-06-11 12:23:09 +02:00
< a href = "#func-members" > Functions< / a > < / div >
2022-01-17 21:42:14 +01:00
< div class = "headertitle" > < div class = "title" > operations_research Namespace Reference< / div > < / div >
2019-06-13 15:51:12 +02:00
< / div > <!-- header -->
< div class = "contents" >
< table class = "memberdecls" >
2022-01-17 21:42:14 +01:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "namespaces" name = "namespaces" > < / a >
2019-06-13 15:51:12 +02:00
Namespaces< / h2 > < / td > < / tr >
2022-01-17 21:42:14 +01:00
< tr class = "memitem:namespaceoperations__research_1_1sat" > < td class = "memItemLeft" align = "right" valign = "top" > namespace   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research_1_1sat.html" > sat< / a > < / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
2022-01-17 21:42:14 +01:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "nested-classes" name = "nested-classes" > < / a >
2019-06-13 15:51:12 +02:00
Classes< / h2 > < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > struct   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > < / td > < / tr >
< tr class = "memdesc:" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Represents a closed interval [start, end]. < a href = "structoperations__research_1_1_closed_interval.html#details" > More...< / a > < br / > < / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > < / td > < / tr >
< tr class = "memdesc:" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > We call < em > domain< / em > any subset of Int64 = [kint64min, kint64max]. < a href = "classoperations__research_1_1_domain.html#details" > More...< / a > < br / > < / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2021-09-20 15:57:27 +02:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classoperations__research_1_1_nested_time_limit.html" > NestedTimeLimit< / a > < / td > < / tr >
< tr class = "memdesc:" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Provides a way to nest time limits for algorithms where a certain part of the computation is bounded not just by the overall time limit, but also by a stricter time limit specific just for this particular part. < a href = "classoperations__research_1_1_nested_time_limit.html#details" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classoperations__research_1_1_shared_time_limit.html" > SharedTimeLimit< / a > < / td > < / tr >
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classoperations__research_1_1_sorted_disjoint_interval_list.html" > SortedDisjointIntervalList< / a > < / td > < / tr >
< tr class = "memdesc:" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > This class represents a sorted list of disjoint, closed intervals. < a href = "classoperations__research_1_1_sorted_disjoint_interval_list.html#details" > More...< / a > < br / > < / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classoperations__research_1_1_time_limit.html" > TimeLimit< / a > < / td > < / tr >
< tr class = "memdesc:" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > A simple class to enforce both an elapsed time limit and a deterministic time limit in the same thread as a program. < a href = "classoperations__research_1_1_time_limit.html#details" > More...< / a > < br / > < / td > < / tr >
2019-09-03 15:42:34 +02:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-06-13 15:51:12 +02:00
< / table > < table class = "memberdecls" >
2022-01-17 21:42:14 +01:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "func-members" name = "func-members" > < / a >
2019-06-13 15:51:12 +02:00
Functions< / h2 > < / td > < / tr >
2022-01-17 21:42:14 +01:00
< tr class = "memitem:aa0a912cba095e3c41bffc8d447be109c" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#aa0a912cba095e3c41bffc8d447be109c" > operator< < < / a > (std::ostream & out, const < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > & interval)< / td > < / tr >
< tr class = "separator:aa0a912cba095e3c41bffc8d447be109c" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a915518d4960abbd5e49852e0e00614a3" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#a915518d4960abbd5e49852e0e00614a3" > operator< < < / a > (std::ostream & out, const std::vector< < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > > & intervals)< / td > < / tr >
< tr class = "separator:a915518d4960abbd5e49852e0e00614a3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:ab8c23924c4b61ed5c531424a6f18bde1" > < td class = "memItemLeft" align = "right" valign = "top" > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#ab8c23924c4b61ed5c531424a6f18bde1" > IntervalsAreSortedAndNonAdjacent< / a > (absl::Span< const < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > > intervals)< / td > < / tr >
2022-01-17 21:42:14 +01:00
< tr class = "memdesc:ab8c23924c4b61ed5c531424a6f18bde1" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Returns true iff we have: < a href = "namespaceoperations__research.html#ab8c23924c4b61ed5c531424a6f18bde1" > More...< / a > < br / > < / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:ab8c23924c4b61ed5c531424a6f18bde1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2022-01-17 21:42:14 +01:00
< tr class = "memitem:ae63c644a083ff23befa7a5bf51758afb" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#ae63c644a083ff23befa7a5bf51758afb" > operator< < < / a > (std::ostream & out, const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > & domain)< / td > < / tr >
< tr class = "separator:ae63c644a083ff23befa7a5bf51758afb" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2021-04-27 23:00:03 +02:00
< tr class = "memitem:a6fb2cc3382534da86167bf6644e057e7" > < td class = "memItemLeft" align = "right" valign = "top" > int64_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#a6fb2cc3382534da86167bf6644e057e7" > SumOfKMinValueInDomain< / a > (const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > & domain, int k)< / td > < / tr >
< tr class = "separator:a6fb2cc3382534da86167bf6644e057e7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aeab50e8a6cadc29a421918a966df360f" > < td class = "memItemLeft" align = "right" valign = "top" > int64_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#aeab50e8a6cadc29a421918a966df360f" > SumOfKMaxValueInDomain< / a > (const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > & domain, int k)< / td > < / tr >
< tr class = "separator:aeab50e8a6cadc29a421918a966df360f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-06-13 15:51:12 +02:00
< / table >
2019-08-12 23:18:10 -07:00
< h2 class = "groupheader" > Function Documentation< / h2 >
2022-01-17 21:42:14 +01:00
< a id = "ab8c23924c4b61ed5c531424a6f18bde1" name = "ab8c23924c4b61ed5c531424a6f18bde1" > < / a >
2019-06-13 15:51:12 +02:00
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab8c23924c4b61ed5c531424a6f18bde1" > ◆ < / a > < / span > IntervalsAreSortedAndNonAdjacent()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > bool operations_research::IntervalsAreSortedAndNonAdjacent < / td >
< td > (< / td >
2020-10-09 12:00:09 +02:00
< td class = "paramtype" > absl::Span< const < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > >   < / td >
2019-06-13 15:51:12 +02:00
< td class = "paramname" > < em > intervals< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Returns true iff we have: < / p >
< ul >
< li > The intervals appear in increasing order.< / li >
2020-04-23 15:34:43 +02:00
< li > for all i: intervals[i].start < = intervals[i].end (should always be true, by construction, but bad intervals can in practice escape detection in opt mode).< / li >
2019-06-13 15:51:12 +02:00
< li > for all i but the last: intervals[i].end + 1 < intervals[i+1].start < / li >
< / ul >
< / div >
< / div >
2022-01-17 21:42:14 +01:00
< a id = "aa0a912cba095e3c41bffc8d447be109c" name = "aa0a912cba095e3c41bffc8d447be109c" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aa0a912cba095e3c41bffc8d447be109c" > ◆ < / a > < / span > operator< < () < span class = "overload" > [1/3]< / span > < / h2 >
2019-06-13 15:51:12 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2022-01-17 21:42:14 +01:00
< td class = "memname" > std::ostream & operations_research::operator< < < / td >
2019-06-13 15:51:12 +02:00
< td > (< / td >
< td class = "paramtype" > std::ostream &   < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2020-10-09 12:00:09 +02:00
< td class = "paramtype" > const < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > &   < / td >
2019-06-13 15:51:12 +02:00
< td class = "paramname" > < em > interval< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2022-01-17 21:42:14 +01:00
< a id = "ae63c644a083ff23befa7a5bf51758afb" name = "ae63c644a083ff23befa7a5bf51758afb" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ae63c644a083ff23befa7a5bf51758afb" > ◆ < / a > < / span > operator< < () < span class = "overload" > [2/3]< / span > < / h2 >
2019-06-13 15:51:12 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2022-01-17 21:42:14 +01:00
< td class = "memname" > std::ostream & operations_research::operator< < < / td >
2019-06-13 15:51:12 +02:00
< td > (< / td >
< td class = "paramtype" > std::ostream &   < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2022-01-17 21:42:14 +01:00
< td class = "paramtype" > const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > &   < / td >
< td class = "paramname" > < em > domain< / em >   < / td >
2019-06-13 15:51:12 +02:00
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2022-01-17 21:42:14 +01:00
< a id = "a915518d4960abbd5e49852e0e00614a3" name = "a915518d4960abbd5e49852e0e00614a3" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a915518d4960abbd5e49852e0e00614a3" > ◆ < / a > < / span > operator< < () < span class = "overload" > [3/3]< / span > < / h2 >
2019-06-13 15:51:12 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2022-01-17 21:42:14 +01:00
< td class = "memname" > std::ostream & operations_research::operator< < < / td >
2019-06-13 15:51:12 +02:00
< td > (< / td >
< td class = "paramtype" > std::ostream &   < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2022-01-17 21:42:14 +01:00
< td class = "paramtype" > const std::vector< < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > > &   < / td >
< td class = "paramname" > < em > intervals< / em >   < / td >
2019-11-14 13:52:51 -08:00
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2022-01-17 21:42:14 +01:00
< a id = "aeab50e8a6cadc29a421918a966df360f" name = "aeab50e8a6cadc29a421918a966df360f" > < / a >
2021-04-27 23:00:03 +02:00
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aeab50e8a6cadc29a421918a966df360f" > ◆ < / a > < / span > SumOfKMaxValueInDomain()< / h2 >
2019-11-14 13:52:51 -08:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2021-04-27 23:00:03 +02:00
< td class = "memname" > int64_t operations_research::SumOfKMaxValueInDomain < / td >
2019-11-14 13:52:51 -08:00
< td > (< / td >
2020-10-09 12:00:09 +02:00
< td class = "paramtype" > const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > &   < / td >
2019-11-14 13:52:51 -08:00
< td class = "paramname" > < em > domain< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int  < / td >
< td class = "paramname" > < em > k< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2022-01-17 21:42:14 +01:00
< a id = "a6fb2cc3382534da86167bf6644e057e7" name = "a6fb2cc3382534da86167bf6644e057e7" > < / a >
2021-04-27 23:00:03 +02:00
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a6fb2cc3382534da86167bf6644e057e7" > ◆ < / a > < / span > SumOfKMinValueInDomain()< / h2 >
2019-11-14 13:52:51 -08:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2021-04-27 23:00:03 +02:00
< td class = "memname" > int64_t operations_research::SumOfKMinValueInDomain < / td >
2019-11-14 13:52:51 -08:00
< td > (< / td >
2020-10-09 12:00:09 +02:00
< td class = "paramtype" > const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > &   < / td >
2019-11-14 13:52:51 -08:00
< td class = "paramname" > < em > domain< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > int  < / td >
< td class = "paramname" > < em > k< / em >   < / td >
2019-06-13 15:51:12 +02:00
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< / div > <!-- contents -->
2020-09-01 16:00:33 +02:00
< / div > <!-- doc - content -->
2019-08-07 18:01:08 -07:00
< / div >
2019-06-13 15:51:12 +02:00
< / div >
< div id = "footer-container" >
< div id = "footer" >
< / div >
< / div >
< / body >
< / html >