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" >
2021-04-27 23:00:03 +02:00
< span id = "sfml" > Google OR-Tools 9.0< / 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 >
2021-01-26 11:28:50 +01:00
<!-- Generated by Doxygen 1.9.1 -->
2020-09-01 16:00:33 +02:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
2021-01-26 11:28:50 +01:00
var searchBox = new SearchBox("searchBox", "search",false,'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" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& 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 >
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" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('namespaceoperations__research.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 >
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 >
2019-06-13 15:51:12 +02:00
< div class = "headertitle" >
< div class = "title" > operations_research Namespace Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< 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_1_1sat" > < td class = "memItemLeft" align = "right" valign = "top" >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research_1_1sat.html" > sat< / a > < / td > < / tr >
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "nested-classes" > < / a >
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 >
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 >
2021-01-26 11:28:50 +01: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_shared_time_limit.html" > SharedTimeLimit< / a > < / 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_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 >
2019-06-13 15:51:12 +02:00
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:a5c341d9214d5d46014089435ba0e26d3" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#a5c341d9214d5d46014089435ba0e26d3" > operator< < < / a > (std::ostream & out, const < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > & interval)< / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:a5c341d9214d5d46014089435ba0e26d3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:aaa301d39d2a9271daf8c65e779635335" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#aaa301d39d2a9271daf8c65e779635335" > operator< < < / a > (std::ostream & out, const std::vector< < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > > & intervals)< / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:aaa301d39d2a9271daf8c65e779635335" > < 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 >
2019-11-14 13:52:51 -08: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 >
2020-10-09 12:00:09 +02:00
< tr class = "memitem:abebf3070a940da6bf678953a66584e76" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespaceoperations__research.html#abebf3070a940da6bf678953a66584e76" > operator< < < / a > (std::ostream & out, const < a class = "el" href = "classoperations__research_1_1_domain.html" > Domain< / a > & domain)< / td > < / tr >
2019-06-13 15:51:12 +02:00
< tr class = "separator:abebf3070a940da6bf678953a66584e76" > < 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 >
2019-06-13 15:51:12 +02:00
< a id = "ab8c23924c4b61ed5c531424a6f18bde1" > < / a >
< 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 >
< a id = "a5c341d9214d5d46014089435ba0e26d3" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a5c341d9214d5d46014089435ba0e26d3" > ◆ < / a > < / span > operator< < () < span class = "overload" > [1/3]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > std::ostream& operations_research::operator< < < / td >
< 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 >
2019-11-14 13:52:51 -08:00
< a id = "abebf3070a940da6bf678953a66584e76" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#abebf3070a940da6bf678953a66584e76" > ◆ < / 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 >
< td class = "memname" > std::ostream& operations_research::operator< < < / td >
< 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 = "classoperations__research_1_1_domain.html" > Domain< / a > &   < / td >
2019-11-14 13:52:51 -08:00
< 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 >
2019-11-14 13:52:51 -08:00
< a id = "aaa301d39d2a9271daf8c65e779635335" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aaa301d39d2a9271daf8c65e779635335" > ◆ < / 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 >
< td class = "memname" > std::ostream& operations_research::operator< < < / td >
< 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 std::vector< < a class = "el" href = "structoperations__research_1_1_closed_interval.html" > ClosedInterval< / a > > &   < / td >
2019-11-14 13:52:51 -08:00
< td class = "paramname" > < em > intervals< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2021-04-27 23:00:03 +02:00
< a id = "aeab50e8a6cadc29a421918a966df360f" > < / a >
< 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 >
2021-04-27 23:00:03 +02:00
< a id = "a6fb2cc3382534da86167bf6644e057e7" > < / a >
< 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 >