<divclass="textblock"><p>This class stores parameter settings for LP and MIP solvers. </p>
<p>Some parameters are marked as advanced: do not change their values unless you know what you are doing!</p>
<p>For developers: how to add a new parameter:</p><ul>
<li>Add the new Foo parameter in the DoubleParam or IntegerParam enum.</li>
<li>If it is a categorical param, add a FooValues enum.</li>
<li>Decide if the wrapper should define a default value for it: yes if it controls the properties of the solution (example: tolerances) or if it consistently improves performance, no otherwise. If yes, define kDefaultFoo.</li>
<li>Add a foo_value_ member and, if no default value is defined, a foo_is_default_ member.</li>
<li>Add code to handle Foo in Set...Param, Reset...Param, Get...Param, Reset and the constructor.</li>
<li>In class <aclass="el"href="classoperations__research_1_1MPSolverInterface.html">MPSolverInterface</a>, add a virtual method SetFoo, add it to SetCommonParameters or SetMIPParameters, and implement it for each solver. Sometimes, parameters need to be implemented differently, see for example the INCREMENTALITY implementation.</li>
<li>Add a test in linear_solver_test.cc.</li>
</ul>
<p>TODO(user): store the parameter values in a protocol buffer instead. We need to figure out how to deal with the subtleties of the default values. </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01304">1304</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<trclass="memdesc:a3834b74a8764c1c971e10ce9ba2f265e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Enumeration of parameters that take continuous values. <ahref="classoperations__research_1_1MPSolverParameters.html#a3834b74a8764c1c971e10ce9ba2f265e">More...</a><br/></td></tr>
<trclass="memdesc:ac8f18a88f586c725cfffc613499926a0"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Enumeration of parameters that take integer or categorical values. <ahref="classoperations__research_1_1MPSolverParameters.html#ac8f18a88f586c725cfffc613499926a0">More...</a><br/></td></tr>
<trclass="memdesc:a45d822ac67d10cc80b2f70fe6ec555a4"><tdclass="mdescLeft"> </td><tdclass="mdescRight">For each categorical parameter, enumeration of possible values. <ahref="classoperations__research_1_1MPSolverParameters.html#a45d822ac67d10cc80b2f70fe6ec555a4">More...</a><br/></td></tr>
<trclass="memdesc:ab297405e6084c08a9058012361376762"><tdclass="mdescLeft"> </td><tdclass="mdescRight">LP algorithm to use. <ahref="classoperations__research_1_1MPSolverParameters.html#ab297405e6084c08a9058012361376762">More...</a><br/></td></tr>
<trclass="memdesc:accb1cea31a73bd0b09bb75882baa9e5f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The constructor sets all parameters to their default value. <ahref="#accb1cea31a73bd0b09bb75882baa9e5f">More...</a><br/></td></tr>
<trclass="memdesc:ab297ed394e3996ebb0cc43d931deaa16"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets a double parameter to a specific value. <ahref="#ab297ed394e3996ebb0cc43d931deaa16">More...</a><br/></td></tr>
<trclass="memitem:afcfb05b6d356807556f65f1b845897a8"><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classoperations__research_1_1MPSolverParameters.html#afcfb05b6d356807556f65f1b845897a8">SetIntegerParam</a> (<aclass="el"href="classoperations__research_1_1MPSolverParameters.html#ac8f18a88f586c725cfffc613499926a0">MPSolverParameters::IntegerParam</a> param, int value)</td></tr>
<trclass="memdesc:afcfb05b6d356807556f65f1b845897a8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets a integer parameter to a specific value. <ahref="#afcfb05b6d356807556f65f1b845897a8">More...</a><br/></td></tr>
<trclass="memdesc:a7bc16e5febd0604a3400572c0e35c490"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets a double parameter to its default value (default value defined in <aclass="el"href="classoperations__research_1_1MPSolverParameters.html"title="This class stores parameter settings for LP and MIP solvers.">MPSolverParameters</a> if it exists, otherwise the default value defined in the underlying solver). <ahref="#a7bc16e5febd0604a3400572c0e35c490">More...</a><br/></td></tr>
<trclass="memdesc:a100330795edeb8c1b12c7b8ff74611df"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets an integer parameter to its default value (default value defined in <aclass="el"href="classoperations__research_1_1MPSolverParameters.html"title="This class stores parameter settings for LP and MIP solvers.">MPSolverParameters</a> if it exists, otherwise the default value defined in the underlying solver). <ahref="#a100330795edeb8c1b12c7b8ff74611df">More...</a><br/></td></tr>
<trclass="memdesc:ada3cdf5254959f2807c3d27bb7e18e27"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets all parameters to their default value. <ahref="#ada3cdf5254959f2807c3d27bb7e18e27">More...</a><br/></td></tr>
<trclass="memdesc:a4423dd8b21b413522d8b91e4536cfa08"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns the value of a double parameter. <ahref="#a4423dd8b21b413522d8b91e4536cfa08">More...</a><br/></td></tr>
<trclass="memdesc:ae9e67424e09a35840b4fda2942b94c6f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns the value of an integer parameter. <ahref="#ae9e67424e09a35840b4fda2942b94c6f">More...</a><br/></td></tr>
<p>Enumeration of parameters that take continuous values. </p>
<tableclass="fieldtable">
<tr><thcolspan="2">Enumerator</th></tr><tr><tdclass="fieldname"><aid="a3834b74a8764c1c971e10ce9ba2f265eaca78b129ceb19e286889b3274bb8cab3"></a>RELATIVE_MIP_GAP </td><tdclass="fielddoc"><p>Limit for relative MIP gap. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a3834b74a8764c1c971e10ce9ba2f265ea57e959f9c5ede1f3e683169609fb0488"></a>PRIMAL_TOLERANCE </td><tdclass="fielddoc"><p>Advanced usage: tolerance for primal feasibility of basic solutions. </p>
<tr><tdclass="fieldname"><aid="a3834b74a8764c1c971e10ce9ba2f265ea313eaed42edf309599e71ca7563cce22"></a>DUAL_TOLERANCE </td><tdclass="fielddoc"><p>Advanced usage: tolerance for dual feasibility of basic solutions. </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01307">1307</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<tr><thcolspan="2">Enumerator</th></tr><tr><tdclass="fieldname"><aid="ad58cb8cf98c288843ab0d1fd644f6116a27013e436bfe1d34ebb6da476c590eee"></a>INCREMENTALITY_OFF </td><tdclass="fielddoc"><p>Start solve from scratch. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="ad58cb8cf98c288843ab0d1fd644f6116aef000bbd88ef3ff2715d53a0e1dfbd37"></a>INCREMENTALITY_ON </td><tdclass="fielddoc"><p>Reuse results from previous solve as much as the underlying solver allows. </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01353">1353</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<tr><tdclass="fieldname"><aid="ac8f18a88f586c725cfffc613499926a0a28abd1bbac3e861d5a74f841f8263e05"></a>LP_ALGORITHM </td><tdclass="fielddoc"><p>Algorithm to solve linear programs. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="ac8f18a88f586c725cfffc613499926a0a0ea983a7a805bc98c2cf9a1000c1ef95"></a>INCREMENTALITY </td><tdclass="fielddoc"><p>Advanced usage: incrementality from one solve to the next. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="ac8f18a88f586c725cfffc613499926a0ad5871c18d62c5e2e1e48a5420c13942f"></a>SCALING </td><tdclass="fielddoc"><p>Advanced usage: enable or disable matrix scaling. </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01323">1323</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01343">1343</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<tr><thcolspan="2">Enumerator</th></tr><tr><tdclass="fieldname"><aid="a45d822ac67d10cc80b2f70fe6ec555a4a6e658228fc28195fb00675d3dfec2c85"></a>PRESOLVE_OFF </td><tdclass="fielddoc"><p>Presolve is off. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a45d822ac67d10cc80b2f70fe6ec555a4ac8e04ac3295af6c505a22757490bb018"></a>PRESOLVE_ON </td><tdclass="fielddoc"><p>Presolve is on. </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01335">1335</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<tr><thcolspan="2">Enumerator</th></tr><tr><tdclass="fieldname"><aid="ae77fef975a893d6118d955ef2eb72ac9a41abc3f52f70490cd997aa8debace24b"></a>SCALING_OFF </td><tdclass="fielddoc"><p>Scaling is off. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="ae77fef975a893d6118d955ef2eb72ac9a33cf90a88928c32c5b56c9375d7dfd18"></a>SCALING_ON </td><tdclass="fielddoc"><p>Scaling is on. </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01365">1365</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<p>Sets a double parameter to its default value (default value defined in <aclass="el"href="classoperations__research_1_1MPSolverParameters.html"title="This class stores parameter settings for LP and MIP solvers.">MPSolverParameters</a> if it exists, otherwise the default value defined in the underlying solver). </p>
<p>Sets an integer parameter to its default value (default value defined in <aclass="el"href="classoperations__research_1_1MPSolverParameters.html"title="This class stores parameter settings for LP and MIP solvers.">MPSolverParameters</a> if it exists, otherwise the default value defined in the underlying solver). </p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01374">1374</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01388">1388</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01390">1390</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01375">1375</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01389">1389</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01387">1387</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01386">1386</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01378">1378</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="linear__solver_8h_source.html#l01379">1379</a> of file <aclass="el"href="linear__solver_8h_source.html">linear_solver.h</a>.</p>