Files
ortools-clone/docs/javadoc/com/google/ortools/sat/CpModel.html
Mizux Seiha 3b81c981c2 Update doc
2022-03-04 00:19:15 +01:00

1553 lines
141 KiB
HTML

<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Thu Mar 03 21:59:09 CET 2022 -->
<title>CpModel (com.google.ortools:ortools-java 9.3.10440 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-03-03">
<meta name="description" content="declaration: package: com.google.ortools.sat, class: CpModel">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/CpModel.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.google.ortools.sat</a></div>
<h1 title="Class CpModel" class="title">Class CpModel</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.google.ortools.sat.CpModel</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">CpModel</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">Main modeling class.
<p>Proposes a factory to create all modeling objects understood by the SAT solver.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="CpModel.MismatchedArrayLengths.html" class="type-name-link" title="class in com.google.ortools.sat">CpModel.MismatchedArrayLengths</a></code></div>
<div class="col-last even-row-color">
<div class="block">Exception thrown when parallel arrays have mismatched lengths.</div>
</div>
<div class="col-first odd-row-color"><code>static class&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="CpModel.WrongLength.html" class="type-name-link" title="class in com.google.ortools.sat">CpModel.WrongLength</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Exception thrown when an array has a wrong length.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">CpModel</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAbsEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addAbsEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == Abs(expr)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAllDifferent(com.google.ortools.sat.LinearArgument%5B%5D)" class="member-name-link">addAllDifferent</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;expressions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>AllDifferent(expressions)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAllDifferent(java.lang.Iterable)" class="member-name-link">addAllDifferent</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&gt;&nbsp;expressions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>AllDifferent(expressions)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAllowedAssignments(com.google.ortools.sat.IntVar%5B%5D)" class="member-name-link">addAllowedAssignments</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>AllowedAssignments(variables)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAllowedAssignments(java.lang.Iterable)" class="member-name-link">addAllowedAssignments</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&gt;&nbsp;variables)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>AllowedAssignments(variables)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAssumption(com.google.ortools.sat.Literal)" class="member-name-link">addAssumption</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;lit)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds a literal to the model as assumption</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAssumptions(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addAssumptions</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds multiple literals to the model as assumptions</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAtLeastOne(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addAtLeastOne</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Same as addBoolOr.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAtLeastOne(java.lang.Iterable)" class="member-name-link">addAtLeastOne</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Same as addBoolOr.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAtMostOne(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addAtMostOne</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>AtMostOne(literals): Sum(literals) &lt;= 1</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAtMostOne(java.lang.Iterable)" class="member-name-link">addAtMostOne</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>AtMostOne(literals): Sum(literals) &lt;= 1</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="AutomatonConstraint.html" title="class in com.google.ortools.sat">AutomatonConstraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addAutomaton(com.google.ortools.sat.IntVar%5B%5D,long,long%5B%5D)" class="member-name-link">addAutomaton</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;transitionVariables,
long&nbsp;startingState,
long[]&nbsp;finalStates)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an automaton constraint.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addBoolAnd(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addBoolAnd</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>And(literals) == true</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addBoolAnd(java.lang.Iterable)" class="member-name-link">addBoolAnd</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>And(literals) == true</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addBoolOr(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addBoolOr</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>Or(literals) == true</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addBoolOr(java.lang.Iterable)" class="member-name-link">addBoolOr</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>Or(literals) == true</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addBoolXor(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addBoolXor</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>XOr(literals) == true</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addBoolXor(java.lang.Iterable)" class="member-name-link">addBoolXor</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>XOr(literals) == true</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CircuitConstraint.html" title="class in com.google.ortools.sat">CircuitConstraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCircuit()" class="member-name-link">addCircuit</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>Circuit()</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CumulativeConstraint.html" title="class in com.google.ortools.sat">CumulativeConstraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCumulative(long)" class="member-name-link">addCumulative</a><wbr>(long&nbsp;capacity)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>Cumulative(capacity)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CumulativeConstraint.html" title="class in com.google.ortools.sat">CumulativeConstraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCumulative(com.google.ortools.sat.LinearArgument)" class="member-name-link">addCumulative</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;capacity)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>Cumulative(capacity)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addDecisionStrategy(com.google.ortools.sat.IntVar%5B%5D,com.google.ortools.sat.DecisionStrategyProto.VariableSelectionStrategy,com.google.ortools.sat.DecisionStrategyProto.DomainReductionStrategy)" class="member-name-link">addDecisionStrategy</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables,
<a href="DecisionStrategyProto.VariableSelectionStrategy.html" title="enum in com.google.ortools.sat">DecisionStrategyProto.VariableSelectionStrategy</a>&nbsp;varStr,
<a href="DecisionStrategyProto.DomainReductionStrategy.html" title="enum in com.google.ortools.sat">DecisionStrategyProto.DomainReductionStrategy</a>&nbsp;domStr)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>DecisionStrategy(variables, varStr, domStr)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addDifferent(com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addDifferent</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr != value</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addDifferent(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addDifferent</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>left != right</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addDivisionEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addDivisionEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;num,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;denom)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == num / denom</code>, rounded towards 0.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addElement(com.google.ortools.sat.IntVar,int%5B%5D,com.google.ortools.sat.IntVar)" class="member-name-link">addElement</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;index,
int[]&nbsp;values,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;target)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds the element constraint: <code>values[index] == target</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addElement(com.google.ortools.sat.IntVar,long%5B%5D,com.google.ortools.sat.IntVar)" class="member-name-link">addElement</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;index,
long[]&nbsp;values,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;target)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds the element constraint: <code>values[index] == target</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addElement(com.google.ortools.sat.IntVar,com.google.ortools.sat.IntVar%5B%5D,com.google.ortools.sat.IntVar)" class="member-name-link">addElement</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;index,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;target)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds the element constraint: <code>variables[index] == target</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addEquality(com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr == value</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>left == right</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addExactlyOne(com.google.ortools.sat.Literal%5B%5D)" class="member-name-link">addExactlyOne</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>ExactlyOne(literals): Sum(literals) == 1</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addExactlyOne(java.lang.Iterable)" class="member-name-link">addExactlyOne</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>ExactlyOne(literals): Sum(literals) == 1</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addForbiddenAssignments(com.google.ortools.sat.IntVar%5B%5D)" class="member-name-link">addForbiddenAssignments</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>ForbiddenAssignments(variables)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addForbiddenAssignments(java.lang.Iterable)" class="member-name-link">addForbiddenAssignments</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&gt;&nbsp;variables)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>ForbiddenAssignments(variables)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addGreaterOrEqual(com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addGreaterOrEqual</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr &gt;= value</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addGreaterOrEqual(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addGreaterOrEqual</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>left &gt;= right</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addGreaterThan(com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addGreaterThan</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr &gt; value</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addGreaterThan(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addGreaterThan</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>left &gt; right</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addHint(com.google.ortools.sat.IntVar,long)" class="member-name-link">addHint</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;var,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds hinting to a variable</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addImplication(com.google.ortools.sat.Literal,com.google.ortools.sat.Literal)" class="member-name-link">addImplication</a><wbr>(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;a,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;b)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>a =&gt; b</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addInverse(com.google.ortools.sat.IntVar%5B%5D,com.google.ortools.sat.IntVar%5B%5D)" class="member-name-link">addInverse</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;inverseVariables)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>Inverse(variables, inverseVariables)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addLessOrEqual(com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addLessOrEqual</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr &lt;= value</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addLessOrEqual(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addLessOrEqual</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>left &lt;= right</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addLessThan(com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addLessThan</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr &lt; value</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addLessThan(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addLessThan</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>left &lt; right</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addLinearConstraint(com.google.ortools.sat.LinearArgument,long,long)" class="member-name-link">addLinearConstraint</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;lb,
long&nbsp;ub)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>lb &lt;= expr &lt;= ub</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addLinearExpressionInDomain(com.google.ortools.sat.LinearArgument,com.google.ortools.util.Domain)" class="member-name-link">addLinearExpressionInDomain</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
<a href="../util/Domain.html" title="class in com.google.ortools.util">Domain</a>&nbsp;domain)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>expr in domain</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMapDomain(com.google.ortools.sat.IntVar,com.google.ortools.sat.Literal%5B%5D,long)" class="member-name-link">addMapDomain</a><wbr>(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;var,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;booleans,
long&nbsp;offset)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>var == i + offset &lt;=&gt; booleans[i] == true for all i in [0, booleans.length)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMaxEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument%5B%5D)" class="member-name-link">addMaxEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;exprs)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == Max(vars)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMaxEquality(com.google.ortools.sat.LinearArgument,java.lang.Iterable)" class="member-name-link">addMaxEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&gt;&nbsp;exprs)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == Max(exprs)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMinEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument%5B%5D)" class="member-name-link">addMinEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;exprs)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == Min(vars)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMinEquality(com.google.ortools.sat.LinearArgument,java.lang.Iterable)" class="member-name-link">addMinEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&gt;&nbsp;exprs)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == Min(exprs)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addModuloEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,long)" class="member-name-link">addModuloEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;var,
long&nbsp;mod)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == var % mod</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addModuloEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addModuloEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;var,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;mod)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == var % mod</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MultipleCircuitConstraint.html" title="class in com.google.ortools.sat">MultipleCircuitConstraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMultipleCircuit()" class="member-name-link">addMultipleCircuit</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>MultipleCircuit()</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMultiplicationEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument%5B%5D)" class="member-name-link">addMultiplicationEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;exprs)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == Product(exprs)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addMultiplicationEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)" class="member-name-link">addMultiplicationEquality</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>target == left * right</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addNoOverlap(com.google.ortools.sat.IntervalVar%5B%5D)" class="member-name-link">addNoOverlap</a><wbr>(<a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a>[]&nbsp;intervalVars)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>NoOverlap(intervalVars)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addNoOverlap(java.lang.Iterable)" class="member-name-link">addNoOverlap</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a>&gt;&nbsp;intervalVars)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>NoOverlap(intervalVars)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="NoOverlap2dConstraint.html" title="class in com.google.ortools.sat">NoOverlap2dConstraint</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addNoOverlap2D()" class="member-name-link">addNoOverlap2D</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds <code>NoOverlap2D(xIntervals, yIntervals)</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="ReservoirConstraint.html" title="class in com.google.ortools.sat">ReservoirConstraint</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addReservoirConstraint(long,long)" class="member-name-link">addReservoirConstraint</a><wbr>(long&nbsp;minLevel,
long&nbsp;maxLevel)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds a reservoir constraint with optional refill/emptying events.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clearAssumptions()" class="member-name-link">clearAssumptions</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Remove all assumptions from the model</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clearHints()" class="member-name-link">clearHints</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Remove all solution hints</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#exportToFile(java.lang.String)" class="member-name-link">exportToFile</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;file)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Write the model as a protocol buffer to 'file'.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#falseLiteral()" class="member-name-link">falseLiteral</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the false literal.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CpModelProto.Builder.html" title="class in com.google.ortools.sat">CpModelProto.Builder</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBuilder()" class="member-name-link">getBuilder</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the model builder.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#maximize(com.google.ortools.sat.DoubleLinearExpr)" class="member-name-link">maximize</a><wbr>(<a href="DoubleLinearExpr.html" title="class in com.google.ortools.sat">DoubleLinearExpr</a>&nbsp;expr)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#maximize(com.google.ortools.sat.LinearArgument)" class="member-name-link">maximize</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds a maximization objective of a linear expression.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#minimize(com.google.ortools.sat.DoubleLinearExpr)" class="member-name-link">minimize</a><wbr>(<a href="DoubleLinearExpr.html" title="class in com.google.ortools.sat">DoubleLinearExpr</a>&nbsp;expr)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#minimize(com.google.ortools.sat.LinearArgument)" class="member-name-link">minimize</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds a minimization objective of a linear expression.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CpModelProto.html" title="class in com.google.ortools.sat">CpModelProto</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#model()" class="member-name-link">model</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#modelStats()" class="member-name-link">modelStats</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns some statistics on model as a string.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#negated(int)" class="member-name-link">negated</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoolVar.html" title="class in com.google.ortools.sat">BoolVar</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newBoolVar(java.lang.String)" class="member-name-link">newBoolVar</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a Boolean variable with the given name.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newConstant(long)" class="member-name-link">newConstant</a><wbr>(long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a constant variable.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newFixedInterval(long,long,java.lang.String)" class="member-name-link">newFixedInterval</a><wbr>(long&nbsp;start,
long&nbsp;size,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a fixed interval from its start and its size.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newFixedSizeIntervalVar(com.google.ortools.sat.LinearArgument,long,java.lang.String)" class="member-name-link">newFixedSizeIntervalVar</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
long&nbsp;size,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an interval variable from an affine expression start, and a fixed size.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newIntervalVar(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,java.lang.String)" class="member-name-link">newIntervalVar</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;size,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;end,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an interval variable from three affine expressions start, size, and end.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newIntVar(long,long,java.lang.String)" class="member-name-link">newIntVar</a><wbr>(long&nbsp;lb,
long&nbsp;ub,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an integer variable with domain [lb, ub].</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newIntVarFromDomain(com.google.ortools.util.Domain,java.lang.String)" class="member-name-link">newIntVarFromDomain</a><wbr>(<a href="../util/Domain.html" title="class in com.google.ortools.util">Domain</a>&nbsp;domain,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an integer variable with given domain.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newOptionalFixedInterval(long,long,com.google.ortools.sat.Literal,java.lang.String)" class="member-name-link">newOptionalFixedInterval</a><wbr>(long&nbsp;start,
long&nbsp;size,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;isPresent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an optional fixed interval from start and size, and an isPresent literal.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newOptionalFixedSizeIntervalVar(com.google.ortools.sat.LinearArgument,long,com.google.ortools.sat.Literal,java.lang.String)" class="member-name-link">newOptionalFixedSizeIntervalVar</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
long&nbsp;size,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;isPresent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an optional interval variable from an affine expression start, and a fixed size.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newOptionalIntervalVar(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.Literal,java.lang.String)" class="member-name-link">newOptionalIntervalVar</a><wbr>(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;size,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;end,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;isPresent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates an optional interval variable from three affine expressions start, size, end, and
isPresent.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#trueLiteral()" class="member-name-link">trueLiteral</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the true literal.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validate()" class="member-name-link">validate</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a non empty string explaining the issue if the model is invalid.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>CpModel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">CpModel</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="newIntVar(long,long,java.lang.String)">
<h3>newIntVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a></span>&nbsp;<span class="element-name">newIntVar</span><wbr><span class="parameters">(long&nbsp;lb,
long&nbsp;ub,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an integer variable with domain [lb, ub].</div>
</section>
</li>
<li>
<section class="detail" id="newIntVarFromDomain(com.google.ortools.util.Domain,java.lang.String)">
<h3>newIntVarFromDomain</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a></span>&nbsp;<span class="element-name">newIntVarFromDomain</span><wbr><span class="parameters">(<a href="../util/Domain.html" title="class in com.google.ortools.util">Domain</a>&nbsp;domain,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an integer variable with given domain.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>domain</code> - an instance of the Domain class.</dd>
<dd><code>name</code> - the name of the variable</dd>
<dt>Returns:</dt>
<dd>a variable with the given domain.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newBoolVar(java.lang.String)">
<h3>newBoolVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoolVar.html" title="class in com.google.ortools.sat">BoolVar</a></span>&nbsp;<span class="element-name">newBoolVar</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates a Boolean variable with the given name.</div>
</section>
</li>
<li>
<section class="detail" id="newConstant(long)">
<h3>newConstant</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a></span>&nbsp;<span class="element-name">newConstant</span><wbr><span class="parameters">(long&nbsp;value)</span></div>
<div class="block">Creates a constant variable.</div>
</section>
</li>
<li>
<section class="detail" id="trueLiteral()">
<h3>trueLiteral</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a></span>&nbsp;<span class="element-name">trueLiteral</span>()</div>
<div class="block">Returns the true literal.</div>
</section>
</li>
<li>
<section class="detail" id="falseLiteral()">
<h3>falseLiteral</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a></span>&nbsp;<span class="element-name">falseLiteral</span>()</div>
<div class="block">Returns the false literal.</div>
</section>
</li>
<li>
<section class="detail" id="addBoolOr(com.google.ortools.sat.Literal[])">
<h3>addBoolOr</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addBoolOr</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Adds <code>Or(literals) == true</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addBoolOr(java.lang.Iterable)">
<h3>addBoolOr</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addBoolOr</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</span></div>
<div class="block">Adds <code>Or(literals) == true</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addAtLeastOne(com.google.ortools.sat.Literal[])">
<h3>addAtLeastOne</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAtLeastOne</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Same as addBoolOr. <code>Sum(literals) &gt;= 1</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addAtLeastOne(java.lang.Iterable)">
<h3>addAtLeastOne</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAtLeastOne</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</span></div>
<div class="block">Same as addBoolOr. <code>Sum(literals) &gt;= 1</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addAtMostOne(com.google.ortools.sat.Literal[])">
<h3>addAtMostOne</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAtMostOne</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Adds <code>AtMostOne(literals): Sum(literals) &lt;= 1</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addAtMostOne(java.lang.Iterable)">
<h3>addAtMostOne</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAtMostOne</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</span></div>
<div class="block">Adds <code>AtMostOne(literals): Sum(literals) &lt;= 1</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addExactlyOne(com.google.ortools.sat.Literal[])">
<h3>addExactlyOne</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addExactlyOne</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Adds <code>ExactlyOne(literals): Sum(literals) == 1</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addExactlyOne(java.lang.Iterable)">
<h3>addExactlyOne</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addExactlyOne</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</span></div>
<div class="block">Adds <code>ExactlyOne(literals): Sum(literals) == 1</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addBoolAnd(com.google.ortools.sat.Literal[])">
<h3>addBoolAnd</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addBoolAnd</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Adds <code>And(literals) == true</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addBoolAnd(java.lang.Iterable)">
<h3>addBoolAnd</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addBoolAnd</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</span></div>
<div class="block">Adds <code>And(literals) == true</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addBoolXor(com.google.ortools.sat.Literal[])">
<h3>addBoolXor</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addBoolXor</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Adds <code>XOr(literals) == true</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addBoolXor(java.lang.Iterable)">
<h3>addBoolXor</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addBoolXor</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&gt;&nbsp;literals)</span></div>
<div class="block">Adds <code>XOr(literals) == true</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addImplication(com.google.ortools.sat.Literal,com.google.ortools.sat.Literal)">
<h3>addImplication</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addImplication</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;a,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;b)</span></div>
<div class="block">Adds <code>a =&gt; b</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addLinearExpressionInDomain(com.google.ortools.sat.LinearArgument,com.google.ortools.util.Domain)">
<h3>addLinearExpressionInDomain</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addLinearExpressionInDomain</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
<a href="../util/Domain.html" title="class in com.google.ortools.util">Domain</a>&nbsp;domain)</span></div>
<div class="block">Adds <code>expr in domain</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addLinearConstraint(com.google.ortools.sat.LinearArgument,long,long)">
<h3>addLinearConstraint</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addLinearConstraint</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;lb,
long&nbsp;ub)</span></div>
<div class="block">Adds <code>lb &lt;= expr &lt;= ub</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addEquality(com.google.ortools.sat.LinearArgument,long)">
<h3>addEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</span></div>
<div class="block">Adds <code>expr == value</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>left == right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addLessOrEqual(com.google.ortools.sat.LinearArgument,long)">
<h3>addLessOrEqual</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addLessOrEqual</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</span></div>
<div class="block">Adds <code>expr &lt;= value</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addLessOrEqual(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addLessOrEqual</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addLessOrEqual</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>left &lt;= right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addLessThan(com.google.ortools.sat.LinearArgument,long)">
<h3>addLessThan</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addLessThan</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</span></div>
<div class="block">Adds <code>expr &lt; value</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addLessThan(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addLessThan</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addLessThan</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>left &lt; right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addGreaterOrEqual(com.google.ortools.sat.LinearArgument,long)">
<h3>addGreaterOrEqual</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addGreaterOrEqual</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</span></div>
<div class="block">Adds <code>expr &gt;= value</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addGreaterOrEqual(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addGreaterOrEqual</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addGreaterOrEqual</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>left &gt;= right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addGreaterThan(com.google.ortools.sat.LinearArgument,long)">
<h3>addGreaterThan</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addGreaterThan</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</span></div>
<div class="block">Adds <code>expr &gt; value</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addGreaterThan(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addGreaterThan</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addGreaterThan</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>left &gt; right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addDifferent(com.google.ortools.sat.LinearArgument,long)">
<h3>addDifferent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addDifferent</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr,
long&nbsp;value)</span></div>
<div class="block">Adds <code>expr != value</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addDifferent(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addDifferent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addDifferent</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>left != right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addAllDifferent(com.google.ortools.sat.LinearArgument[])">
<h3>addAllDifferent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAllDifferent</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;expressions)</span></div>
<div class="block">Adds <code>AllDifferent(expressions)</code>.
<p>This constraint forces all affine expressions to have different values.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>expressions</code> - a list of affine integer expressions</dd>
<dt>Returns:</dt>
<dd>an instance of the Constraint class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addAllDifferent(java.lang.Iterable)">
<h3>addAllDifferent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAllDifferent</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&gt;&nbsp;expressions)</span></div>
<div class="block">Adds <code>AllDifferent(expressions)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addElement(com.google.ortools.sat.IntVar,com.google.ortools.sat.IntVar[],com.google.ortools.sat.IntVar)">
<h3>addElement</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addElement</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;index,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;target)</span></div>
<div class="block">Adds the element constraint: <code>variables[index] == target</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addElement(com.google.ortools.sat.IntVar,long[],com.google.ortools.sat.IntVar)">
<h3>addElement</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addElement</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;index,
long[]&nbsp;values,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;target)</span></div>
<div class="block">Adds the element constraint: <code>values[index] == target</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addElement(com.google.ortools.sat.IntVar,int[],com.google.ortools.sat.IntVar)">
<h3>addElement</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addElement</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;index,
int[]&nbsp;values,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;target)</span></div>
<div class="block">Adds the element constraint: <code>values[index] == target</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addCircuit()">
<h3>addCircuit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CircuitConstraint.html" title="class in com.google.ortools.sat">CircuitConstraint</a></span>&nbsp;<span class="element-name">addCircuit</span>()</div>
<div class="block">Adds <code>Circuit()</code>.
<p>Adds an empty circuit constraint.
<p>A circuit is a unique Hamiltonian path in a subgraph of the total graph. In case a node 'i'
is not in the path, then there must be a loop arc <code>'i -&gt; i'</code> associated with a true
literal. Otherwise this constraint will fail.</div>
</section>
</li>
<li>
<section class="detail" id="addMultipleCircuit()">
<h3>addMultipleCircuit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MultipleCircuitConstraint.html" title="class in com.google.ortools.sat">MultipleCircuitConstraint</a></span>&nbsp;<span class="element-name">addMultipleCircuit</span>()</div>
<div class="block">Adds <code>MultipleCircuit()</code>.
<p>Adds an empty multiple circuit constraint.
<p>A multiple circuit is set of cycles in a subgraph of the total graph. The node index by 0
must be part of all cycles of length > 1. Each node with index > 0 belongs to exactly one
cycle. If such node does not belong in any cycle of length > 1, then there must be a looping
arc on this node attached to a literal that will be true. Otherwise, the constraint will fail.</div>
</section>
</li>
<li>
<section class="detail" id="addAllowedAssignments(com.google.ortools.sat.IntVar[])">
<h3>addAllowedAssignments</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></span>&nbsp;<span class="element-name">addAllowedAssignments</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables)</span></div>
<div class="block">Adds <code>AllowedAssignments(variables)</code>.
<p>An AllowedAssignments constraint is a constraint on an array of variables that forces, when
all variables are fixed to a single value, that the corresponding list of values is equal to
one of the tuples of the tupleList.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>variables</code> - a list of variables</dd>
<dt>Returns:</dt>
<dd>an instance of the TableConstraint class without any tuples. Tuples can be added
directly to the table constraint.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addAllowedAssignments(java.lang.Iterable)">
<h3>addAllowedAssignments</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></span>&nbsp;<span class="element-name">addAllowedAssignments</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&gt;&nbsp;variables)</span></div>
<div class="block">Adds <code>AllowedAssignments(variables)</code>.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="#addAllowedAssignments(com.google.ortools.sat.IntVar%5B%5D)"><code>addAllowedAssignments(com.google.ortools.sat.IntVar[])</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addForbiddenAssignments(com.google.ortools.sat.IntVar[])">
<h3>addForbiddenAssignments</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></span>&nbsp;<span class="element-name">addForbiddenAssignments</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables)</span></div>
<div class="block">Adds <code>ForbiddenAssignments(variables)</code>.
<p>A ForbiddenAssignments constraint is a constraint on an array of variables where the list of
impossible combinations is provided in the tuples list.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>variables</code> - a list of variables</dd>
<dt>Returns:</dt>
<dd>an instance of the TableConstraint class without any tuples. Tuples can be added
directly to the table constraint.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addForbiddenAssignments(java.lang.Iterable)">
<h3>addForbiddenAssignments</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TableConstraint.html" title="class in com.google.ortools.sat">TableConstraint</a></span>&nbsp;<span class="element-name">addForbiddenAssignments</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&gt;&nbsp;variables)</span></div>
<div class="block">Adds <code>ForbiddenAssignments(variables)</code>.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="#addForbiddenAssignments(com.google.ortools.sat.IntVar%5B%5D)"><code>addForbiddenAssignments(com.google.ortools.sat.IntVar[])</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addAutomaton(com.google.ortools.sat.IntVar[],long,long[])">
<h3>addAutomaton</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="AutomatonConstraint.html" title="class in com.google.ortools.sat">AutomatonConstraint</a></span>&nbsp;<span class="element-name">addAutomaton</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;transitionVariables,
long&nbsp;startingState,
long[]&nbsp;finalStates)</span></div>
<div class="block">Adds an automaton constraint.
<p>An automaton constraint takes a list of variables (of size n), an initial state, a set of
final states, and a set of transitions that will be added incrementally directly on the
returned AutomatonConstraint instance. A transition is a triplet ('tail', 'transition',
'head'), where 'tail' and 'head' are states, and 'transition' is the label of an arc from
'head' to 'tail', corresponding to the value of one variable in the list of variables.
<p>This automaton will be unrolled into a flow with n + 1 phases. Each phase contains the
possible states of the automaton. The first state contains the initial state. The last phase
contains the final states.
<p>Between two consecutive phases i and i + 1, the automaton creates a set of arcs. For each
transition (tail, label, head), it will add an arc from the state 'tail' of phase i and the
state 'head' of phase i + 1. This arc labeled by the value 'label' of the variables
'variables[i]'. That is, this arc can only be selected if 'variables[i]' is assigned the value
'label'.
<p>A feasible solution of this constraint is an assignment of variables such that, starting
from the initial state in phase 0, there is a path labeled by the values of the variables that
ends in one of the final states in the final phase.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>transitionVariables</code> - a non empty list of variables whose values correspond to the labels
of the arcs traversed by the automaton</dd>
<dd><code>startingState</code> - the initial state of the automaton</dd>
<dd><code>finalStates</code> - a non empty list of admissible final states</dd>
<dt>Returns:</dt>
<dd>an instance of the Constraint class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addInverse(com.google.ortools.sat.IntVar[],com.google.ortools.sat.IntVar[])">
<h3>addInverse</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addInverse</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables,
<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;inverseVariables)</span></div>
<div class="block">Adds <code>Inverse(variables, inverseVariables)</code>.
<p>An inverse constraint enforces that if 'variables[i]' is assigned a value 'j', then
inverseVariables[j] is assigned a value 'i'. And vice versa.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>variables</code> - an array of integer variables</dd>
<dd><code>inverseVariables</code> - an array of integer variables</dd>
<dt>Returns:</dt>
<dd>an instance of the Constraint class</dd>
<dt>Throws:</dt>
<dd><code><a href="CpModel.MismatchedArrayLengths.html" title="class in com.google.ortools.sat">CpModel.MismatchedArrayLengths</a></code> - if variables and inverseVariables have different length</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addReservoirConstraint(long,long)">
<h3>addReservoirConstraint</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="ReservoirConstraint.html" title="class in com.google.ortools.sat">ReservoirConstraint</a></span>&nbsp;<span class="element-name">addReservoirConstraint</span><wbr><span class="parameters">(long&nbsp;minLevel,
long&nbsp;maxLevel)</span></div>
<div class="block">Adds a reservoir constraint with optional refill/emptying events.
<p>Maintain a reservoir level within bounds. The water level starts at 0, and at any time, it
must be within [min_level, max_level].
<p>Given an event (time, levelChange, active), if active is true, and if time is assigned a
value t, then the level of the reservoir changes by levelChange (which is constant) at time t.
Therefore, at any time t:
<p>sum(levelChanges[i] * actives[i] if times[i] &lt;= t) in [min_level, max_level]
<p>Note that min level must be &lt;= 0, and the max level must be >= 0. Please use fixed
level_changes to simulate an initial state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>minLevel</code> - at any time, the level of the reservoir must be greater of equal than the min
level. minLevel must me &lt;= 0.</dd>
<dd><code>maxLevel</code> - at any time, the level of the reservoir must be less or equal than the max
level. maxLevel must be >= 0.</dd>
<dt>Returns:</dt>
<dd>an instance of the ReservoirConstraint class</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if minLevel > 0</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if maxLevel &lt; 0</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addMapDomain(com.google.ortools.sat.IntVar,com.google.ortools.sat.Literal[],long)">
<h3>addMapDomain</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addMapDomain</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;var,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;booleans,
long&nbsp;offset)</span></div>
<div class="block">Adds <code>var == i + offset &lt;=&gt; booleans[i] == true for all i in [0, booleans.length)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addMinEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument[])">
<h3>addMinEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addMinEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;exprs)</span></div>
<div class="block">Adds <code>target == Min(vars)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addMinEquality(com.google.ortools.sat.LinearArgument,java.lang.Iterable)">
<h3>addMinEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addMinEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&gt;&nbsp;exprs)</span></div>
<div class="block">Adds <code>target == Min(exprs)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addMaxEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument[])">
<h3>addMaxEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addMaxEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;exprs)</span></div>
<div class="block">Adds <code>target == Max(vars)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addMaxEquality(com.google.ortools.sat.LinearArgument,java.lang.Iterable)">
<h3>addMaxEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addMaxEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;? extends <a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&gt;&nbsp;exprs)</span></div>
<div class="block">Adds <code>target == Max(exprs)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addDivisionEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addDivisionEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addDivisionEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;num,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;denom)</span></div>
<div class="block">Adds <code>target == num / denom</code>, rounded towards 0.</div>
</section>
</li>
<li>
<section class="detail" id="addAbsEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addAbsEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addAbsEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr)</span></div>
<div class="block">Adds <code>target == Abs(expr)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addModuloEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addModuloEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addModuloEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;var,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;mod)</span></div>
<div class="block">Adds <code>target == var % mod</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addModuloEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,long)">
<h3>addModuloEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addModuloEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;var,
long&nbsp;mod)</span></div>
<div class="block">Adds <code>target == var % mod</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addMultiplicationEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument[])">
<h3>addMultiplicationEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addMultiplicationEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>[]&nbsp;exprs)</span></div>
<div class="block">Adds <code>target == Product(exprs)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addMultiplicationEquality(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument)">
<h3>addMultiplicationEquality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addMultiplicationEquality</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;target,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;left,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;right)</span></div>
<div class="block">Adds <code>target == left * right</code>.</div>
</section>
</li>
<li>
<section class="detail" id="newIntervalVar(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,java.lang.String)">
<h3>newIntervalVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></span>&nbsp;<span class="element-name">newIntervalVar</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;size,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;end,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an interval variable from three affine expressions start, size, and end.
<p>An interval variable is a constraint, that is itself used in other constraints like
NoOverlap.
<p>Internally, it ensures that <code>start + size == end</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>start</code> - the start of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>size</code> - the size of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>end</code> - the end of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>name</code> - the name of the interval variable</dd>
<dt>Returns:</dt>
<dd>An IntervalVar object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newFixedSizeIntervalVar(com.google.ortools.sat.LinearArgument,long,java.lang.String)">
<h3>newFixedSizeIntervalVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></span>&nbsp;<span class="element-name">newFixedSizeIntervalVar</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
long&nbsp;size,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an interval variable from an affine expression start, and a fixed size.
<p>An interval variable is a constraint, that is itself used in other constraints like
NoOverlap.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>start</code> - the start of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>size</code> - the fixed size of the interval.</dd>
<dd><code>name</code> - the name of the interval variable.</dd>
<dt>Returns:</dt>
<dd>An IntervalVar object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newFixedInterval(long,long,java.lang.String)">
<h3>newFixedInterval</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></span>&nbsp;<span class="element-name">newFixedInterval</span><wbr><span class="parameters">(long&nbsp;start,
long&nbsp;size,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates a fixed interval from its start and its size.</div>
</section>
</li>
<li>
<section class="detail" id="newOptionalIntervalVar(com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.LinearArgument,com.google.ortools.sat.Literal,java.lang.String)">
<h3>newOptionalIntervalVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></span>&nbsp;<span class="element-name">newOptionalIntervalVar</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;size,
<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;end,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;isPresent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an optional interval variable from three affine expressions start, size, end, and
isPresent.
<p>An optional interval variable is a constraint, that is itself used in other constraints like
NoOverlap. This constraint is protected by an <code>isPresent</code> literal that indicates if it is
active or not.
<p>Internally, it ensures that <code>isPresent =&gt; start + size == end</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>start</code> - the start of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>size</code> - the size of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>end</code> - the end of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>isPresent</code> - a literal that indicates if the interval is active or not. A inactive interval
is simply ignored by all constraints.</dd>
<dd><code>name</code> - The name of the interval variable</dd>
<dt>Returns:</dt>
<dd>an IntervalVar object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newOptionalFixedSizeIntervalVar(com.google.ortools.sat.LinearArgument,long,com.google.ortools.sat.Literal,java.lang.String)">
<h3>newOptionalFixedSizeIntervalVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></span>&nbsp;<span class="element-name">newOptionalFixedSizeIntervalVar</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;start,
long&nbsp;size,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;isPresent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an optional interval variable from an affine expression start, and a fixed size.
<p>An interval variable is a constraint, that is itself used in other constraints like
NoOverlap.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>start</code> - the start of the interval. It needs to be an affine or constant expression.</dd>
<dd><code>size</code> - the fixed size of the interval.</dd>
<dd><code>isPresent</code> - a literal that indicates if the interval is active or not. A inactive interval
is simply ignored by all constraints.</dd>
<dd><code>name</code> - the name of the interval variable.</dd>
<dt>Returns:</dt>
<dd>An IntervalVar object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newOptionalFixedInterval(long,long,com.google.ortools.sat.Literal,java.lang.String)">
<h3>newOptionalFixedInterval</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a></span>&nbsp;<span class="element-name">newOptionalFixedInterval</span><wbr><span class="parameters">(long&nbsp;start,
long&nbsp;size,
<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;isPresent,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Creates an optional fixed interval from start and size, and an isPresent literal.</div>
</section>
</li>
<li>
<section class="detail" id="addNoOverlap(com.google.ortools.sat.IntervalVar[])">
<h3>addNoOverlap</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addNoOverlap</span><wbr><span class="parameters">(<a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a>[]&nbsp;intervalVars)</span></div>
<div class="block">Adds <code>NoOverlap(intervalVars)</code>.
<p>A NoOverlap constraint ensures that all present intervals do not overlap in time.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>intervalVars</code> - the list of interval variables to constrain</dd>
<dt>Returns:</dt>
<dd>an instance of the Constraint class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addNoOverlap(java.lang.Iterable)">
<h3>addNoOverlap</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Constraint.html" title="class in com.google.ortools.sat">Constraint</a></span>&nbsp;<span class="element-name">addNoOverlap</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="IntervalVar.html" title="class in com.google.ortools.sat">IntervalVar</a>&gt;&nbsp;intervalVars)</span></div>
<div class="block">Adds <code>NoOverlap(intervalVars)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="addNoOverlap2D()">
<h3>addNoOverlap2D</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="NoOverlap2dConstraint.html" title="class in com.google.ortools.sat">NoOverlap2dConstraint</a></span>&nbsp;<span class="element-name">addNoOverlap2D</span>()</div>
<div class="block">Adds <code>NoOverlap2D(xIntervals, yIntervals)</code>.
<p>A NoOverlap2D constraint ensures that all present rectangles do not overlap on a plan. Each
rectangle is aligned with the X and Y axis, and is defined by two intervals which represent its
projection onto the X and Y axis.
<p>Furthermore, one box is optional if at least one of the x or y interval is optional.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an instance of the NoOverlap2dConstraint class. This class allows adding rectangles
incrementally.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addCumulative(com.google.ortools.sat.LinearArgument)">
<h3>addCumulative</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CumulativeConstraint.html" title="class in com.google.ortools.sat">CumulativeConstraint</a></span>&nbsp;<span class="element-name">addCumulative</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;capacity)</span></div>
<div class="block">Adds <code>Cumulative(capacity)</code>.
<p>This constraint enforces that:
<p><code>forall t: sum(demands[i] if (start(intervals[t]) &lt;= t &lt; end(intervals[t])) and (t is
present)) &lt;= capacity</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>capacity</code> - the maximum capacity of the cumulative constraint. It must be a positive affine
expression.</dd>
<dt>Returns:</dt>
<dd>an instance of the CumulativeConstraint class. this class allows adding (interval,
demand) pairs incrementally.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addCumulative(long)">
<h3>addCumulative</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CumulativeConstraint.html" title="class in com.google.ortools.sat">CumulativeConstraint</a></span>&nbsp;<span class="element-name">addCumulative</span><wbr><span class="parameters">(long&nbsp;capacity)</span></div>
<div class="block">Adds <code>Cumulative(capacity)</code>.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="#addCumulative(com.google.ortools.sat.LinearArgument)"><code>addCumulative(LinearArgument capacity)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addHint(com.google.ortools.sat.IntVar,long)">
<h3>addHint</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addHint</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>&nbsp;var,
long&nbsp;value)</span></div>
<div class="block">Adds hinting to a variable</div>
</section>
</li>
<li>
<section class="detail" id="clearHints()">
<h3>clearHints</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">clearHints</span>()</div>
<div class="block">Remove all solution hints</div>
</section>
</li>
<li>
<section class="detail" id="addAssumption(com.google.ortools.sat.Literal)">
<h3>addAssumption</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAssumption</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>&nbsp;lit)</span></div>
<div class="block">Adds a literal to the model as assumption</div>
</section>
</li>
<li>
<section class="detail" id="addAssumptions(com.google.ortools.sat.Literal[])">
<h3>addAssumptions</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAssumptions</span><wbr><span class="parameters">(<a href="Literal.html" title="interface in com.google.ortools.sat">Literal</a>[]&nbsp;literals)</span></div>
<div class="block">Adds multiple literals to the model as assumptions</div>
</section>
</li>
<li>
<section class="detail" id="clearAssumptions()">
<h3>clearAssumptions</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">clearAssumptions</span>()</div>
<div class="block">Remove all assumptions from the model</div>
</section>
</li>
<li>
<section class="detail" id="minimize(com.google.ortools.sat.LinearArgument)">
<h3>minimize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">minimize</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr)</span></div>
<div class="block">Adds a minimization objective of a linear expression.</div>
</section>
</li>
<li>
<section class="detail" id="minimize(com.google.ortools.sat.DoubleLinearExpr)">
<h3>minimize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">minimize</span><wbr><span class="parameters">(<a href="DoubleLinearExpr.html" title="class in com.google.ortools.sat">DoubleLinearExpr</a>&nbsp;expr)</span></div>
</section>
</li>
<li>
<section class="detail" id="maximize(com.google.ortools.sat.LinearArgument)">
<h3>maximize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">maximize</span><wbr><span class="parameters">(<a href="LinearArgument.html" title="interface in com.google.ortools.sat">LinearArgument</a>&nbsp;expr)</span></div>
<div class="block">Adds a maximization objective of a linear expression.</div>
</section>
</li>
<li>
<section class="detail" id="maximize(com.google.ortools.sat.DoubleLinearExpr)">
<h3>maximize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">maximize</span><wbr><span class="parameters">(<a href="DoubleLinearExpr.html" title="class in com.google.ortools.sat">DoubleLinearExpr</a>&nbsp;expr)</span></div>
</section>
</li>
<li>
<section class="detail" id="addDecisionStrategy(com.google.ortools.sat.IntVar[],com.google.ortools.sat.DecisionStrategyProto.VariableSelectionStrategy,com.google.ortools.sat.DecisionStrategyProto.DomainReductionStrategy)">
<h3>addDecisionStrategy</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addDecisionStrategy</span><wbr><span class="parameters">(<a href="IntVar.html" title="class in com.google.ortools.sat">IntVar</a>[]&nbsp;variables,
<a href="DecisionStrategyProto.VariableSelectionStrategy.html" title="enum in com.google.ortools.sat">DecisionStrategyProto.VariableSelectionStrategy</a>&nbsp;varStr,
<a href="DecisionStrategyProto.DomainReductionStrategy.html" title="enum in com.google.ortools.sat">DecisionStrategyProto.DomainReductionStrategy</a>&nbsp;domStr)</span></div>
<div class="block">Adds <code>DecisionStrategy(variables, varStr, domStr)</code>.</div>
</section>
</li>
<li>
<section class="detail" id="modelStats()">
<h3>modelStats</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">modelStats</span>()</div>
<div class="block">Returns some statistics on model as a string.</div>
</section>
</li>
<li>
<section class="detail" id="validate()">
<h3>validate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">validate</span>()</div>
<div class="block">Returns a non empty string explaining the issue if the model is invalid.</div>
</section>
</li>
<li>
<section class="detail" id="exportToFile(java.lang.String)">
<h3>exportToFile</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span>&nbsp;<span class="element-name">exportToFile</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;file)</span></div>
<div class="block">Write the model as a protocol buffer to 'file'.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>file</code> - file to write the model to. If the filename ends with 'txt', the
model will be written as a text file, otherwise, the binary format will be used.</dd>
<dt>Returns:</dt>
<dd>true if the model was correctly written.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="model()">
<h3>model</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CpModelProto.html" title="class in com.google.ortools.sat">CpModelProto</a></span>&nbsp;<span class="element-name">model</span>()</div>
</section>
</li>
<li>
<section class="detail" id="negated(int)">
<h3>negated</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">negated</span><wbr><span class="parameters">(int&nbsp;index)</span></div>
</section>
</li>
<li>
<section class="detail" id="getBuilder()">
<h3>getBuilder</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="CpModelProto.Builder.html" title="class in com.google.ortools.sat">CpModelProto.Builder</a></span>&nbsp;<span class="element-name">getBuilder</span>()</div>
<div class="block">Returns the model builder.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2022. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>