<ahref="linear__solver_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">// Copyright 2010-2021 Google LLC</span></div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment">// you may not use this file except in compliance with the License.</span></div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment">// You may obtain a copy of the License at</span></div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment">//</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment">//</span></div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment">// Unless required by applicable law or agreed to in writing, software</span></div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment">// See the License for the specific language governing permissions and</span></div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment">// limitations under the License.</span></div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> </div><divclass="line"><aname="l00134"></a><spanclass="lineno"> 134</span> <spanclass="preprocessor">#ifndef OR_TOOLS_LINEAR_SOLVER_LINEAR_SOLVER_H_</span></div><divclass="line"><aname="l00135"></a><spanclass="lineno"> 135</span> <spanclass="preprocessor">#define OR_TOOLS_LINEAR_SOLVER_LINEAR_SOLVER_H_</span></div><divclass="line"><aname="l00136"></a><spanclass="lineno"> 136</span> </div><divclass="line"><aname="l00137"></a><spanclass="lineno"> 137</span> <spanclass="preprocessor">#include <atomic></span></div><divclass="line"><aname="l00138"></a><spanclass="lineno"> 138</span> <spanclass="preprocessor">#include <cstdint></span></div><divclass="line"><aname="l00139"></a><spanclass="lineno"> 139</span> <spanclass="preprocessor">#include <functional></span></div><divclass="line"><aname="l00140"></a><spanclass="lineno"> 140</span> <spanclass="preprocessor">#include <limits></span></div><divclass="line"><aname="l00141"></a><spanclass="lineno"> 141</span> <spanclass="preprocessor">#include <map></span></div><divclass="line"><aname="l00142"></a><spanclass="lineno"> 142</span> <spanclass="preprocessor">#include <memory></span></div><divclass="line"><aname="l00143"></a><spanclass="lineno"> 143</span> <spanclass="preprocessor">#include <string></span></div><divclass="line"><aname="l00144"></a><spanclass="lineno"> 144</span> <spanclass="preprocessor">#include <utility></span></div><divclass="line"><aname="l00145"></a><spanclass="lineno"> 145</span> <spanclass="preprocessor">#include <vector></span></div><divclass="line"><aname="l00146"></a><spanclass="lineno"> 146</span> </div><divclass="line"><aname="l00147"></a><spanclass="lineno"> 147</span> <spanclass="preprocessor">#include "absl/container/flat_hash_map.h"</span></div><divclass="line"><ana
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587d">operations_research::MPSolver::ResultStatus</a></div><divclass="ttdeci">ResultStatus</div><divclass="ttdoc">The status of solving the problem.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00438">linear_solver.h:438</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a665001590f89bb9446d0030e2ef8047b"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a665001590f89bb9446d0030e2ef8047b">operations_research::MPConstraint::terms</a></div><divclass="ttdeci">const absl::flat_hash_map< const MPVariable *, double >& terms() const</div><divclass="ttdoc">Returns a map from variables to their coefficients in the constraint.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01223">linear_solver.h:1223</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aee8250cf90d66d569534338248924469"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aee8250cf90d66d569534338248924469">operations_research::MPSolver::ProblemType</a></div><divclass="ttdeci">virtual OptimizationProblemType ProblemType() const</div><divclass="ttdoc">Returns the optimization problem type set at construction.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00287">linear_solver.h:287</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a39f8d704429d775e3e73a53898c99712"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a39f8d704429d775e3e73a53898c99712">operations_research::MPSolver::LookupVariableOrNull</a></div><divclass="ttdeci">MPVariable * LookupVariableOrNull(const std::string &var_name) const</div><divclass="ttdoc">Looks up a variable by name, and returns nullptr if it does not exist.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00624">linear_solver.cc:624</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPSolver::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00832">linear_solver.h:832</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ac75b700ead5ff5d0944b5161e6dac9e8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ac75b700ead5ff5d0944b5161e6dac9e8">operations_research::MPSolver::InterruptSolve</a></div><divclass="ttdeci">bool InterruptSolve()</div><divclass="ttdoc">Interrupts the Solve() execution to terminate processing if possible.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01242">linear_solver.cc:1242</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a7319655592ea63d50ef2a6645e309784adabd0cf2fcb5726b7fc2aa3d54d5f3ff"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a7319655592ea63d50ef2a6645e309784adabd0cf2fcb5726b7fc2aa3d54d5f3ff">operations_research::MPSolverParameters::INCREMENTALITY</a></div><divclass="ttdoc">Advanced usage: incrementality from one solve to the next.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01404">linear_solver.h:1404</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a487ab8f764e55a258fdeeace99ba2f00"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a487ab8f764e55a258fdeeace99ba2f00">operations_research::MPSolver::CreateSolver</a></div><divclass="ttdeci">static MPSolver * CreateSolver(const std::string &solver_id)</div><divclass="ttdoc">Recommended factory method to create a MPSolver instance, especially in non C++ languages.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00609">linear_solver.cc:609</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a1816929ef3ed29e5884291472b1b8739"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a1816929ef3ed29e5884291472b1b8739">operations_research::MPSolverParameters::SetDoubleParam</a></div><divclass="ttdeci">void SetDoubleParam(MPSolverParameters::DoubleParam param, double value)</div><divclass="ttdoc">Sets a double parameter to a specific value.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01986">linear_solver.cc:1986</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a8554e97d98d05016f16300cedf2be9f6"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a8554e97d98d05016f16300cedf2be9f6">operations_research::MPObjective::Value</a></div><divclass="ttdeci">double Value() const</div><divclass="ttdoc">Returns the objective value of the best solution found so far.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00254">linear_solver.cc:254</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_ad01b184e1c49d8aabd15a268ff976ac8a3b48e7f264e3228b1494312657fd611a"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#ad01b184e1c49d8aabd15a268ff976ac8a3b48e7f264e3228b1494312657fd611a">operations_research::MPSolverParameters::PRESOLVE_ON</a></div><divclass="ttdoc">Presolve is on.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01414">linear_solver.h:1414</a></div></div>
<divclass="ttc"id="log__severity_8h_html_acdd38e3c9f22f127d7776920e3079eda"><divclass="ttname"><ahref="log__severity_8h.html#acdd38e3c9f22f127d7776920e3079eda">FATAL</a></div><divclass="ttdeci">const int FATAL</div><divclass="ttdef"><b>Definition:</b><ahref="log__severity_8h_source.html#l00032">log_severity.h:32</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a5ff11cd513c803ba3f75f2f672f1cf6f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a5ff11cd513c803ba3f75f2f672f1cf6f">operations_research::MPSolver::constraints</a></div><divclass="ttdeci">const std::vector< MPConstraint * >& constraints() const</div><divclass="ttdoc">Returns the array of constraints handled by the MPSolver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00376">linear_solver.h:376</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPObjective::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01043">linear_solver.h:1043</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a102b847e8034d765338f17041aa09468"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a102b847e8034d765338f17041aa09468">operations_research::MPSolver::ParseSolverTypeOrDie</a></div><divclass="ttdeci">static OptimizationProblemType ParseSolverTypeOrDie(const std::string &solver_id)</div><divclass="ttdoc">Parses the name of the solver and returns the correct optimization type or dies.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00601">linear_solver.cc:601</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aa71d36872f416feaa853788a7a7a7ef8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aa71d36872f416feaa853788a7a7a7ef8">operations_research::MPSolver::Clear</a></div><divclass="ttdeci">void Clear()</div><divclass="ttdoc">Clears the objective (including the optimization direction), all variables and constraints.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01222">linear_solver.cc:1222</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a3d269786b0c64ba034e7e8a8a09213fc"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a3d269786b0c64ba034e7e8a8a09213fc">operations_research::MPObjective::SetOffset</a></div><divclass="ttdeci">void SetOffset(double value)</div><divclass="ttdoc">Sets the constant term in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00197">linear_solver.cc:197</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_ad8227ba86a01f26e4f173cd5e219d5d1"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#ad8227ba86a01f26e4f173cd5e219d5d1">operations_research::MPConstraint::name</a></div><divclass="ttdeci">const std::string & name() const</div><divclass="ttdoc">Returns the name of the constraint.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01199">linear_solver.h:1199</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a5004489a36bc1393efa043044a63732f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a5004489a36bc1393efa043044a63732f">operations_research::MPSolver::Objective</a></div><divclass="ttdeci">const MPObjective & Objective() const</div><divclass="ttdoc">Returns the objective object.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00427">linear_solver.h:427</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_aeeef6511f130ba8a9db2c308dbeada5c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#aeeef6511f130ba8a9db2c308dbeada5c">operations_research::MPSolverParameters::MPSolverParameters</a></div><divclass="ttdeci">MPSolverParameters()</div><divclass="ttdoc">The constructor sets all parameters to their default value.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01976">linear_solver.cc:1976</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a570e7e2c973cc96bedb0db08f5e062e3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a570e7e2c973cc96bedb0db08f5e062e3">operations_research::MPConstraint::ub</a></div><divclass="ttdeci">double ub() const</div><divclass="ttdoc">Returns the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01231">linear_solver.h:1231</a></div></div>
<divclass="ttc"id="log__severity_8h_html_ac9bcbe19995a8140cd4ec61773cd6e67"><divclass="ttname"><ahref="log__severity_8h.html#ac9bcbe19995a8140cd4ec61773cd6e67">ERROR</a></div><divclass="ttdeci">const int ERROR</div><divclass="ttdef"><b>Definition:</b><ahref="log__severity_8h_source.html#l00032">log_severity.h:32</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a2def997791a2a5119c3502aa68c34181"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a2def997791a2a5119c3502aa68c34181">operations_research::MPObjective::SetCoefficient</a></div><divclass="ttdeci">void SetCoefficient(const MPVariable *const var, double coeff)</div><divclass="ttdoc">Sets the coefficient of the variable in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00182">linear_solver.cc:182</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_af89ed33216d227599a7752bc0dc97ce3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#af89ed33216d227599a7752bc0dc97ce3">operations_research::MPSolverParameters::ResetDoubleParam</a></div><divclass="ttdeci">void ResetDoubleParam(MPSolverParameters::DoubleParam param)</div><divclass="ttdoc">Sets a double parameter to its default value (default value defined in MPSolverParameters if it exist...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l02049">linear_solver.cc:2049</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_aa71d36872f416feaa853788a7a7a7ef8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#aa71d36872f416feaa853788a7a7a7ef8">operations_research::MPConstraint::Clear</a></div><divclass="ttdeci">void Clear()</div><divclass="ttdoc">Clears all variables and coefficients. Does not clear the bounds.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00127">linear_solver.cc:127</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a9ec8e5b1017d35c4ce048c67330b0a10"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a9ec8e5b1017d35c4ce048c67330b0a10">operations_research::MPObjective::BestBound</a></div><divclass="ttdeci">double BestBound() const</div><divclass="ttdoc">Returns the best objective bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00261">linear_solver.cc:261</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a9d3beb2afe4ae647674b054bf29290e2"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a9d3beb2afe4ae647674b054bf29290e2">operations_research::MPSolver::NumVariables</a></div><divclass="ttdeci">int NumVariables() const</div><divclass="ttdoc">Returns the number of variables.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00299">linear_solver.h:299</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a45c44ca4a082621f3057280d40333ed0"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a45c44ca4a082621f3057280d40333ed0">operations_research::MPSolver::SupportsProblemType</a></div><divclass="ttdeci">static bool SupportsProblemType(OptimizationProblemType problem_type)</div><divclass="ttdoc">Whether the given problem type is supported (this will depend on the targets that you linked).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00467">linear_solver.cc:467</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_abc6bcaac179c603ad3386fa7449c86a7"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#abc6bcaac179c603ad3386fa7449c86a7">operations_research::MPVariable::integer</a></div><divclass="ttdeci">bool integer() const</div><divclass="ttdoc">Returns the integrality requirement of the variable.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01080">linear_solver.h:1080</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_aa3d71b1d66352ee439fdcdf8f3b93067"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#aa3d71b1d66352ee439fdcdf8f3b93067">operations_research::MPObjective::minimization</a></div><divclass="ttdeci">bool minimization() const</div><divclass="ttdoc">Is the optimization direction set to minimize?</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00252">linear_solver.cc:252</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a76c87990aabadd148304b95332a60ff8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">operations_research::MPSolver::OptimizationProblemType</a></div><divclass="ttdeci">OptimizationProblemType</div><divclass="ttdoc">The type of problems (LP or MIP) that will be solved and the underlying solver (GLOP,...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00190">linear_solver.h:190</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_ac187b2ba08422f3a06b8d1e1502ceea6"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#ac187b2ba08422f3a06b8d1e1502ceea6">operations_research::MPObjective::SetMinimization</a></div><divclass="ttdeci">void SetMinimization()</div><divclass="ttdoc">Sets the optimization direction to minimize.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01004">linear_solver.h:1004</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a02bfb5cd5deeb2d5149f6976ee0456d6"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a02bfb5cd5deeb2d5149f6976ee0456d6">operations_research::MPConstraint::SetBounds</a></div><divclass="ttdeci">void SetBounds(double lb, double ub)</div><divclass="ttdoc">Sets both the lower and upper bounds.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00132">linear_solver.cc:132</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html">operations_research::MPObjective</a></div><divclass="ttdoc">A class to express a linear objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00944">linear_solver.h:944</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#aee1ddf25e86286c16face31551751bda">operations_research::MPVariable::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01159">linear_solver.h:1159</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_afd922eb2bef96597c426557a8056f76d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#afd922eb2bef96597c426557a8056f76d">operations_research::MPSolver::BasisStatus</a></div><divclass="ttdeci">BasisStatus</div><divclass="ttdoc">Advanced usage: possible basis status values for a variable and the slack variable of a linear constr...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00669">linear_solver.h:669</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a7319655592ea63d50ef2a6645e309784"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a7319655592ea63d50ef2a6645e309784">operations_research::MPSolverParameters::IntegerParam</a></div><divclass="ttdeci">IntegerParam</div><divclass="ttdoc">Enumeration of parameters that take integer or categorical values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01398">linear_solver.h:1398</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a8844020cc1376123531cd53c831acdef"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a8844020cc1376123531cd53c831acdef">operations_research::MPVariable::MPVariableSolutionValueTest</a></div><divclass="ttdeci">friend class MPVariableSolutionValueTest</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01156">linear_solver.h:1156</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a226456dfb15300dd4e59d0bf80d0ce07"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a226456dfb15300dd4e59d0bf80d0ce07">operations_research::MPSolver::MutableObjective</a></div><divclass="ttdeci">MPObjective * MutableObjective()</div><divclass="ttdoc">Returns the mutable objective object.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00430">linear_solver.h:430</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a372de693ad40b3f42839c8ec6ac845f4"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a372de693ad40b3f42839c8ec6ac845f4">operations_research::MPSolver::Reset</a></div><divclass="ttdeci">void Reset()</div><divclass="ttdoc">Advanced usage: resets extracted model to solve from scratch.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01240">linear_solver.cc:1240</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a356d08f701ec7c64a00c19818bb72886"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a356d08f701ec7c64a00c19818bb72886">operations_research::MPConstraint::GetCoefficient</a></div><divclass="ttdeci">double GetCoefficient(const MPVariable *const var) const</div><divclass="ttdoc">Gets the coefficient of a given variable on the constraint (which is 0 if the variable does not appea...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00095">linear_solver.cc:95</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a4a790b8c94fdaa097e7ad19bb5acaf45"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a4a790b8c94fdaa097e7ad19bb5acaf45">operations_research::MPSolver::MakeBoolVar</a></div><divclass="ttdeci">MPVariable * MakeBoolVar(const std::string &name)</div><divclass="ttdoc">Creates a boolean variable.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01274">linear_solver.cc:1274</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a09343ed6dde3059443fe6f4caa16e986"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a09343ed6dde3059443fe6f4caa16e986">operations_research::MPSolverParameters::ResetIntegerParam</a></div><divclass="ttdeci">void ResetIntegerParam(MPSolverParameters::IntegerParam param)</div><divclass="ttdoc">Sets an integer parameter to its default value (default value defined in MPSolverParameters if it exi...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l02070">linear_solver.cc:2070</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_aeae0a6e1e84d015690573b08d62b1395"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#aeae0a6e1e84d015690573b08d62b1395">operations_research::MPSolverParameters::GetIntegerParam</a></div><divclass="ttdeci">int GetIntegerParam(MPSolverParameters::IntegerParam param) const</div><divclass="ttdoc">Returns the value of an integer parameter.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l02124">linear_solver.cc:2124</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPConstraint::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01291">linear_solver.h:1291</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_ae189b253817210ee7e605b089ccf47e4"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#ae189b253817210ee7e605b089ccf47e4">operations_research::MPSolverParameters::SetIntegerParam</a></div><divclass="ttdeci">void SetIntegerParam(MPSolverParameters::IntegerParam param, int value)</div><divclass="ttdoc">Sets a integer parameter to a specific value.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l02007">linear_solver.cc:2007</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a9df947ed3bb70075e234f8f0f78bc8ee"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a9df947ed3bb70075e234f8f0f78bc8ee">operations_research::MPSolver::ClampSolutionWithinBounds</a></div><divclass="ttdeci">absl::Status ClampSolutionWithinBounds()</div><divclass="ttdoc">Resets values of out of bound variables to the corresponding bound and returns an error if any of the...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01486">linear_solver.cc:1486</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_ac195da617c5cdd546ab7ecc67a2e7235"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#ac195da617c5cdd546ab7ecc67a2e7235">operations_research::MPObjective::MaximizeLinearExpr</a></div><divclass="ttdeci">void MaximizeLinearExpr(const LinearExpr &linear_expr)</div><divclass="ttdoc">Resets the current objective to maximize linear_expr.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00989">linear_solver.h:989</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a4bf4b01cb836a567c90aeeea374ca2a2"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a4bf4b01cb836a567c90aeeea374ca2a2">operations_research::MPSolver::SetHint</a></div><divclass="ttdeci">void SetHint(std::vector< std::pair< const MPVariable *, double >> hint)</div><divclass="ttdoc">Sets a hint for solution.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01711">linear_solver.cc:1711</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_acdb0e5753d20e4d3ece49a0451d24c4f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#acdb0e5753d20e4d3ece49a0451d24c4f">operations_research::MPSolver::MPSolver</a></div><divclass="ttdeci">MPSolver(const std::string &name, OptimizationProblemType problem_type)</div><divclass="ttdoc">Create a solver with the given name and underlying solver backend.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00450">linear_solver.cc:450</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html">operations_research::MPVariable</a></div><divclass="ttdoc">The class for variables of a Mathematical Programming (MP) model.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01071">linear_solver.h:1071</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPConstraint::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01295">linear_solver.h:1295</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_aecd5fee61b6013b1207c2ea622c849b5"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#aecd5fee61b6013b1207c2ea622c849b5">operations_research::MPVariable::basis_status</a></div><divclass="ttdeci">MPSolver::BasisStatus basis_status() const</div><divclass="ttdoc">Advanced usage: returns the basis status of the variable in the current solution (only available for ...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00292">linear_solver.cc:292</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a77083241e8bdb93b619c7b9feaf82dec"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a77083241e8bdb93b619c7b9feaf82dec">operations_research::MPSolver::SetSolverSpecificParametersAsString</a></div><divclass="ttdeci">bool SetSolverSpecificParametersAsString(const std::string &parameters)</div><divclass="ttdoc">Advanced usage: pass solver specific parameters in text format.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00351">linear_solver.cc:351</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a9333144b7d28f68a7537b2ba19a1ba9b"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a9333144b7d28f68a7537b2ba19a1ba9b">operations_research::MPSolver::MakeIntVarArray</a></div><divclass="ttdeci">void MakeIntVarArray(int nb, double lb, double ub, const std::string &name, std::vector< MPVariable * > *vars)</div><divclass="ttdoc">Creates an array of integer variables.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01301">linear_solver.cc:1301</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a397e8c8da87415d5408e2dd5ec3e9932af5546ac8a26f50d8798bf634598a7eba"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a397e8c8da87415d5408e2dd5ec3e9932af5546ac8a26f50d8798bf634598a7eba">operations_research::MPSolverParameters::RELATIVE_MIP_GAP</a></div><divclass="ttdoc">Limit for relative MIP gap.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01384">linear_solver.h:1384</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a3eee00e1029a4006afbd791f78d91657"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a3eee00e1029a4006afbd791f78d91657">operations_research::MPObjective::OptimizeLinearExpr</a></div><divclass="ttdeci">void OptimizeLinearExpr(const LinearExpr &linear_expr, bool is_maximization)</div><divclass="ttdoc">Resets the current objective to take the value of linear_expr, and sets the objective direction to ma...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00212">linear_solver.cc:212</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587dae071e79c23f061c9dd00ee09519a0031"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587dae071e79c23f061c9dd00ee09519a0031">operations_research::MPSolver::MODEL_INVALID</a></div><divclass="ttdoc">the model is trivially invalid (NaN coefficients, etc).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00450">linear_solver.h:450</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPSolver::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00831">linear_solver.h:831</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a397e8c8da87415d5408e2dd5ec3e9932"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a397e8c8da87415d5408e2dd5ec3e9932">operations_research::MPSolverParameters::DoubleParam</a></div><divclass="ttdeci">DoubleParam</div><divclass="ttdoc">Enumeration of parameters that take continuous values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01382">linear_solver.h:1382</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_interface_html_a2cb8082675772ca81d04e87b6f4b1c8b"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_interface.html#a2cb8082675772ca81d04e87b6f4b1c8b">operations_research::MPSolverInterface::kDummyVariableIndex</a></div><divclass="ttdeci">static const int kDummyVariableIndex</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01758">linear_solver.h:1758</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPSolver::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00825">linear_solver.h:825</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a570e7e2c973cc96bedb0db08f5e062e3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a570e7e2c973cc96bedb0db08f5e062e3">operations_research::MPVariable::ub</a></div><divclass="ttdeci">double ub() const</div><divclass="ttdoc">Returns the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01098">linear_solver.h:1098</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a02bfb5cd5deeb2d5149f6976ee0456d6"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a02bfb5cd5deeb2d5149f6976ee0456d6">operations_research::MPVariable::SetBounds</a></div><divclass="ttdeci">void SetBounds(double lb, double ub)</div><divclass="ttdoc">Sets both the lower and upper bounds.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00304">linear_solver.cc:304</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a849bf49baad56df58c018e8ab09456fb"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a849bf49baad56df58c018e8ab09456fb">operations_research::MPSolver::SetNumThreads</a></div><divclass="ttdeci">absl::Status SetNumThreads(int num_threads)</div><divclass="ttdoc">Sets the number of threads to use by the underlying solver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00340">linear_solver.cc:340</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_abdb0854fa090b30b7bdad88bc610d18a"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#abdb0854fa090b30b7bdad88bc610d18a">operations_research::MPSolver::LookupConstraintOrNull</a></div><divclass="ttdeci">MPConstraint * LookupConstraintOrNull(const std::string &constraint_name) const</div><divclass="ttdoc">Looks up a constraint by name, and returns nullptr if it does not exist.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00633">linear_solver.cc:633</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_ad7c866ce738bfb6ac5fcee91fed998ed"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#ad7c866ce738bfb6ac5fcee91fed998ed">operations_research::MPSolverParameters::kDefaultIntegerParamValue</a></div><divclass="ttdeci">static const int kDefaultIntegerParamValue</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01450">linear_solver.h:1450</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a942431e14468f0267cd417fabc48f829"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a942431e14468f0267cd417fabc48f829">operations_research::MPSolver::ComputeConstraintActivities</a></div><divclass="ttdeci">std::vector< double > ComputeConstraintActivities() const</div><divclass="ttdoc">Advanced usage: compute the "activities" of all constraints, which are the sums of their linear terms...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01504">linear_solver.cc:1504</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a4eef77bb51bde41e69bed87ea44b86e1"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a4eef77bb51bde41e69bed87ea44b86e1">operations_research::MPSolver::ComputeExactConditionNumber</a></div><divclass="ttdeci">double ComputeExactConditionNumber() const</div><divclass="ttdoc">Advanced usage: computes the exact condition number of the current scaled basis: L1norm(B) * L1norm(i...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01674">linear_solver.cc:1674</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPVariable::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01151">linear_solver.h:1151</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a2c50b77c283c82d632f0dc605ceca3c3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a2c50b77c283c82d632f0dc605ceca3c3">operations_research::MPSolver::VerifySolution</a></div><divclass="ttdeci">bool VerifySolution(double tolerance, bool log_errors) const</div><divclass="ttdoc">Advanced usage: Verifies the correctness of the solution.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01520">linear_solver.cc:1520</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a4198b9880783bbbea8b517cc8ce868b3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a4198b9880783bbbea8b517cc8ce868b3">operations_research::MPSolver::iterations</a></div><divclass="ttdeci">int64_t iterations() const</div><divclass="ttdoc">Returns the number of simplex iterations.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01670">linear_solver.cc:1670</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_abc0dba97ca1c7e5cabcbe0e13adabca7"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#abc0dba97ca1c7e5cabcbe0e13adabca7">operations_research::MPSolver::MakeVar</a></div><divclass="ttdeci">MPVariable * MakeVar(double lb, double ub, bool integer, const std::string &name)</div><divclass="ttdoc">Creates a variable with the given bounds, integrality requirement and name.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01250">linear_solver.cc:1250</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aaa766a9aa802903bf7a6e5b8fb82c70c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aaa766a9aa802903bf7a6e5b8fb82c70c">operations_research::MPSolver::Write</a></div><divclass="ttdeci">void Write(const std::string &file_name)</div><divclass="ttdoc">Writes the model using the solver internal write function.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01421">linear_solver.cc:1421</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_ad8227ba86a01f26e4f173cd5e219d5d1"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#ad8227ba86a01f26e4f173cd5e219d5d1">operations_research::MPVariable::name</a></div><divclass="ttdeci">const std::string & name() const</div><divclass="ttdoc">Returns the name of the variable.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01074">linear_solver.h:1074</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a372de693ad40b3f42839c8ec6ac845f4"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a372de693ad40b3f42839c8ec6ac845f4">operations_research::MPSolverParameters::Reset</a></div><divclass="ttdeci">void Reset()</div><divclass="ttdoc">Sets all parameters to their default value.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l02095">linear_solver.cc:2095</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPVariable::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01149">linear_solver.h:1149</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a79b59c0c868544afdaa05d89c8f8541f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a79b59c0c868544afdaa05d89c8f8541f">operations_research::MPSolverParameters::LpAlgorithmValues</a></div><divclass="ttdeci">LpAlgorithmValues</div><divclass="ttdoc">LP algorithm to use.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01418">linear_solver.h:1418</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_adf1a0cc6a3736f3db9880392efe02f0e"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#adf1a0cc6a3736f3db9880392efe02f0e">operations_research::MPVariable::solution_value</a></div><divclass="ttdeci">double solution_value() const</div><divclass="ttdoc">Returns the value of the variable in the current solution.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00269">linear_solver.cc:269</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPConstraint::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01296">linear_solver.h:1296</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_ad90797a6c268fa29b515bdb5972c7bfb"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#ad90797a6c268fa29b515bdb5972c7bfb">operations_research::MPVariable::SetLB</a></div><divclass="ttdeci">void SetLB(double lb)</div><divclass="ttdoc">Sets the lower bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01101">linear_solver.h:1101</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html">operations_research::MPConstraint</a></div><divclass="ttdoc">The class for constraints of a Mathematical Programming (MP) model.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01196">linear_solver.h:1196</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587da03f919221217f95d21a593a7120165e1"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587da03f919221217f95d21a593a7120165e1">operations_research::MPSolver::FEASIBLE</a></div><divclass="ttdoc">feasible, or stopped by limit.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00442">linear_solver.h:442</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#aee1ddf25e86286c16face31551751bda">operations_research::MPObjective::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01050">linear_solver.h:1050</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a356d08f701ec7c64a00c19818bb72886"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a356d08f701ec7c64a00c19818bb72886">operations_research::MPObjective::GetCoefficient</a></div><divclass="ttdeci">double GetCoefficient(const MPVariable *const var) const</div><divclass="ttdoc">Gets the coefficient of a given variable in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00176">linear_solver.cc:176</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a397e8c8da87415d5408e2dd5ec3e9932a8c7c9aed0dcd36fc9a9af2fab295caf3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a397e8c8da87415d5408e2dd5ec3e9932a8c7c9aed0dcd36fc9a9af2fab295caf3">operations_research::MPSolverParameters::PRIMAL_TOLERANCE</a></div><divclass="ttdoc">Advanced usage: tolerance for primal feasibility of basic solutions.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01392">linear_solver.h:1392</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aee1ddf25e86286c16face31551751bda">operations_research::MPSolver::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00837">linear_solver.h:837</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a25a1112e410b183f49ef4ce8da1bdc74a62fd26c37f80b6aabec3b463c55a1c85"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a25a1112e410b183f49ef4ce8da1bdc74a62fd26c37f80b6aabec3b463c55a1c85">operations_research::MPSolverParameters::SCALING_ON</a></div><divclass="ttdoc">Scaling is on.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01444">linear_solver.h:1444</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPConstraint::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01293">linear_solver.h:1293</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_ad90797a6c268fa29b515bdb5972c7bfb"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#ad90797a6c268fa29b515bdb5972c7bfb">operations_research::MPConstraint::SetLB</a></div><divclass="ttdeci">void SetLB(double lb)</div><divclass="ttdoc">Sets the lower bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01234">linear_solver.h:1234</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#aee1ddf25e86286c16face31551751bda">operations_research::MPConstraint::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01300">linear_solver.h:1300</a></div></div>
<divclass="ttc"id="linear__expr_8h_html"><divclass="ttname"><ahref="linear__expr_8h.html">linear_expr.h</a></div><divclass="ttdoc">This file allows you to write natural code (like a mathematical equation) to model optimization probl...</div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_aeec48f5c4d2d1cc79926734f9b586ad5"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#aeec48f5c4d2d1cc79926734f9b586ad5">operations_research::MPConstraint::dual_value</a></div><divclass="ttdeci">double dual_value() const</div><divclass="ttdoc">Advanced usage: returns the dual value of the constraint in the current solution (only available for ...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00141">linear_solver.cc:141</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_ad01b184e1c49d8aabd15a268ff976ac8a9d70aea1ff48f145644d82953fd4322a"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#ad01b184e1c49d8aabd15a268ff976ac8a9d70aea1ff48f145644d82953fd4322a">operations_research::MPSolverParameters::PRESOLVE_OFF</a></div><divclass="ttdoc">Presolve is off.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01412">linear_solver.h:1412</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_acca41811e8aaab0112b987749c0ecb93"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#acca41811e8aaab0112b987749c0ecb93">operations_research::MPConstraint::index</a></div><divclass="ttdeci">int index() const</div><divclass="ttdoc">Returns the index of the constraint in the MPSolver::constraints_.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01264">linear_solver.h:1264</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ab32654406932f9a6afcf44c4d5a143d2"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ab32654406932f9a6afcf44c4d5a143d2">operations_research::MPSolver::OutputIsEnabled</a></div><divclass="ttdeci">bool OutputIsEnabled() const</div><divclass="ttdoc">Controls (or queries) the amount of output produced by the underlying solver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01664">linear_solver.cc:1664</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a68da85394a0aa65bda40355466afba93"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a68da85394a0aa65bda40355466afba93">operations_research::MPObjective::MinimizeLinearExpr</a></div><divclass="ttdeci">void MinimizeLinearExpr(const LinearExpr &linear_expr)</div><divclass="ttdoc">Resets the current objective to minimize linear_expr.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00993">linear_solver.h:993</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a03666f2e70e42a9560aa9ce7416d2644"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a03666f2e70e42a9560aa9ce7416d2644">operations_research::MPSolver::NumConstraints</a></div><divclass="ttdeci">int NumConstraints() const</div><divclass="ttdoc">Returns the number of constraints.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00369">linear_solver.h:369</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPObjective::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01041">linear_solver.h:1041</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a648a61e30b62b1c17ab1f49fe6c9ed8d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a648a61e30b62b1c17ab1f49fe6c9ed8d">operations_research::MPSolver::MakeNumVarArray</a></div><divclass="ttdeci">void MakeNumVarArray(int nb, double lb, double ub, const std::string &name, std::vector< MPVariable * > *vars)</div><divclass="ttdoc">Creates an array of continuous variables.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01295">linear_solver.cc:1295</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_acca41811e8aaab0112b987749c0ecb93"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#acca41811e8aaab0112b987749c0ecb93">operations_research::MPVariable::index</a></div><divclass="ttdeci">int index() const</div><divclass="ttdoc">Returns the index of the variable in the MPSolver::variables_.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01092">linear_solver.h:1092</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPObjective::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01045">linear_solver.h:1045</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a7319655592ea63d50ef2a6645e309784a4d52eb956c0c02b9cbc37720f27abbb0"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a7319655592ea63d50ef2a6645e309784a4d52eb956c0c02b9cbc37720f27abbb0">operations_research::MPSolverParameters::SCALING</a></div><divclass="ttdoc">Advanced usage: enable or disable matrix scaling.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01406">linear_solver.h:1406</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_aecd5fee61b6013b1207c2ea622c849b5"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#aecd5fee61b6013b1207c2ea622c849b5">operations_research::MPConstraint::basis_status</a></div><divclass="ttdeci">MPSolver::BasisStatus basis_status() const</div><divclass="ttdoc">Advanced usage: returns the basis status of the constraint.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00150">linear_solver.cc:150</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a692014f815d7927760762b046675f658"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a692014f815d7927760762b046675f658">operations_research::MPSolverParameters::GetDoubleParam</a></div><divclass="ttdeci">double GetDoubleParam(MPSolverParameters::DoubleParam param) const</div><divclass="ttdoc">Returns the value of a double parameter.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l02105">linear_solver.cc:2105</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a397e8c8da87415d5408e2dd5ec3e9932a184546f243ecb7d9be48659f8be82992"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a397e8c8da87415d5408e2dd5ec3e9932a184546f243ecb7d9be48659f8be82992">operations_research::MPSolverParameters::DUAL_TOLERANCE</a></div><divclass="ttdoc">Advanced usage: tolerance for dual feasibility of basic solutions.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01394">linear_solver.h:1394</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a615d9bd9c0c88aa56d31fdf95fbb5749"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a615d9bd9c0c88aa56d31fdf95fbb5749">operations_research::MPObjective::AddLinearExpr</a></div><divclass="ttdeci">void AddLinearExpr(const LinearExpr &linear_expr)</div><divclass="ttdoc">Adds linear_expr to the current objective, does not change the direction.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00224">linear_solver.cc:224</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ab0f83070e72cee887e874382ee6d6958"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ab0f83070e72cee887e874382ee6d6958">operations_research::MPSolver::LoadModelFromProto</a></div><divclass="ttdeci">MPSolverResponseStatus LoadModelFromProto(const MPModelProto &input_model, std::string *error_message)</div><divclass="ttdoc">Loads model from protocol buffer.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00644">linear_solver.cc:644</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a3df780d69d67985929c76e750f913e21"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a3df780d69d67985929c76e750f913e21">operations_research::MPObjective::maximization</a></div><divclass="ttdeci">bool maximization() const</div><divclass="ttdoc">Is the optimization direction set to maximize?</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00250">linear_solver.cc:250</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_accc4f1882f13ad57ef6bbe8fbe5d365d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#accc4f1882f13ad57ef6bbe8fbe5d365d">operations_research::MPConstraint::lb</a></div><divclass="ttdeci">double lb() const</div><divclass="ttdoc">Returns the lower bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01228">linear_solver.h:1228</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_acd4056eff31d3008809b2e0b8a823373"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#acd4056eff31d3008809b2e0b8a823373">operations_research::MPSolver::variable</a></div><divclass="ttdeci">MPVariable * variable(int index) const</div><divclass="ttdoc">Returns the variable at position index.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00310">linear_solver.h:310</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a2def997791a2a5119c3502aa68c34181"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a2def997791a2a5119c3502aa68c34181">operations_research::MPConstraint::SetCoefficient</a></div><divclass="ttdeci">void SetCoefficient(const MPVariable *const var, double coeff)</div><divclass="ttdoc">Sets the coefficient of the variable on the constraint.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00101">linear_solver.cc:101</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aa38b5851203ddc9f64f01b87ad346ea1"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aa38b5851203ddc9f64f01b87ad346ea1">operations_research::MPSolver::nodes</a></div><divclass="ttdeci">int64_t nodes() const</div><divclass="ttdoc">Returns the number of branch-and-bound nodes evaluated during the solve.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01672">linear_solver.cc:1672</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a665001590f89bb9446d0030e2ef8047b"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a665001590f89bb9446d0030e2ef8047b">operations_research::MPObjective::terms</a></div><divclass="ttdeci">const absl::flat_hash_map< const MPVariable *, double >& terms() const</div><divclass="ttdoc">Returns a map from variables to their coefficients in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00972">linear_solver.h:972</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587da0e6873a155f86a4695f463bf8601d05f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587da0e6873a155f86a4695f463bf8601d05f">operations_research::MPSolver::NOT_SOLVED</a></div><divclass="ttdoc">not been solved yet.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00452">linear_solver.h:452</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_accc4f1882f13ad57ef6bbe8fbe5d365d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#accc4f1882f13ad57ef6bbe8fbe5d365d">operations_research::MPVariable::lb</a></div><divclass="ttdeci">double lb() const</div><divclass="ttdoc">Returns the lower bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01095">linear_solver.h:1095</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ae233b0f771236fe24ad255830012159f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ae233b0f771236fe24ad255830012159f">operations_research::MPSolver::LoadSolutionFromProto</a></div><divclass="ttdeci">absl::Status LoadSolutionFromProto(const MPSolutionResponse &response, double tolerance=kDefaultPrimalTolerance)</div><divclass="ttdoc">Load a solution encoded in a protocol buffer onto this solver for easy access via the MPSolver interf...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01134">linear_solver.cc:1134</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a215b66c2ff063ffbf5b538ee402304cba34d17de87fc7339e07256ca5319dfa67"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a215b66c2ff063ffbf5b538ee402304cba34d17de87fc7339e07256ca5319dfa67">operations_research::MPSolverParameters::INCREMENTALITY_ON</a></div><divclass="ttdoc">Reuse results from previous solve as much as the underlying solver allows.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01436">linear_solver.h:1436</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_acede9075c58cb2f506c99a9fe6f20303"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#acede9075c58cb2f506c99a9fe6f20303">operations_research::MPSolver::Solve</a></div><divclass="ttdeci">ResultStatus Solve()</div><divclass="ttdoc">Solves the problem using the default parameter values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01389">linear_solver.cc:1389</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a34caaebb9e2b365ef0ec449e870f5b5d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a34caaebb9e2b365ef0ec449e870f5b5d">operations_research::MPSolver::variables</a></div><divclass="ttdeci">const std::vector< MPVariable * >& variables() const</div><divclass="ttdoc">Returns the array of variables handled by the MPSolver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00305">linear_solver.h:305</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html">operations_research::MPSolver</a></div><divclass="ttdoc">This mathematical programming (MP) solver class is the main class though which users build and solve ...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00182">linear_solver.h:182</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_linear_expr_html"><divclass="ttname"><ahref="classoperations__research_1_1_linear_expr.html">operations_research::LinearExpr</a></div><divclass="ttdoc">LinearExpr models a quantity that is linear in the decision variables (MPVariable) of an optimization...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__expr_8h_source.html#l00114">linear_expr.h:114</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPVariable::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01154">linear_solver.h:1154</a></div></div>
<divclass="ttc"id="namespaceoperations__research_html"><divclass="ttname"><ahref="namespaceoperations__research.html">operations_research</a></div><divclass="ttdoc">Collection of objects used to extend the Constraint Solver library.</div><divclass="ttdef"><b>Definition:</b><ahref="dense__doubly__linked__list_8h_source.html#l00021">dense_doubly_linked_list.h:21</a></div></div>
<divclass="ttc"id="namespaceoperations__research_html_a51e0728b2f50b8aa26f3115138b8ff1b"><divclass="ttname"><ahref="namespaceoperations__research.html#a51e0728b2f50b8aa26f3115138b8ff1b">operations_research::operator<<</a></div><divclass="ttdeci">std::ostream & operator<<(std::ostream &out, const Assignment &assignment)</div><divclass="ttdef"><b>Definition:</b><ahref="constraint__solver_2assignment_8cc_source.html#l01094">constraint_solver/assignment.cc:1094</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a200ccd114eb5057856c05501c2d4abe5"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a200ccd114eb5057856c05501c2d4abe5">operations_research::MPSolver::MakeBoolVarArray</a></div><divclass="ttdeci">void MakeBoolVarArray(int nb, const std::string &name, std::vector< MPVariable * > *vars)</div><divclass="ttdoc">Creates an array of boolean variables.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01307">linear_solver.cc:1307</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a0623b9007b18f0e4bb078fb6eb4dadaa"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a0623b9007b18f0e4bb078fb6eb4dadaa">operations_research::MPSolverParameters::kUnknownIntegerParamValue</a></div><divclass="ttdeci">static const int kUnknownIntegerParamValue</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01454">linear_solver.h:1454</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587dadd7ccc352d727224d39519584ed37cd7"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587dadd7ccc352d727224d39519584ed37cd7">operations_research::MPSolver::ABNORMAL</a></div><divclass="ttdoc">abnormal, i.e., error of some kind.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00448">linear_solver.h:448</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a215b66c2ff063ffbf5b538ee402304cba01f385fe2acfe85efe038aa62b31edfb"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a215b66c2ff063ffbf5b538ee402304cba01f385fe2acfe85efe038aa62b31edfb">operations_research::MPSolverParameters::INCREMENTALITY_OFF</a></div><divclass="ttdoc">Start solve from scratch.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01430">linear_solver.h:1430</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a4584733ca3a135bb0e29e7b29988901d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a4584733ca3a135bb0e29e7b29988901d">operations_research::MPVariable::SetUB</a></div><divclass="ttdeci">void SetUB(double ub)</div><divclass="ttdoc">Sets the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01104">linear_solver.h:1104</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_a4584733ca3a135bb0e29e7b29988901d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#a4584733ca3a135bb0e29e7b29988901d">operations_research::MPConstraint::SetUB</a></div><divclass="ttdeci">void SetUB(double ub)</div><divclass="ttdoc">Sets the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01237">linear_solver.h:1237</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aadcc43314d8f7efc8021b3946a792735"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aadcc43314d8f7efc8021b3946a792735">operations_research::MPSolver::MakeRowConstraint</a></div><divclass="ttdeci">MPConstraint * MakeRowConstraint()</div><divclass="ttdoc">Creates a constraint with -infinity and +infinity bounds.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01316">linear_solver.cc:1316</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_ab0c809243bacbba99e083bddd16ebcaa"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#ab0c809243bacbba99e083bddd16ebcaa">operations_research::MPConstraint::is_lazy</a></div><divclass="ttdeci">bool is_lazy() const</div><divclass="ttdoc">Advanced usage: returns true if the constraint is "lazy" (see below).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01243">linear_solver.h:1243</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a858f72e8c0c03339c8d797d41a6fd4b8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a858f72e8c0c03339c8d797d41a6fd4b8">operations_research::MPSolver::SolverVersion</a></div><divclass="ttdeci">std::string SolverVersion() const</div><divclass="ttdoc">Returns a string describing the underlying solver and its version.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00332">linear_solver.cc:332</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a191cd9b1ba3e3c01a558a1f6c02a4429"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a191cd9b1ba3e3c01a558a1f6c02a4429">operations_research::MPSolver::Name</a></div><divclass="ttdeci">const std::string & Name() const</div><divclass="ttdoc">Returns the name of the model set at construction.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00282">linear_solver.h:282</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html">operations_research::MPSolverParameters</a></div><divclass="ttdoc">This class stores parameter settings for LP and MIP solvers.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01379">linear_solver.h:1379</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_aa71d36872f416feaa853788a7a7a7ef8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#aa71d36872f416feaa853788a7a7a7ef8">operations_research::MPObjective::Clear</a></div><divclass="ttdeci">void Clear()</div><divclass="ttdoc">Clears the offset, all variables and coefficients, and the optimization direction.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00232">linear_solver.cc:232</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ae74ce5ecb0dd3b4bcddb31bd59da7089"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ae74ce5ecb0dd3b4bcddb31bd59da7089">operations_research::MPSolver::LoadModelFromProtoWithUniqueNamesOrDie</a></div><divclass="ttdeci">MPSolverResponseStatus LoadModelFromProtoWithUniqueNamesOrDie(const MPModelProto &input_model, std::string *error_message)</div><divclass="ttdoc">Loads model from protocol buffer.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00657">linear_solver.cc:657</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_aa9a00625dd56e64b32c97b95445a1b9c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#aa9a00625dd56e64b32c97b95445a1b9c">operations_research::MPSolver::ExportModelAsLpFormat</a></div><divclass="ttdeci">bool ExportModelAsLpFormat(bool obfuscate, std::string *model_str) const</div><divclass="ttdoc">Shortcuts to the homonymous MPModelProtoExporter methods, via exporting to a MPModelProto with Export...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01687">linear_solver.cc:1687</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPVariable::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01153">linear_solver.h:1153</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a7319655592ea63d50ef2a6645e309784a420e8170e7ec327dd847b9610fc4565b"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a7319655592ea63d50ef2a6645e309784a420e8170e7ec327dd847b9610fc4565b">operations_research::MPSolverParameters::LP_ALGORITHM</a></div><divclass="ttdoc">Algorithm to solve linear programs.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01402">linear_solver.h:1402</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_ad01b184e1c49d8aabd15a268ff976ac8"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#ad01b184e1c49d8aabd15a268ff976ac8">operations_research::MPSolverParameters::PresolveValues</a></div><divclass="ttdeci">PresolveValues</div><divclass="ttdoc">For each categorical parameter, enumeration of possible values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01410">linear_solver.h:1410</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_linear_range_html"><divclass="ttname"><ahref="classoperations__research_1_1_linear_range.html">operations_research::LinearRange</a></div><divclass="ttdoc">An expression of the form:</div><divclass="ttdef"><b>Definition:</b><ahref="linear__expr_8h_source.html#l00192">linear_expr.h:192</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a880227c1bbe5a1a2a21796a947804615"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a880227c1bbe5a1a2a21796a947804615">operations_research::MPSolver::ExportModelToProto</a></div><divclass="ttdeci">void ExportModelToProto(MPModelProto *output_model) const</div><divclass="ttdoc">Exports model to protocol buffer.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01045">linear_solver.cc:1045</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a94743823a7ad3c565902fcf7956d4ae2"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a94743823a7ad3c565902fcf7956d4ae2">operations_research::MPVariable::SetInteger</a></div><divclass="ttdeci">void SetInteger(bool integer)</div><divclass="ttdoc">Sets the integrality requirement of the variable.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00313">linear_solver.cc:313</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPObjective::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01046">linear_solver.h:1046</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a8eb213aafa3773dfb6a05d184e61bb8a"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a8eb213aafa3773dfb6a05d184e61bb8a">operations_research::MPSolver::GetNumThreads</a></div><divclass="ttdeci">int GetNumThreads() const</div><divclass="ttdoc">Returns the number of threads to be used during solve.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00637">linear_solver.h:637</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a19476a1c421b9ee05231ee9af2387057"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a19476a1c421b9ee05231ee9af2387057">operations_research::MPSolver::constraint</a></div><divclass="ttdeci">MPConstraint * constraint(int index) const</div><divclass="ttdoc">Returns the constraint at the given index.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00379">linear_solver.h:379</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPSolver::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00830">linear_solver.h:830</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a018794097e44ee8189380eef2b0f267f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a018794097e44ee8189380eef2b0f267f">operations_research::MPSolver::FillSolutionResponseProto</a></div><divclass="ttdeci">void FillSolutionResponseProto(MPSolutionResponse *response) const</div><divclass="ttdoc">Encodes the current solution in a solution response protocol buffer.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00818">linear_solver.cc:818</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a96ffc785b7b2135c7980c985883ffdd3"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a96ffc785b7b2135c7980c985883ffdd3">operations_research::MPObjective::offset</a></div><divclass="ttdeci">double offset() const</div><divclass="ttdoc">Gets the constant term in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00980">linear_solver.h:980</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a7a302239fbb1f938a513636a6c7a3e2d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a7a302239fbb1f938a513636a6c7a3e2d">operations_research::MPVariable::reduced_cost</a></div><divclass="ttdeci">double reduced_cost() const</div><divclass="ttdoc">Advanced usage: returns the reduced cost of the variable in the current solution (only available for ...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00283">linear_solver.cc:283</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_addbc1b5c5e43ec84e2ffc8ec3ab9d830"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#addbc1b5c5e43ec84e2ffc8ec3ab9d830">operations_research::MPObjective::SetOptimizationDirection</a></div><divclass="ttdeci">void SetOptimizationDirection(bool maximize)</div><divclass="ttdoc">Sets the optimization direction (maximize: true or minimize: false).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00239">linear_solver.cc:239</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_ab9b8c3ea993ee19fd9cb68fb3240e09f"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#ab9b8c3ea993ee19fd9cb68fb3240e09f">operations_research::MPSolver::NextSolution</a></div><divclass="ttdeci">ABSL_MUST_USE_RESULT bool NextSolution()</div><divclass="ttdoc">Some solvers (MIP only, not LP) can produce multiple solutions to the problem.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l01735">linear_solver.cc:1735</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_html_a99d93314680536172186038b12cf2d85"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver.html#a99d93314680536172186038b12cf2d85">operations_research::MPSolver::ParseSolverType</a></div><divclass="ttdeci">static bool ParseSolverType(absl::string_view solver_id, OptimizationProblemType *type)</div><divclass="ttdoc">Parses the name of the solver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8cc_source.html#l00539">linear_solver.cc:539</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_objective_html_a0ae674872034b9d61b389da66cb9503a"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_objective.html#a0ae674872034b9d61b389da66cb9503a">operations_research::MPObjective::SetMaximization</a></div><divclass="ttdeci">void SetMaximization()</div><divclass="ttdoc">Sets the optimization direction to maximize.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01007">linear_solver.h:1007</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_variable_html_a2bf24627eb5f1b609cd2704bddc3750d"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_variable.html#a2bf24627eb5f1b609cd2704bddc3750d">operations_research::MPVariable::branching_priority</a></div><divclass="ttdeci">int branching_priority() const</div><divclass="ttdoc">Advanced usage: Certain MIP solvers (e.g.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01141">linear_solver.h:1141</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_constraint_html_ac7502afa7413b2969adcfe572accefde"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_constraint.html#ac7502afa7413b2969adcfe572accefde">operations_research::MPConstraint::set_is_lazy</a></div><divclass="ttdeci">void set_is_lazy(bool laziness)</div><divclass="ttdoc">Advanced usage: sets the constraint "laziness".</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01258">linear_solver.h:1258</a></div></div>
<divclass="ttc"id="classoperations__research_1_1_m_p_solver_parameters_html_a25a1112e410b183f49ef4ce8da1bdc74ab3f9de74d2d20c2eebcec60b7273d485"><divclass="ttname"><ahref="classoperations__research_1_1_m_p_solver_parameters.html#a25a1112e410b183f49ef4ce8da1bdc74ab3f9de74d2d20c2eebcec60b7273d485">operations_research::MPSolverParameters::SCALING_OFF</a></div><divclass="ttdoc">Scaling is off.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01442">linear_solver.h:1442</a></div></div>