Files
ortools-clone/docs/cpp_linear/namespaceoperations__research.html
Mizux Seiha 3b81c981c2 Update doc
2022-03-04 00:19:15 +01:00

1062 lines
63 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OR-Tools</title>
<meta http-equiv="Content-Type" content="text/html;"/>
<meta charset="utf-8"/>
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">Google OR-Tools 9.3</span>
</div>
</div>
<div id="content" style="width: 100%; overflow: hidden;">
<div style="margin-left: 15px; margin-top: 5px; float: left; color: #145A32;">
<h2>C++ Reference</h2>
<ul>
<li><a href="../cpp_algorithms/annotated.html">Algorithms</a></li>
<li><a href="../cpp_sat/annotated.html">CP-SAT</a></li>
<li><a href="../cpp_graph/annotated.html">Graph</a></li>
<li><a href="../cpp_routing/annotated.html">Routing</a></li>
<li><a href="../cpp_linear/annotated.html">Linear solver</a></li>
</ul>
</div>
<div id="content">
<div align="center">
<h1 style="color: #145A32;">C++ Reference: Linear solver</h1>
</div>
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('namespaceoperations__research.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">operations_research Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classoperations__research_1_1_linear_expr.html" title="LinearExpr models a quantity that is linear in the decision variables (MPVariable) of an optimization...">LinearExpr</a> models a quantity that is linear in the decision variables (<a class="el" href="classoperations__research_1_1_m_p_variable.html" title="The class for variables of a Mathematical Programming (MP) model.">MPVariable</a>) of an optimization problem, i.e. <a href="classoperations__research_1_1_linear_expr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An expression of the form: <a href="classoperations__research_1_1_linear_range.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_m_p_constraint.html">MPConstraint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class for constraints of a Mathematical Programming (MP) model. <a href="classoperations__research_1_1_m_p_constraint.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export options. <a href="structoperations__research_1_1_m_p_model_export_options.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_m_p_objective.html">MPObjective</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A class to express a linear objective. <a href="classoperations__research_1_1_m_p_objective.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_m_p_solver.html">MPSolver</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This mathematical programming (MP) solver class is the main class though which users build and solve problems. <a href="classoperations__research_1_1_m_p_solver.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_m_p_solver_interface.html">MPSolverInterface</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_m_p_solver_parameters.html">MPSolverParameters</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class stores parameter settings for LP and MIP solvers. <a href="classoperations__research_1_1_m_p_solver_parameters.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1_m_p_variable.html">MPVariable</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The class for variables of a Mathematical Programming (MP) model. <a href="classoperations__research_1_1_m_p_variable.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6dcd119b77400c438a8a316093d553f2"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a6dcd119b77400c438a8a316093d553f2">operator&lt;&lt;</a> (std::ostream &amp;stream, const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;linear_expr)</td></tr>
<tr class="separator:a6dcd119b77400c438a8a316093d553f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f9b83239285f5fdfcac1b8e8b4f162"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a97f9b83239285f5fdfcac1b8e8b4f162">operator+</a> (<a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> lhs, const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;rhs)</td></tr>
<tr class="separator:a97f9b83239285f5fdfcac1b8e8b4f162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a515cdaf4f9c4000bb3482a0c450e23c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a515cdaf4f9c4000bb3482a0c450e23c3">operator-</a> (<a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> lhs, const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;rhs)</td></tr>
<tr class="separator:a515cdaf4f9c4000bb3482a0c450e23c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138bb0f103cd9d68e4d13fa773901186"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a138bb0f103cd9d68e4d13fa773901186">operator*</a> (<a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> lhs, double rhs)</td></tr>
<tr class="separator:a138bb0f103cd9d68e4d13fa773901186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abebdd7f40e90df8dc7d557b6e26da942"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#abebdd7f40e90df8dc7d557b6e26da942">operator/</a> (<a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> lhs, double rhs)</td></tr>
<tr class="separator:abebdd7f40e90df8dc7d557b6e26da942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62b131d2829f1cdacd2414d2d7bc6c7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a62b131d2829f1cdacd2414d2d7bc6c7c">operator*</a> (double lhs, <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> rhs)</td></tr>
<tr class="separator:a62b131d2829f1cdacd2414d2d7bc6c7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d1fa20f9c9faf7027c0b16f97139e80"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a6d1fa20f9c9faf7027c0b16f97139e80">operator&lt;=</a> (const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;lhs, const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;rhs)</td></tr>
<tr class="separator:a6d1fa20f9c9faf7027c0b16f97139e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08146f196bd9c3f492ee108732449ced"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a08146f196bd9c3f492ee108732449ced">operator==</a> (const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;lhs, const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;rhs)</td></tr>
<tr class="separator:a08146f196bd9c3f492ee108732449ced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4052f92af6a7fbb1d45e17befcb68e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ac4052f92af6a7fbb1d45e17befcb68e0">operator&gt;=</a> (const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;lhs, const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;rhs)</td></tr>
<tr class="separator:ac4052f92af6a7fbb1d45e17befcb68e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a653e11eef608bfb88f21325e7fa12f2b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a653e11eef608bfb88f21325e7fa12f2b">SolverTypeIsMip</a> (MPModelRequest::SolverType solver_type)</td></tr>
<tr class="separator:a653e11eef608bfb88f21325e7fa12f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a417ee4c2129def5589f952ac70233b2e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a417ee4c2129def5589f952ac70233b2e">SolverTypeIsMip</a> (<a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a> solver_type)</td></tr>
<tr class="separator:a417ee4c2129def5589f952ac70233b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc3e3b80841b587c6fbfd9e9f3ec9c59"><td class="memItemLeft" align="right" valign="top">const absl::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#afc3e3b80841b587c6fbfd9e9f3ec9c59">ToString</a> (<a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a> optimization_problem_type)</td></tr>
<tr class="separator:afc3e3b80841b587c6fbfd9e9f3ec9c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6e53662a1f604ececc66ebeef3902f3"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#af6e53662a1f604ececc66ebeef3902f3">operator&lt;&lt;</a> (std::ostream &amp;os, <a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a> optimization_problem_type)</td></tr>
<tr class="separator:af6e53662a1f604ececc66ebeef3902f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45a908ea6b50a2a7d3f6bd59de6db37c"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a45a908ea6b50a2a7d3f6bd59de6db37c">operator&lt;&lt;</a> (std::ostream &amp;os, <a class="el" href="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587d">MPSolver::ResultStatus</a> status)</td></tr>
<tr class="separator:a45a908ea6b50a2a7d3f6bd59de6db37c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61dc18a85425d0a7cf6aa3e7ce3199f6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a61dc18a85425d0a7cf6aa3e7ce3199f6">AbslParseFlag</a> (absl::string_view text, <a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a> *solver_type, std::string *error)</td></tr>
<tr class="separator:a61dc18a85425d0a7cf6aa3e7ce3199f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af04d1dfc591c35038a974202e50e541f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#af04d1dfc591c35038a974202e50e541f">AbslUnparseFlag</a> (<a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a> solver_type)</td></tr>
<tr class="separator:af04d1dfc591c35038a974202e50e541f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52d451963bca16889b3f1e23450a8f2d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a52d451963bca16889b3f1e23450a8f2d">MPSolverResponseStatusIsRpcError</a> (MPSolverResponseStatus status)</td></tr>
<tr class="separator:a52d451963bca16889b3f1e23450a8f2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e14c987281f826f0737c14f5abc00b7"><td class="memItemLeft" align="right" valign="top">absl::StatusOr&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a2e14c987281f826f0737c14f5abc00b7">ExportModelAsLpFormat</a> (const MPModelProto &amp;model, const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;options=<a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>())</td></tr>
<tr class="memdesc:a2e14c987281f826f0737c14f5abc00b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the current model (variables, constraints, objective) as a string encoded in the so-called "CPLEX LP file format" as generated by SCIP. <a href="namespaceoperations__research.html#a2e14c987281f826f0737c14f5abc00b7">More...</a><br /></td></tr>
<tr class="separator:a2e14c987281f826f0737c14f5abc00b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c2e3f703497d288ee03330752d3a4c3"><td class="memItemLeft" align="right" valign="top">absl::StatusOr&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a2c2e3f703497d288ee03330752d3a4c3">ExportModelAsMpsFormat</a> (const MPModelProto &amp;model, const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;options=<a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>())</td></tr>
<tr class="memdesc:a2c2e3f703497d288ee03330752d3a4c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the current model (variables, constraints, objective) as a string encoded in MPS file format, using the "free" MPS format. <a href="namespaceoperations__research.html#a2c2e3f703497d288ee03330752d3a4c3">More...</a><br /></td></tr>
<tr class="separator:a2c2e3f703497d288ee03330752d3a4c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d319c19b685fe608fe013b573081351"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a4d319c19b685fe608fe013b573081351">ExportModelAsLpFormatReturnString</a> (const MPModelProto &amp;input_model, const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;options=<a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>())</td></tr>
<tr class="separator:a4d319c19b685fe608fe013b573081351"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37abd61c0d982af79257814b6d3a733e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a37abd61c0d982af79257814b6d3a733e">ExportModelAsMpsFormatReturnString</a> (const MPModelProto &amp;input_model, const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;options=<a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>())</td></tr>
<tr class="separator:a37abd61c0d982af79257814b6d3a733e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7ee6518d30b6929f4bd0229da743f18"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa7ee6518d30b6929f4bd0229da743f18">FindErrorInMPModelProto</a> (const MPModelProto &amp;model, double abs_value_threshold=0.0, bool accept_trivially_infeasible_bounds=false)</td></tr>
<tr class="memdesc:aa7ee6518d30b6929f4bd0229da743f18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an empty string iff the model is valid and not trivially infeasible. <a href="namespaceoperations__research.html#aa7ee6518d30b6929f4bd0229da743f18">More...</a><br /></td></tr>
<tr class="separator:aa7ee6518d30b6929f4bd0229da743f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2506c50d4eb5505613003f685fd1af9f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a2506c50d4eb5505613003f685fd1af9f">FindErrorInMPModelDeltaProto</a> (const MPModelDeltaProto &amp;delta, const MPModelProto &amp;model)</td></tr>
<tr class="memdesc:a2506c50d4eb5505613003f685fd1af9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Like FindErrorInMPModelProto, but for a MPModelDeltaProto applied to a given baseline model (assumed valid, eg. <a href="namespaceoperations__research.html#a2506c50d4eb5505613003f685fd1af9f">More...</a><br /></td></tr>
<tr class="separator:a2506c50d4eb5505613003f685fd1af9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97d22724a2d11191dcf78eb8e5e5064a"><td class="memItemLeft" align="right" valign="top">absl::optional&lt; LazyMutableCopy&lt; MPModelProto &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a97d22724a2d11191dcf78eb8e5e5064a">ExtractValidMPModelOrPopulateResponseStatus</a> (const MPModelRequest &amp;request, MPSolutionResponse *response)</td></tr>
<tr class="memdesc:a97d22724a2d11191dcf78eb8e5e5064a"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the model is valid and non-empty, returns it (possibly after extracting the model_delta). <a href="namespaceoperations__research.html#a97d22724a2d11191dcf78eb8e5e5064a">More...</a><br /></td></tr>
<tr class="separator:a97d22724a2d11191dcf78eb8e5e5064a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a518848a6b3e172d127121637ab5c608d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a518848a6b3e172d127121637ab5c608d">ExtractValidMPModelInPlaceOrPopulateResponseStatus</a> (MPModelRequest *request, MPSolutionResponse *response)</td></tr>
<tr class="memdesc:a518848a6b3e172d127121637ab5c608d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="namespaceoperations__research.html#a97d22724a2d11191dcf78eb8e5e5064a" title="If the model is valid and non-empty, returns it (possibly after extracting the model_delta).">ExtractValidMPModelOrPopulateResponseStatus()</a>, but works in-place: if the MPModel needed extraction, it will be populated in the request, and it returns the success boolean. <a href="namespaceoperations__research.html#a518848a6b3e172d127121637ab5c608d">More...</a><br /></td></tr>
<tr class="separator:a518848a6b3e172d127121637ab5c608d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ee4d82cf625670cdc1f52197454654"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae4ee4d82cf625670cdc1f52197454654">FindFeasibilityErrorInSolutionHint</a> (const MPModelProto &amp;model, double tolerance)</td></tr>
<tr class="memdesc:ae4ee4d82cf625670cdc1f52197454654"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an empty string if the solution hint given in the model is a feasible solution. <a href="namespaceoperations__research.html#ae4ee4d82cf625670cdc1f52197454654">More...</a><br /></td></tr>
<tr class="separator:ae4ee4d82cf625670cdc1f52197454654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6841e1b78c89cf9139fc1b9ba1ae8cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#ae6841e1b78c89cf9139fc1b9ba1ae8cb">MergeMPConstraintProtoExceptTerms</a> (const MPConstraintProto &amp;from, MPConstraintProto *to)</td></tr>
<tr class="separator:ae6841e1b78c89cf9139fc1b9ba1ae8cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ed9bad79131000a00e7f01a5f5b824c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3ed9bad79131000a00e7f01a5f5b824c">ApplyVerifiedMPModelDelta</a> (const MPModelDeltaProto &amp;delta, MPModelProto *model)</td></tr>
<tr class="separator:a3ed9bad79131000a00e7f01a5f5b824c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a221d711fbd5a16db9dc92a3c5095cbf5"><td class="memItemLeft" align="right" valign="top">constexpr double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a221d711fbd5a16db9dc92a3c5095cbf5">kDefaultPrimalTolerance</a> = 1e-07</td></tr>
<tr class="separator:a221d711fbd5a16db9dc92a3c5095cbf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a61dc18a85425d0a7cf6aa3e7ce3199f6" name="a61dc18a85425d0a7cf6aa3e7ce3199f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61dc18a85425d0a7cf6aa3e7ce3199f6">&#9670;&nbsp;</a></span>AbslParseFlag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::AbslParseFlag </td>
<td>(</td>
<td class="paramtype">absl::string_view&#160;</td>
<td class="paramname"><em>text</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a> *&#160;</td>
<td class="paramname"><em>solver_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string *&#160;</td>
<td class="paramname"><em>error</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af04d1dfc591c35038a974202e50e541f" name="af04d1dfc591c35038a974202e50e541f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af04d1dfc591c35038a974202e50e541f">&#9670;&nbsp;</a></span>AbslUnparseFlag()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::AbslUnparseFlag </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a>&#160;</td>
<td class="paramname"><em>solver_type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8h_source.html#l00959">959</a> of file <a class="el" href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
</div>
</div>
<a id="a3ed9bad79131000a00e7f01a5f5b824c" name="a3ed9bad79131000a00e7f01a5f5b824c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ed9bad79131000a00e7f01a5f5b824c">&#9670;&nbsp;</a></span>ApplyVerifiedMPModelDelta()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::ApplyVerifiedMPModelDelta </td>
<td>(</td>
<td class="paramtype">const MPModelDeltaProto &amp;&#160;</td>
<td class="paramname"><em>delta</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">MPModelProto *&#160;</td>
<td class="paramname"><em>model</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2e14c987281f826f0737c14f5abc00b7" name="a2e14c987281f826f0737c14f5abc00b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e14c987281f826f0737c14f5abc00b7">&#9670;&nbsp;</a></span>ExportModelAsLpFormat()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">absl::StatusOr&lt; std::string &gt; operations_research::ExportModelAsLpFormat </td>
<td>(</td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;&#160;</td>
<td class="paramname"><em>options</em> = <code><a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Outputs the current model (variables, constraints, objective) as a string encoded in the so-called "CPLEX LP file format" as generated by SCIP. </p>
<p >The LP file format is easily readable by a human.</p>
<p >Returns false if some error has occurred during execution. The validity of names is automatically checked. If a variable name or a constraint name is invalid or non-existent, a new valid name is automatically generated.</p>
<p >If 'obfuscated' is true, the variable and constraint names of proto_ are not used. Variable and constraint names of the form "V12345" and "C12345" are used instead.</p>
<p >For more information about the different LP file formats: <a href="http://lpsolve.sourceforge.net/5.5/lp-format.htm">http://lpsolve.sourceforge.net/5.5/lp-format.htm</a> The following give a reasonable idea of the CPLEX LP file format: <a href="http://lpsolve.sourceforge.net/5.5/CPLEX-format.htm">http://lpsolve.sourceforge.net/5.5/CPLEX-format.htm</a> <a href="http://tinyurl.com/cplex-lp-format">http://tinyurl.com/cplex-lp-format</a> <a href="http://www.gurobi.com/documentation/5.1/reference-manual/node871">http://www.gurobi.com/documentation/5.1/reference-manual/node871</a> </p>
</div>
</div>
<a id="a4d319c19b685fe608fe013b573081351" name="a4d319c19b685fe608fe013b573081351"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d319c19b685fe608fe013b573081351">&#9670;&nbsp;</a></span>ExportModelAsLpFormatReturnString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::ExportModelAsLpFormatReturnString </td>
<td>(</td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>input_model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;&#160;</td>
<td class="paramname"><em>options</em> = <code><a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="model__exporter__swig__helper_8h_source.html#l00024">24</a> of file <a class="el" href="model__exporter__swig__helper_8h_source.html">model_exporter_swig_helper.h</a>.</p>
</div>
</div>
<a id="a2c2e3f703497d288ee03330752d3a4c3" name="a2c2e3f703497d288ee03330752d3a4c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c2e3f703497d288ee03330752d3a4c3">&#9670;&nbsp;</a></span>ExportModelAsMpsFormat()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">absl::StatusOr&lt; std::string &gt; operations_research::ExportModelAsMpsFormat </td>
<td>(</td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;&#160;</td>
<td class="paramname"><em>options</em> = <code><a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Outputs the current model (variables, constraints, objective) as a string encoded in MPS file format, using the "free" MPS format. </p>
<p >Returns false if some error has occurred during execution. Models with maximization objectives trigger an error, because MPS can encode only minimization problems.</p>
<p >The validity of names is automatically checked. If a variable name or a constraint name is invalid or non-existent, a new valid name is automatically generated.</p>
<p >Name validity and obfuscation works exactly as in <a class="el" href="namespaceoperations__research.html#a2e14c987281f826f0737c14f5abc00b7" title="Outputs the current model (variables, constraints, objective) as a string encoded in the so-called &quot;C...">ExportModelAsLpFormat()</a>.</p>
<p >For more information about the MPS format: <a href="http://en.wikipedia.org/wiki/MPS_(format)">http://en.wikipedia.org/wiki/MPS_(format)</a> A close-to-original description coming from OSL: <a href="http://tinyurl.com/mps-format-by-osl">http://tinyurl.com/mps-format-by-osl</a> A recent description from CPLEX: <a href="http://tinyurl.com/mps-format-by-cplex">http://tinyurl.com/mps-format-by-cplex</a> CPLEX extensions: <a href="http://tinyurl.com/mps-extensions-by-cplex">http://tinyurl.com/mps-extensions-by-cplex</a> Gurobi's description: <a href="http://www.gurobi.com/documentation/5.1/reference-manual/node869">http://www.gurobi.com/documentation/5.1/reference-manual/node869</a> </p>
</div>
</div>
<a id="a37abd61c0d982af79257814b6d3a733e" name="a37abd61c0d982af79257814b6d3a733e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37abd61c0d982af79257814b6d3a733e">&#9670;&nbsp;</a></span>ExportModelAsMpsFormatReturnString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::ExportModelAsMpsFormatReturnString </td>
<td>(</td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>input_model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a> &amp;&#160;</td>
<td class="paramname"><em>options</em> = <code><a class="el" href="structoperations__research_1_1_m_p_model_export_options.html">MPModelExportOptions</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="model__exporter__swig__helper_8h_source.html#l00031">31</a> of file <a class="el" href="model__exporter__swig__helper_8h_source.html">model_exporter_swig_helper.h</a>.</p>
</div>
</div>
<a id="a518848a6b3e172d127121637ab5c608d" name="a518848a6b3e172d127121637ab5c608d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a518848a6b3e172d127121637ab5c608d">&#9670;&nbsp;</a></span>ExtractValidMPModelInPlaceOrPopulateResponseStatus()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::ExtractValidMPModelInPlaceOrPopulateResponseStatus </td>
<td>(</td>
<td class="paramtype">MPModelRequest *&#160;</td>
<td class="paramname"><em>request</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">MPSolutionResponse *&#160;</td>
<td class="paramname"><em>response</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Like <a class="el" href="namespaceoperations__research.html#a97d22724a2d11191dcf78eb8e5e5064a" title="If the model is valid and non-empty, returns it (possibly after extracting the model_delta).">ExtractValidMPModelOrPopulateResponseStatus()</a>, but works in-place: if the MPModel needed extraction, it will be populated in the request, and it returns the success boolean. </p>
</div>
</div>
<a id="a97d22724a2d11191dcf78eb8e5e5064a" name="a97d22724a2d11191dcf78eb8e5e5064a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97d22724a2d11191dcf78eb8e5e5064a">&#9670;&nbsp;</a></span>ExtractValidMPModelOrPopulateResponseStatus()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">absl::optional&lt; LazyMutableCopy&lt; MPModelProto &gt; &gt; operations_research::ExtractValidMPModelOrPopulateResponseStatus </td>
<td>(</td>
<td class="paramtype">const MPModelRequest &amp;&#160;</td>
<td class="paramname"><em>request</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">MPSolutionResponse *&#160;</td>
<td class="paramname"><em>response</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the model is valid and non-empty, returns it (possibly after extracting the model_delta). </p>
<p >If invalid or empty, updates <code>response</code> and returns null. </p>
</div>
</div>
<a id="a2506c50d4eb5505613003f685fd1af9f" name="a2506c50d4eb5505613003f685fd1af9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2506c50d4eb5505613003f685fd1af9f">&#9670;&nbsp;</a></span>FindErrorInMPModelDeltaProto()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::FindErrorInMPModelDeltaProto </td>
<td>(</td>
<td class="paramtype">const MPModelDeltaProto &amp;&#160;</td>
<td class="paramname"><em>delta</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>model</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Like FindErrorInMPModelProto, but for a MPModelDeltaProto applied to a given baseline model (assumed valid, eg. </p>
<p >FindErrorInMPModelProto(model)=""). Works in O(|model_delta|) + O(num_vars in model), but the latter term has a very small constant factor. </p>
</div>
</div>
<a id="aa7ee6518d30b6929f4bd0229da743f18" name="aa7ee6518d30b6929f4bd0229da743f18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7ee6518d30b6929f4bd0229da743f18">&#9670;&nbsp;</a></span>FindErrorInMPModelProto()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::FindErrorInMPModelProto </td>
<td>(</td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>abs_value_threshold</em> = <code>0.0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>accept_trivially_infeasible_bounds</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an empty string iff the model is valid and not trivially infeasible. </p>
<p >Otherwise, returns a description of the first error or trivial infeasibility variable or constraint bound encountered.</p>
<p >abs_value_threshold is the (exclusive) limit for the abs value of constraint coefficients, objective coefficients, etc. If unspecified, or 0, it defaults to FLAGS_model_validator_infinity.</p>
<p >NOTE(user): the code of this method (and the client code too!) is considerably simplified by this string-based, simple API. If clients require it, we could add a formal error status enum. </p>
</div>
</div>
<a id="ae4ee4d82cf625670cdc1f52197454654" name="ae4ee4d82cf625670cdc1f52197454654"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4ee4d82cf625670cdc1f52197454654">&#9670;&nbsp;</a></span>FindFeasibilityErrorInSolutionHint()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string operations_research::FindFeasibilityErrorInSolutionHint </td>
<td>(</td>
<td class="paramtype">const MPModelProto &amp;&#160;</td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an empty string if the solution hint given in the model is a feasible solution. </p>
<p >Otherwise, returns a description of the first reason for infeasibility.</p>
<p >This function can be useful for debugging/checking that the given solution hint is feasible when it is expected to be the case. The feasibility is checked up to the given tolerance using the ::operations_research::IsLowerWithinTolerance() function. </p>
</div>
</div>
<a id="ae6841e1b78c89cf9139fc1b9ba1ae8cb" name="ae6841e1b78c89cf9139fc1b9ba1ae8cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6841e1b78c89cf9139fc1b9ba1ae8cb">&#9670;&nbsp;</a></span>MergeMPConstraintProtoExceptTerms()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operations_research::MergeMPConstraintProtoExceptTerms </td>
<td>(</td>
<td class="paramtype">const MPConstraintProto &amp;&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">MPConstraintProto *&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a52d451963bca16889b3f1e23450a8f2d" name="a52d451963bca16889b3f1e23450a8f2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52d451963bca16889b3f1e23450a8f2d">&#9670;&nbsp;</a></span>MPSolverResponseStatusIsRpcError()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::MPSolverResponseStatusIsRpcError </td>
<td>(</td>
<td class="paramtype">MPSolverResponseStatus&#160;</td>
<td class="paramname"><em>status</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a62b131d2829f1cdacd2414d2d7bc6c7c" name="a62b131d2829f1cdacd2414d2d7bc6c7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62b131d2829f1cdacd2414d2d7bc6c7c">&#9670;&nbsp;</a></span>operator*() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> operations_research::operator* </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a138bb0f103cd9d68e4d13fa773901186" name="a138bb0f103cd9d68e4d13fa773901186"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a138bb0f103cd9d68e4d13fa773901186">&#9670;&nbsp;</a></span>operator*() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> operations_research::operator* </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a97f9b83239285f5fdfcac1b8e8b4f162" name="a97f9b83239285f5fdfcac1b8e8b4f162"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97f9b83239285f5fdfcac1b8e8b4f162">&#9670;&nbsp;</a></span>operator+()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> operations_research::operator+ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a515cdaf4f9c4000bb3482a0c450e23c3" name="a515cdaf4f9c4000bb3482a0c450e23c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a515cdaf4f9c4000bb3482a0c450e23c3">&#9670;&nbsp;</a></span>operator-()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> operations_research::operator- </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="abebdd7f40e90df8dc7d557b6e26da942" name="abebdd7f40e90df8dc7d557b6e26da942"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abebdd7f40e90df8dc7d557b6e26da942">&#9670;&nbsp;</a></span>operator/()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> operations_research::operator/ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af6e53662a1f604ececc66ebeef3902f3" name="af6e53662a1f604ececc66ebeef3902f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6e53662a1f604ececc66ebeef3902f3">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operations_research::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a>&#160;</td>
<td class="paramname"><em>optimization_problem_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8h_source.html#l00943">943</a> of file <a class="el" href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
</div>
</div>
<a id="a45a908ea6b50a2a7d3f6bd59de6db37c" name="a45a908ea6b50a2a7d3f6bd59de6db37c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45a908ea6b50a2a7d3f6bd59de6db37c">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operations_research::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587d">MPSolver::ResultStatus</a>&#160;</td>
<td class="paramname"><em>status</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8h_source.html#l00949">949</a> of file <a class="el" href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
</div>
</div>
<a id="a6dcd119b77400c438a8a316093d553f2" name="a6dcd119b77400c438a8a316093d553f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6dcd119b77400c438a8a316093d553f2">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operations_research::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>stream</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>linear_expr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6d1fa20f9c9faf7027c0b16f97139e80" name="a6d1fa20f9c9faf7027c0b16f97139e80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d1fa20f9c9faf7027c0b16f97139e80">&#9670;&nbsp;</a></span>operator&lt;=()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a> operations_research::operator&lt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a08146f196bd9c3f492ee108732449ced" name="a08146f196bd9c3f492ee108732449ced"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08146f196bd9c3f492ee108732449ced">&#9670;&nbsp;</a></span>operator==()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a> operations_research::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac4052f92af6a7fbb1d45e17befcb68e0" name="ac4052f92af6a7fbb1d45e17befcb68e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4052f92af6a7fbb1d45e17befcb68e0">&#9670;&nbsp;</a></span>operator&gt;=()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1_linear_range.html">LinearRange</a> operations_research::operator&gt;= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classoperations__research_1_1_linear_expr.html">LinearExpr</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a653e11eef608bfb88f21325e7fa12f2b" name="a653e11eef608bfb88f21325e7fa12f2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a653e11eef608bfb88f21325e7fa12f2b">&#9670;&nbsp;</a></span>SolverTypeIsMip() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool operations_research::SolverTypeIsMip </td>
<td>(</td>
<td class="paramtype">MPModelRequest::SolverType&#160;</td>
<td class="paramname"><em>solver_type</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a417ee4c2129def5589f952ac70233b2e" name="a417ee4c2129def5589f952ac70233b2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a417ee4c2129def5589f952ac70233b2e">&#9670;&nbsp;</a></span>SolverTypeIsMip() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operations_research::SolverTypeIsMip </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a>&#160;</td>
<td class="paramname"><em>solver_type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8h_source.html#l00936">936</a> of file <a class="el" href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
</div>
</div>
<a id="afc3e3b80841b587c6fbfd9e9f3ec9c59" name="afc3e3b80841b587c6fbfd9e9f3ec9c59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc3e3b80841b587c6fbfd9e9f3ec9c59">&#9670;&nbsp;</a></span>ToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const absl::string_view operations_research::ToString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8">MPSolver::OptimizationProblemType</a>&#160;</td>
<td class="paramname"><em>optimization_problem_type</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a221d711fbd5a16db9dc92a3c5095cbf5" name="a221d711fbd5a16db9dc92a3c5095cbf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a221d711fbd5a16db9dc92a3c5095cbf5">&#9670;&nbsp;</a></span>kDefaultPrimalTolerance</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr double kDefaultPrimalTolerance = 1e-07</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8h_source.html#l00167">167</a> of file <a class="el" href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
</div>
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>