Files
ortools-clone/docs/cpp/classoperations__research_1_1sat_1_1LinearExpr.html
2020-09-01 16:01:06 +02:00

628 lines
43 KiB
HTML

<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: LinearExpr</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="orLogo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">OR-Tools
&#160;<span id="projectnumber">8.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classoperations__research_1_1sat_1_1LinearExpr.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classoperations__research_1_1sat_1_1LinearExpr-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">LinearExpr</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A dedicated container for linear expressions. </p>
<p>This class helps building and manipulating linear expressions. With the use of implicit constructors, it can accept integer values, Boolean and Integer variables. Note that Not(x) will be silently transformed into 1 - x when added to the linear expression.</p>
<p>Furthermore, static methods allows sums and scalar products, with or without an additional constant.</p>
<p>Usage: </p><div class="fragment"><div class="line">CpModelBuilder cp_model;</div>
<div class="line">IntVar x = <a class="code" href="gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf">model</a>.NewIntVar(0, 10, <span class="stringliteral">&quot;x&quot;</span>);</div>
<div class="line">IntVar y = <a class="code" href="gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf">model</a>.NewIntVar(0, 10, <span class="stringliteral">&quot;y&quot;</span>);</div>
<div class="line">BoolVar <a class="code" href="constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6">b</a> = <a class="code" href="gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf">model</a>.NewBoolVar().WithName(<span class="stringliteral">&quot;b&quot;</span>);</div>
<div class="line">BoolVar c = <a class="code" href="gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf">model</a>.NewBoolVar().WithName(<span class="stringliteral">&quot;c&quot;</span>);</div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e1(x); <span class="comment">// e1 = x.</span></div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e2 = <a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a3fed00a6900fe3450a1981785464c780">LinearExpr::Sum</a>({x, y}).<a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a28b47ae47799acd3b91099dfb9b9aa85">AddConstant</a>(5); <span class="comment">// e2 = x + y + 5;</span></div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e3 = <a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a11cfbb04180277e0f6a802e277e316c2">LinearExpr::ScalProd</a>({x, y}, {2, -1}); <span class="comment">// e3 = 2 * x - y.</span></div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e4(<a class="code" href="constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6">b</a>); <span class="comment">// e4 = b.</span></div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e5(<a class="code" href="constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6">b</a>.Not()); <span class="comment">// e5 = 1 - b.</span></div>
<div class="line"><span class="comment">// If passing a std::vector&lt;BoolVar&gt;, a specialized method must be called.</span></div>
<div class="line">std::vector&lt;BoolVar&gt; bools = {<a class="code" href="constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6">b</a>, <a class="code" href="namespaceoperations__research_1_1sat.html#a7ac491fd74967da4f340617ad11677ec">Not</a>(c)};</div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e6 = <a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a6c753834bf59f3323d1f10b9c71cb8b3">LinearExpr::BooleanSum</a>(bools); <span class="comment">// e6 = b + 1 - c;</span></div>
<div class="line"><span class="comment">// e7 = -3 * b + 1 - c;</span></div>
<div class="line"><a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> e7 = <a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a3f3d483e05bff4b9f36ccf4367328a19">LinearExpr::BooleanScalProd</a>(bools, {-3, 1});</div>
</div><!-- fragment --><p> This can be used implicitly in some of the <a class="el" href="classoperations__research_1_1sat_1_1CpModelBuilder.html" title="Wrapper class around the cp_model proto.">CpModelBuilder</a> methods. </p><div class="fragment"><div class="line">cp_model.AddGreaterThan(x, 5); <span class="comment">// x &gt; 5</span></div>
<div class="line">cp_model.AddEquality(x, <a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a>(y).<a class="code" href="classoperations__research_1_1sat_1_1LinearExpr.html#a28b47ae47799acd3b91099dfb9b9aa85">AddConstant</a>(5)); <span class="comment">// x == y + 5</span></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="cp__model_8h_source.html#l00248">248</a> of file <a class="el" href="cp__model_8h_source.html">cp_model.h</a>.</p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a708e7b52aae1fa3c440ef7ced3f06cd9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">LinearExpr</a> ()</td></tr>
<tr class="separator:a708e7b52aae1fa3c440ef7ced3f06cd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9556910050b0975ea15c090d9f0ae801"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a9556910050b0975ea15c090d9f0ae801">LinearExpr</a> (<a class="el" href="classoperations__research_1_1sat_1_1BoolVar.html">BoolVar</a> <a class="el" href="sat__solver_8cc.html#a8392bdc4ed570e6a95c7fca35b09f83f">var</a>)</td></tr>
<tr class="memdesc:a9556910050b0975ea15c090d9f0ae801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a linear expression from a Boolean variable. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a9556910050b0975ea15c090d9f0ae801">More...</a><br /></td></tr>
<tr class="separator:a9556910050b0975ea15c090d9f0ae801"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6acce576bf92bd4158eed2a55840e4a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a6acce576bf92bd4158eed2a55840e4a3">LinearExpr</a> (<a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> <a class="el" href="sat__solver_8cc.html#a8392bdc4ed570e6a95c7fca35b09f83f">var</a>)</td></tr>
<tr class="memdesc:a6acce576bf92bd4158eed2a55840e4a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a linear expression from an integer variable. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a6acce576bf92bd4158eed2a55840e4a3">More...</a><br /></td></tr>
<tr class="separator:a6acce576bf92bd4158eed2a55840e4a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c095e393028e08704f04f269ae2e0cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a9c095e393028e08704f04f269ae2e0cc">LinearExpr</a> (<a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#ae5d09f03aa97474f2893f9fc46a496ec">constant</a>)</td></tr>
<tr class="memdesc:a9c095e393028e08704f04f269ae2e0cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a constant linear expression. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a9c095e393028e08704f04f269ae2e0cc">More...</a><br /></td></tr>
<tr class="separator:a9c095e393028e08704f04f269ae2e0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28b47ae47799acd3b91099dfb9b9aa85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a28b47ae47799acd3b91099dfb9b9aa85">AddConstant</a> (<a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="el" href="matrix__utils_8cc.html#aee90379adb0307effb138f4871edbc5c">value</a>)</td></tr>
<tr class="memdesc:a28b47ae47799acd3b91099dfb9b9aa85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a constant value to the linear expression. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a28b47ae47799acd3b91099dfb9b9aa85">More...</a><br /></td></tr>
<tr class="separator:a28b47ae47799acd3b91099dfb9b9aa85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb6bbd3a68fe3281780b6bc74dcb3716"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#acb6bbd3a68fe3281780b6bc74dcb3716">AddVar</a> (<a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> <a class="el" href="sat__solver_8cc.html#a8392bdc4ed570e6a95c7fca35b09f83f">var</a>)</td></tr>
<tr class="memdesc:acb6bbd3a68fe3281780b6bc74dcb3716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a single integer variable to the linear expression. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#acb6bbd3a68fe3281780b6bc74dcb3716">More...</a><br /></td></tr>
<tr class="separator:acb6bbd3a68fe3281780b6bc74dcb3716"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab00374af3fbd853d2d5f04a5ca608ec2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#ab00374af3fbd853d2d5f04a5ca608ec2">AddTerm</a> (<a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> <a class="el" href="sat__solver_8cc.html#a8392bdc4ed570e6a95c7fca35b09f83f">var</a>, <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> coeff)</td></tr>
<tr class="memdesc:ab00374af3fbd853d2d5f04a5ca608ec2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a term (var * coeff) to the linear expression. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#ab00374af3fbd853d2d5f04a5ca608ec2">More...</a><br /></td></tr>
<tr class="separator:ab00374af3fbd853d2d5f04a5ca608ec2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa96427ca5156644ef61e4ffec3ea4083"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#aa96427ca5156644ef61e4ffec3ea4083">variables</a> () const</td></tr>
<tr class="memdesc:aa96427ca5156644ef61e4ffec3ea4083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the vector of variables. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#aa96427ca5156644ef61e4ffec3ea4083">More...</a><br /></td></tr>
<tr class="separator:aa96427ca5156644ef61e4ffec3ea4083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad93e8152b59e0db58d7e5ba4a525dd81"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#ad93e8152b59e0db58d7e5ba4a525dd81">coefficients</a> () const</td></tr>
<tr class="memdesc:ad93e8152b59e0db58d7e5ba4a525dd81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the vector of coefficients. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#ad93e8152b59e0db58d7e5ba4a525dd81">More...</a><br /></td></tr>
<tr class="separator:ad93e8152b59e0db58d7e5ba4a525dd81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5d09f03aa97474f2893f9fc46a496ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#ae5d09f03aa97474f2893f9fc46a496ec">constant</a> () const</td></tr>
<tr class="memdesc:ae5d09f03aa97474f2893f9fc46a496ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the constant term. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#ae5d09f03aa97474f2893f9fc46a496ec">More...</a><br /></td></tr>
<tr class="separator:ae5d09f03aa97474f2893f9fc46a496ec"><td class="memSeparator" colspan="2">&#160;</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:a3fed00a6900fe3450a1981785464c780"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a3fed00a6900fe3450a1981785464c780">Sum</a> (absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> &gt; vars)</td></tr>
<tr class="memdesc:a3fed00a6900fe3450a1981785464c780"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the sum of a list of variables. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a3fed00a6900fe3450a1981785464c780">More...</a><br /></td></tr>
<tr class="separator:a3fed00a6900fe3450a1981785464c780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11cfbb04180277e0f6a802e277e316c2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a11cfbb04180277e0f6a802e277e316c2">ScalProd</a> (absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> &gt; vars, absl::Span&lt; const <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> &gt; coeffs)</td></tr>
<tr class="memdesc:a11cfbb04180277e0f6a802e277e316c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the scalar product of variables and coefficients. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a11cfbb04180277e0f6a802e277e316c2">More...</a><br /></td></tr>
<tr class="separator:a11cfbb04180277e0f6a802e277e316c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c753834bf59f3323d1f10b9c71cb8b3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a6c753834bf59f3323d1f10b9c71cb8b3">BooleanSum</a> (absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1BoolVar.html">BoolVar</a> &gt; vars)</td></tr>
<tr class="memdesc:a6c753834bf59f3323d1f10b9c71cb8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the sum of a list of Booleans. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a6c753834bf59f3323d1f10b9c71cb8b3">More...</a><br /></td></tr>
<tr class="separator:a6c753834bf59f3323d1f10b9c71cb8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f3d483e05bff4b9f36ccf4367328a19"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a3f3d483e05bff4b9f36ccf4367328a19">BooleanScalProd</a> (absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1BoolVar.html">BoolVar</a> &gt; vars, absl::Span&lt; const <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> &gt; coeffs)</td></tr>
<tr class="memdesc:a3f3d483e05bff4b9f36ccf4367328a19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the scalar product of Booleans and coefficients. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a3f3d483e05bff4b9f36ccf4367328a19">More...</a><br /></td></tr>
<tr class="separator:a3f3d483e05bff4b9f36ccf4367328a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0509f53cddd53bb8e543d91ed4dcac32"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html#a0509f53cddd53bb8e543d91ed4dcac32">Term</a> (<a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> <a class="el" href="sat__solver_8cc.html#a8392bdc4ed570e6a95c7fca35b09f83f">var</a>, <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> <a class="el" href="markowitz_8cc.html#a722e11301e7de93191aa47dbd3ecb4d8">coefficient</a>)</td></tr>
<tr class="memdesc:a0509f53cddd53bb8e543d91ed4dcac32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construncts var * coefficient. <a href="classoperations__research_1_1sat_1_1LinearExpr.html#a0509f53cddd53bb8e543d91ed4dcac32">More...</a><br /></td></tr>
<tr class="separator:a0509f53cddd53bb8e543d91ed4dcac32"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a708e7b52aae1fa3c440ef7ced3f06cd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a708e7b52aae1fa3c440ef7ced3f06cd9">&#9670;&nbsp;</a></span>LinearExpr() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00135">135</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a9556910050b0975ea15c090d9f0ae801"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9556910050b0975ea15c090d9f0ae801">&#9670;&nbsp;</a></span>LinearExpr() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1sat_1_1BoolVar.html">BoolVar</a>&#160;</td>
<td class="paramname"><em>var</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a linear expression from a Boolean variable. </p>
<p>It deals with logical negation correctly. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00137">137</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a6acce576bf92bd4158eed2a55840e4a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6acce576bf92bd4158eed2a55840e4a3">&#9670;&nbsp;</a></span>LinearExpr() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a>&#160;</td>
<td class="paramname"><em>var</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a linear expression from an integer variable. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00139">139</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a9c095e393028e08704f04f269ae2e0cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c095e393028e08704f04f269ae2e0cc">&#9670;&nbsp;</a></span>LinearExpr() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>&#160;</td>
<td class="paramname"><em>constant</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a constant linear expression. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00141">141</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a28b47ae47799acd3b91099dfb9b9aa85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28b47ae47799acd3b91099dfb9b9aa85">&#9670;&nbsp;</a></span>AddConstant()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> &amp; AddConstant </td>
<td>(</td>
<td class="paramtype"><a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a constant value to the linear expression. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00185">185</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="ab00374af3fbd853d2d5f04a5ca608ec2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab00374af3fbd853d2d5f04a5ca608ec2">&#9670;&nbsp;</a></span>AddTerm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void AddTerm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a>&#160;</td>
<td class="paramname"><em>var</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>&#160;</td>
<td class="paramname"><em>coeff</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a term (var * coeff) to the linear expression. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00192">192</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="acb6bbd3a68fe3281780b6bc74dcb3716"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb6bbd3a68fe3281780b6bc74dcb3716">&#9670;&nbsp;</a></span>AddVar()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void AddVar </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a>&#160;</td>
<td class="paramname"><em>var</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a single integer variable to the linear expression. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00190">190</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a3f3d483e05bff4b9f36ccf4367328a19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f3d483e05bff4b9f36ccf4367328a19">&#9670;&nbsp;</a></span>BooleanScalProd()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> BooleanScalProd </td>
<td>(</td>
<td class="paramtype">absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1BoolVar.html">BoolVar</a> &gt;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">absl::Span&lt; const <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> &gt;&#160;</td>
<td class="paramname"><em>coeffs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>Constructs the scalar product of Booleans and coefficients. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00175">175</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a6c753834bf59f3323d1f10b9c71cb8b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c753834bf59f3323d1f10b9c71cb8b3">&#9670;&nbsp;</a></span>BooleanSum()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> BooleanSum </td>
<td>(</td>
<td class="paramtype">absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1BoolVar.html">BoolVar</a> &gt;&#160;</td>
<td class="paramname"><em>vars</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>Constructs the sum of a list of Booleans. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00167">167</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="ad93e8152b59e0db58d7e5ba4a525dd81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad93e8152b59e0db58d7e5ba4a525dd81">&#9670;&nbsp;</a></span>coefficients()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;<a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>&gt;&amp; coefficients </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>Returns the vector of coefficients. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8h_source.html#l00294">294</a> of file <a class="el" href="cp__model_8h_source.html">cp_model.h</a>.</p>
</div>
</div>
<a id="ae5d09f03aa97474f2893f9fc46a496ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5d09f03aa97474f2893f9fc46a496ec">&#9670;&nbsp;</a></span>constant()</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="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> constant </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>Returns the constant term. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8h_source.html#l00297">297</a> of file <a class="el" href="cp__model_8h_source.html">cp_model.h</a>.</p>
</div>
</div>
<a id="a11cfbb04180277e0f6a802e277e316c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11cfbb04180277e0f6a802e277e316c2">&#9670;&nbsp;</a></span>ScalProd()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> ScalProd </td>
<td>(</td>
<td class="paramtype">absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> &gt;&#160;</td>
<td class="paramname"><em>vars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">absl::Span&lt; const <a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a> &gt;&#160;</td>
<td class="paramname"><em>coeffs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>Constructs the scalar product of variables and coefficients. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00151">151</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a3fed00a6900fe3450a1981785464c780"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fed00a6900fe3450a1981785464c780">&#9670;&nbsp;</a></span>Sum()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> Sum </td>
<td>(</td>
<td class="paramtype">absl::Span&lt; const <a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a> &gt;&#160;</td>
<td class="paramname"><em>vars</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>Constructs the sum of a list of variables. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00143">143</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="a0509f53cddd53bb8e543d91ed4dcac32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0509f53cddd53bb8e543d91ed4dcac32">&#9670;&nbsp;</a></span>Term()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a> Term </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a>&#160;</td>
<td class="paramname"><em>var</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="integral__types_8h.html#a7cde0074dfd288f2d70c0e035dacb28a">int64</a>&#160;</td>
<td class="paramname"><em>coefficient</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>Construncts var * coefficient. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8cc_source.html#l00161">161</a> of file <a class="el" href="cp__model_8cc_source.html">cp_model.cc</a>.</p>
</div>
</div>
<a id="aa96427ca5156644ef61e4ffec3ea4083"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa96427ca5156644ef61e4ffec3ea4083">&#9670;&nbsp;</a></span>variables()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;<a class="el" href="classoperations__research_1_1sat_1_1IntVar.html">IntVar</a>&gt;&amp; variables </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>Returns the vector of variables. </p>
<p class="definition">Definition at line <a class="el" href="cp__model_8h_source.html#l00291">291</a> of file <a class="el" href="cp__model_8h_source.html">cp_model.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="cp__model_8h_source.html">cp_model.h</a></li>
<li><a class="el" href="cp__model_8cc_source.html">cp_model.cc</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespaceoperations__research_1_1sat_html_a7ac491fd74967da4f340617ad11677ec"><div class="ttname"><a href="namespaceoperations__research_1_1sat.html#a7ac491fd74967da4f340617ad11677ec">operations_research::sat::Not</a></div><div class="ttdeci">BoolVar Not(BoolVar x)</div><div class="ttdoc">A convenient wrapper so we can write Not(x) instead of x.Not() which is sometimes clearer.</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00063">cp_model.cc:63</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1sat_1_1LinearExpr_html_a708e7b52aae1fa3c440ef7ced3f06cd9"><div class="ttname"><a href="classoperations__research_1_1sat_1_1LinearExpr.html#a708e7b52aae1fa3c440ef7ced3f06cd9">operations_research::sat::LinearExpr::LinearExpr</a></div><div class="ttdeci">LinearExpr()</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00135">cp_model.cc:135</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1sat_1_1LinearExpr_html_a6c753834bf59f3323d1f10b9c71cb8b3"><div class="ttname"><a href="classoperations__research_1_1sat_1_1LinearExpr.html#a6c753834bf59f3323d1f10b9c71cb8b3">operations_research::sat::LinearExpr::BooleanSum</a></div><div class="ttdeci">static LinearExpr BooleanSum(absl::Span&lt; const BoolVar &gt; vars)</div><div class="ttdoc">Constructs the sum of a list of Booleans.</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00167">cp_model.cc:167</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1sat_1_1LinearExpr_html_a3fed00a6900fe3450a1981785464c780"><div class="ttname"><a href="classoperations__research_1_1sat_1_1LinearExpr.html#a3fed00a6900fe3450a1981785464c780">operations_research::sat::LinearExpr::Sum</a></div><div class="ttdeci">static LinearExpr Sum(absl::Span&lt; const IntVar &gt; vars)</div><div class="ttdoc">Constructs the sum of a list of variables.</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00143">cp_model.cc:143</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1sat_1_1LinearExpr_html_a3f3d483e05bff4b9f36ccf4367328a19"><div class="ttname"><a href="classoperations__research_1_1sat_1_1LinearExpr.html#a3f3d483e05bff4b9f36ccf4367328a19">operations_research::sat::LinearExpr::BooleanScalProd</a></div><div class="ttdeci">static LinearExpr BooleanScalProd(absl::Span&lt; const BoolVar &gt; vars, absl::Span&lt; const int64 &gt; coeffs)</div><div class="ttdoc">Constructs the scalar product of Booleans and coefficients.</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00175">cp_model.cc:175</a></div></div>
<div class="ttc" id="agurobi__interface_8cc_html_a0728f23c9a47655d38e0bf1a2f200bcf"><div class="ttname"><a href="gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf">model</a></div><div class="ttdeci">GRBmodel * model</div><div class="ttdef"><b>Definition:</b> <a href="gurobi__interface_8cc_source.html#l00195">gurobi_interface.cc:195</a></div></div>
<div class="ttc" id="aconstraint__solver_2table_8cc_html_a344010e26426d6a13411648d988bc9b6"><div class="ttname"><a href="constraint__solver_2table_8cc.html#a344010e26426d6a13411648d988bc9b6">b</a></div><div class="ttdeci">int64 b</div><div class="ttdef"><b>Definition:</b> <a href="constraint__solver_2table_8cc_source.html#l00043">constraint_solver/table.cc:43</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1sat_1_1LinearExpr_html_a28b47ae47799acd3b91099dfb9b9aa85"><div class="ttname"><a href="classoperations__research_1_1sat_1_1LinearExpr.html#a28b47ae47799acd3b91099dfb9b9aa85">operations_research::sat::LinearExpr::AddConstant</a></div><div class="ttdeci">LinearExpr &amp; AddConstant(int64 value)</div><div class="ttdoc">Adds a constant value to the linear expression.</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00185">cp_model.cc:185</a></div></div>
<div class="ttc" id="aclassoperations__research_1_1sat_1_1LinearExpr_html_a11cfbb04180277e0f6a802e277e316c2"><div class="ttname"><a href="classoperations__research_1_1sat_1_1LinearExpr.html#a11cfbb04180277e0f6a802e277e316c2">operations_research::sat::LinearExpr::ScalProd</a></div><div class="ttdeci">static LinearExpr ScalProd(absl::Span&lt; const IntVar &gt; vars, absl::Span&lt; const int64 &gt; coeffs)</div><div class="ttdoc">Constructs the scalar product of variables and coefficients.</div><div class="ttdef"><b>Definition:</b> <a href="cp__model_8cc_source.html#l00151">cp_model.cc:151</a></div></div>
<!-- HTML footer for doxygen 1.8.18-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceoperations__research.html">operations_research</a></li><li class="navelem"><a class="el" href="namespaceoperations__research_1_1sat.html">sat</a></li><li class="navelem"><a class="el" href="classoperations__research_1_1sat_1_1LinearExpr.html">LinearExpr</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>