Files
ortools-clone/docs/cpp/linear__solver_8cc.html
2021-01-26 11:34:47 +01:00

369 lines
21 KiB
HTML

<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: linear_solver.cc File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="orLogo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">OR-Tools
&#160;<span id="projectnumber">8.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('linear__solver_8cc.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="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">linear_solver.cc File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="linear__solver_8cc_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceoperations__research"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html">operations_research</a></td></tr>
<tr class="memdesc:namespaceoperations__research"><td class="mdescLeft">&#160;</td><td class="mdescRight">The vehicle routing library lets one model and solve generic vehicle routing problems ranging from the Traveling Salesman Problem to more complex problems such as the Capacitated Vehicle Routing Problem with Time Windows. <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 name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ac5be9926d9754d7c813277a5fe759589"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linear__solver_8cc.html#ac5be9926d9754d7c813277a5fe759589">ABSL_FLAG</a> (bool, verify_solution, false, &quot;Systematically verify the solution when calling Solve()&quot; &quot;, and change the return <a class="el" href="matrix__utils_8cc.html#aee90379adb0307effb138f4871edbc5c">value</a> of Solve() to ABNORMAL <a class="el" href="parser_8yy_8cc.html#a33e91cd0cef6786e9e3a27ac67707207">if</a>&quot; &quot; an error was detected.&quot;)</td></tr>
<tr class="separator:ac5be9926d9754d7c813277a5fe759589"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1744bd4628776ce533d29d6f9e7625e0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linear__solver_8cc.html#a1744bd4628776ce533d29d6f9e7625e0">ABSL_FLAG</a> (bool, log_verification_errors, true, &quot;If --verify_solution is set: <a class="el" href="base_2logging_8h.html#accad43a85d781d53381cd53a9894b6ae">LOG</a>(<a class="el" href="log__severity_8h.html#ac9bcbe19995a8140cd4ec61773cd6e67">ERROR</a>) all errors detected&quot; &quot; during the verification of the solution.&quot;)</td></tr>
<tr class="separator:a1744bd4628776ce533d29d6f9e7625e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ec8b8749245949a1f1e76dbcb5e3994"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linear__solver_8cc.html#a2ec8b8749245949a1f1e76dbcb5e3994">ABSL_FLAG</a> (bool, linear_solver_enable_verbose_output, false, &quot;If set, enables verbose output for the solver. Setting this flag&quot; &quot; is the same as calling MPSolver::EnableOutput().&quot;)</td></tr>
<tr class="separator:a2ec8b8749245949a1f1e76dbcb5e3994"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d3e5195882a915e9c47ac535b0d2005"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linear__solver_8cc.html#a1d3e5195882a915e9c47ac535b0d2005">ABSL_FLAG</a> (bool, mpsolver_bypass_model_validation, false, &quot;If set, the user-provided Model won't be verified before Solve().&quot; &quot; Invalid models will typically trigger various error responses&quot; &quot; from the underlying solvers; sometimes crashes.&quot;)</td></tr>
<tr class="separator:a1d3e5195882a915e9c47ac535b0d2005"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a318aeb9572247dd1ee5391ab4699664d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a318aeb9572247dd1ee5391ab4699664d">SolverTypeIsMip</a> (MPModelRequest::SolverType solver_type)</td></tr>
<tr class="separator:a318aeb9572247dd1ee5391ab4699664d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9ff99a01a4a9c5d8a65a5f5ea37d342"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa9ff99a01a4a9c5d8a65a5f5ea37d342">BuildCLPInterface</a> (MPSolver *const solver)</td></tr>
<tr class="separator:aa9ff99a01a4a9c5d8a65a5f5ea37d342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cde3225ed4ac75f81b1ee768a41aa4b"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a3cde3225ed4ac75f81b1ee768a41aa4b">BuildCBCInterface</a> (MPSolver *const solver)</td></tr>
<tr class="separator:a3cde3225ed4ac75f81b1ee768a41aa4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cda4034d09c9fa2f0641992116830f0"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a1cda4034d09c9fa2f0641992116830f0">BuildBopInterface</a> (MPSolver *const solver)</td></tr>
<tr class="separator:a1cda4034d09c9fa2f0641992116830f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf644bfef595ca374bb1bb5da5f2c1f2"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aaf644bfef595ca374bb1bb5da5f2c1f2">BuildGLOPInterface</a> (MPSolver *const solver)</td></tr>
<tr class="separator:aaf644bfef595ca374bb1bb5da5f2c1f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9bd6ab049e29558fe2e8af85db61722"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aa9bd6ab049e29558fe2e8af85db61722">BuildSatInterface</a> (MPSolver *const solver)</td></tr>
<tr class="separator:aa9bd6ab049e29558fe2e8af85db61722"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bdf7de568fd36934caf67b1bfd20455"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a1bdf7de568fd36934caf67b1bfd20455">BuildSCIPInterface</a> (MPSolver *const solver)</td></tr>
<tr class="separator:a1bdf7de568fd36934caf67b1bfd20455"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15d8d3f0cd329880580efdb01db139be"><td class="memItemLeft" align="right" valign="top">MPSolverInterface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a15d8d3f0cd329880580efdb01db139be">BuildGurobiInterface</a> (bool mip, MPSolver *const solver)</td></tr>
<tr class="separator:a15d8d3f0cd329880580efdb01db139be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23fc0ff92a3f47fe0bd2ad3eac3c9b57"><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#a23fc0ff92a3f47fe0bd2ad3eac3c9b57">ToString</a> (MPSolver::OptimizationProblemType optimization_problem_type)</td></tr>
<tr class="separator:a23fc0ff92a3f47fe0bd2ad3eac3c9b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f018fb86890eaa4057b0db41f32145c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#a8f018fb86890eaa4057b0db41f32145c">AbslParseFlag</a> (const absl::string_view text, MPSolver::OptimizationProblemType *solver_type, std::string *error)</td></tr>
<tr class="separator:a8f018fb86890eaa4057b0db41f32145c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af871c71d6ad60c9af3ae9348c59ab830"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#af871c71d6ad60c9af3ae9348c59ab830">MPSolverResponseStatusIsRpcError</a> (MPSolverResponseStatus status)</td></tr>
<tr class="separator:af871c71d6ad60c9af3ae9348c59ab830"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:aaea3ba6ee1ccdbf82cfcbb4e8fc5815e"><td class="memItemLeft" align="right" valign="top">constexpr NamedOptimizationProblemType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoperations__research.html#aaea3ba6ee1ccdbf82cfcbb4e8fc5815e">kOptimizationProblemTypeNames</a> []</td></tr>
<tr class="separator:aaea3ba6ee1ccdbf82cfcbb4e8fc5815e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a2ec8b8749245949a1f1e76dbcb5e3994"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ec8b8749245949a1f1e76dbcb5e3994">&#9670;&nbsp;</a></span>ABSL_FLAG() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_FLAG </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">linear_solver_enable_verbose_output&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">false&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&quot;If&#160;</td>
<td class="paramname"><em>set</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enables verbose output for the solver. Setting this flag&quot; &quot; is the same as calling MPSolver::EnableOutput().&quot;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1744bd4628776ce533d29d6f9e7625e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1744bd4628776ce533d29d6f9e7625e0">&#9670;&nbsp;</a></span>ABSL_FLAG() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_FLAG </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">log_verification_errors&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">true&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&quot;If --verify_solution is set: <a class="el" href="base_2logging_8h.html#accad43a85d781d53381cd53a9894b6ae">LOG</a>(<a class="el" href="log__severity_8h.html#ac9bcbe19995a8140cd4ec61773cd6e67">ERROR</a>) all errors detected&quot; &quot; during the verification of the solution.&quot;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1d3e5195882a915e9c47ac535b0d2005"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d3e5195882a915e9c47ac535b0d2005">&#9670;&nbsp;</a></span>ABSL_FLAG() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_FLAG </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">mpsolver_bypass_model_validation&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">false&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&quot;If&#160;</td>
<td class="paramname"><em>set</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">the user-provided Model won 't be verified before Solve().&quot; &quot; Invalid models will typically trigger various error responses&quot; &quot; from the underlying solvers;sometimes crashes.&quot;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac5be9926d9754d7c813277a5fe759589"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5be9926d9754d7c813277a5fe759589">&#9670;&nbsp;</a></span>ABSL_FLAG() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_FLAG </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">verify_solution&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">false&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&quot;Systematically verify the solution when calling Solve()&quot; &quot;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">and change the return <a class="el" href="matrix__utils_8cc.html#aee90379adb0307effb138f4871edbc5c">value</a> of Solve() to ABNORMAL <a class="el" href="parser_8yy_8cc.html#a33e91cd0cef6786e9e3a27ac67707207">if</a>&quot; &quot; an error was detected.&quot;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a82e2a7e0f28d620da677073b6b24574b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82e2a7e0f28d620da677073b6b24574b">&#9670;&nbsp;</a></span>name</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">absl::string_view name</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8cc_source.html#l00504">504</a> of file <a class="el" href="linear__solver_8cc_source.html">linear_solver.cc</a>.</p>
</div>
</div>
<a id="acdf66e64954cbe33c30a45395b4d74b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdf66e64954cbe33c30a45395b4d74b6">&#9670;&nbsp;</a></span>problem_type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MPSolver::OptimizationProblemType problem_type</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="linear__solver_8cc_source.html#l00503">503</a> of file <a class="el" href="linear__solver_8cc_source.html">linear_solver.cc</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.18-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_4d3a5a688e4550f3d7725aaa5ab9c27b.html">linear_solver</a></li><li class="navelem"><a class="el" href="linear__solver_8cc.html">linear_solver.cc</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>