1796 lines
58 KiB
Matlab
Executable File
1796 lines
58 KiB
Matlab
Executable File
function solver = definesolvers
|
|
|
|
% ****************************
|
|
% Create a default solver
|
|
% ****************************
|
|
emptysolver.tag = '';
|
|
emptysolver.version = '';
|
|
emptysolver.subversion = '';
|
|
emptysolver.checkfor= {''};
|
|
emptysolver.testcode= {''};
|
|
emptysolver.call = '';
|
|
emptysolver.subcall = '';
|
|
emptysolver.show = 1;
|
|
emptysolver.usesother = 0;
|
|
emptysolver.supportsinitial = 0;
|
|
emptysolver.supportsinitialNAN = 0;
|
|
emptysolver.supportshighprec = 0;
|
|
|
|
emptysolver.objective.linear = 0;
|
|
emptysolver.objective.quadratic.convex = 0;
|
|
emptysolver.objective.quadratic.nonconvex = 0;
|
|
emptysolver.objective.quadratic.nonnegative = 0;
|
|
emptysolver.objective.polynomial = 0;
|
|
emptysolver.objective.maxdet.convex = 0;
|
|
emptysolver.objective.maxdet.nonconvex = 0;
|
|
emptysolver.objective.sigmonial = 0;
|
|
|
|
emptysolver.constraint.equalities.linear = 0;
|
|
emptysolver.constraint.equalities.quadratic = 0;
|
|
emptysolver.constraint.equalities.polynomial = 0;
|
|
emptysolver.constraint.equalities.sigmonial = 0;
|
|
emptysolver.constraint.equalities.multiterm = 1;
|
|
|
|
emptysolver.constraint.inequalities.elementwise.linear = 0;
|
|
emptysolver.constraint.inequalities.elementwise.quadratic.convex = 0;
|
|
emptysolver.constraint.inequalities.elementwise.quadratic.nonconvex = 0;
|
|
emptysolver.constraint.inequalities.elementwise.quadratic.nonegative = 0;
|
|
emptysolver.constraint.inequalities.elementwise.polynomial = 0;
|
|
emptysolver.constraint.inequalities.elementwise.sigmonial = 0;
|
|
|
|
emptysolver.constraint.inequalities.semidefinite.linear = 0;
|
|
emptysolver.constraint.inequalities.semidefinite.quadratic = 0;
|
|
emptysolver.constraint.inequalities.semidefinite.polynomial = 0;
|
|
emptysolver.constraint.inequalities.semidefinite.sigmonial = 0;
|
|
emptysolver.constraint.inequalities.rank = 0;
|
|
|
|
emptysolver.constraint.inequalities.secondordercone.linear = 0;
|
|
emptysolver.constraint.inequalities.secondordercone.nonlinear = 0;
|
|
emptysolver.constraint.inequalities.rotatedsecondordercone.linear = 0;
|
|
emptysolver.constraint.inequalities.rotatedsecondordercone.nonlinear = 0;
|
|
emptysolver.constraint.inequalities.powercone = 0;
|
|
|
|
emptysolver.constraint.complementarity.variable = 0;
|
|
emptysolver.constraint.complementarity.linear = 0;
|
|
emptysolver.constraint.complementarity.nonlinear = 0;
|
|
|
|
emptysolver.constraint.integer = 0;
|
|
emptysolver.constraint.binary = 0;
|
|
emptysolver.constraint.semivar = 0;
|
|
emptysolver.constraint.semiintvar = 0;
|
|
emptysolver.constraint.sos1 = 0;
|
|
emptysolver.constraint.sos2 = 0;
|
|
|
|
emptysolver.dual = 0;
|
|
emptysolver.complex = 0;
|
|
emptysolver.interval = 0;
|
|
emptysolver.parametric = 0;
|
|
emptysolver.evaluation = 0;
|
|
emptysolver.exponentialcone = 0;
|
|
emptysolver.uncertain = 0;
|
|
|
|
% **************************************
|
|
% Some standard solvers to simplify code
|
|
% **************************************
|
|
|
|
% LP solver
|
|
lpsolver = emptysolver;
|
|
lpsolver.objective.linear = 1;
|
|
lpsolver.constraint.equalities.linear = 1;
|
|
lpsolver.constraint.inequalities.elementwise.linear = 1;
|
|
lpsolver.dual = 1;
|
|
|
|
% QP solver
|
|
qpsolver = emptysolver;
|
|
qpsolver.objective.linear = 1;
|
|
qpsolver.objective.quadratic.convex = 1;
|
|
qpsolver.constraint.equalities.linear = 1;
|
|
qpsolver.constraint.inequalities.elementwise.linear = 1;
|
|
qpsolver.dual = 1;
|
|
|
|
% SDP solver
|
|
sdpsolver = emptysolver;
|
|
sdpsolver.objective.linear = 1;
|
|
sdpsolver.constraint.equalities.linear = 1;
|
|
sdpsolver.constraint.inequalities.elementwise.linear = 1;
|
|
sdpsolver.constraint.inequalities.semidefinite.linear = 1;
|
|
sdpsolver.dual = 1;
|
|
|
|
% ****************************
|
|
% INITIALIZE COUNTER
|
|
% ****************************
|
|
i = 1;
|
|
|
|
% ****************************
|
|
% DEFINE SOLVERS
|
|
% ****************************
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'GUROBI';
|
|
solver(i).version = 'GUROBI';
|
|
solver(i).checkfor= {'gurobi'};
|
|
solver(i).call = 'callgurobi';
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).supportsinitial = 1;
|
|
solver(i).supportsinitialNAN = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'GUROBI';
|
|
solver(i).version = 'MEX';
|
|
solver(i).checkfor= {'gurobi_mex'};
|
|
solver(i).call = 'callgurobimex';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.8.0';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1280'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.8.0';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1280'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.7.1';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1271'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.7.1';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1271'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.7.0';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1270'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.7.0';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1270'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.3';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1263'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.3';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1263'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.2';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1262'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.2';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1262'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.1';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1261'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.1';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1261'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.0';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1260'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.6.0';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1260'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.5.1';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink1251'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.5';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink125'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.4';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink124'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'IBM';
|
|
solver(i).subversion = '12.3';
|
|
solver(i).checkfor= {'cplexqcp.m','cplexlink123'};
|
|
solver(i).call = 'call_cplexibm_qcmiqp';
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
% duals bug...
|
|
solver(i) = solver(i-1);
|
|
solver(i).checkfor = {'cplexqcp.m','cplexlink122'};
|
|
solver(i).subversion = '12.2';
|
|
i = i+1;
|
|
solver(i) = solver(i-1);
|
|
solver(i).checkfor = {'cplexqcp.m','cplexlink121'};
|
|
solver(i).subversion = '12.1';
|
|
i = i+1;
|
|
solver(i) = solver(i-1);
|
|
solver(i).checkfor = {'cplexqcp.m','cplexlink120'};
|
|
solver(i).subversion = '12.0';
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'GLPK';
|
|
solver(i).version = 'GLPKMEX-CC';
|
|
solver(i).checkfor= {'glpkcc'};
|
|
solver(i).call = 'callglpkcc';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'GLPK';
|
|
solver(i).version = 'GLPKMEX';
|
|
solver(i).checkfor= {'glpkmex.m'};
|
|
solver(i).call = 'callglpk';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
% Needed for Later Octave version (glpkmex is depracated)
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'GLPK';
|
|
solver(i).version = 'GLPKMEX';
|
|
solver(i).checkfor= {'glpk.m'};
|
|
solver(i).call = 'callglpkoctave';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'CDD';
|
|
solver(i).version = 'CDDMEX';
|
|
solver(i).checkfor= {'cddmex'};
|
|
solver(i).call = 'callcdd';
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'NAG';
|
|
solver(i).version = 'e04mbf';
|
|
solver(i).checkfor= {'e04mbf'};
|
|
solver(i).call = 'callnage04mbf';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'NAG';
|
|
solver(i).version = 'e04naf';
|
|
solver(i).checkfor= {'e04naf'};
|
|
solver(i).call = 'callnage04naf';
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'CLP';
|
|
solver(i).version = 'CLPMEX-LP';
|
|
solver(i).checkfor= {'mexclp'};
|
|
solver(i).call = 'callclp';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'SCIP';
|
|
solver(i).version = 'linear';
|
|
solver(i).checkfor= {'scip'};
|
|
solver(i).call = 'callscipmex';
|
|
solver(i).objective.quadratic.nonconvex=1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'XPRESS';
|
|
solver(i).version = 'MEXPRESS 1.1';
|
|
solver(i).checkfor= {'xpress.m'};
|
|
solver(i).call = 'callmexpress11';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'XPRESS';
|
|
solver(i).version = 'MEXPRESS 1.0';
|
|
solver(i).checkfor= {'mexpress.m'};
|
|
solver(i).call = 'callmexpress';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'XPRESS';
|
|
solver(i).version = 'FICO';
|
|
solver(i).checkfor= {'xprsmip.m'};
|
|
solver(i).call = 'call_xpressfico_milp';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'XPRESS';
|
|
solver(i).version = 'FICO';
|
|
solver(i).checkfor= {'xprsmiqp.m'};
|
|
solver(i).call = 'call_xpressfico_miqp';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'QSOPT';
|
|
solver(i).version = 'OPTI';
|
|
solver(i).checkfor= {'opti_qsopt.m'};
|
|
solver(i).call = 'calloptiqsopt';
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'QSOPT';
|
|
solver(i).version = 'MEXQSOPT';
|
|
solver(i).checkfor= {'qsopt.m'};
|
|
solver(i).call = 'callqsopt';
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'LPSOLVE';
|
|
solver(i).version = 'MXLPSOLVE';
|
|
solver(i).checkfor= {'lp_solve'};
|
|
solver(i).call = 'calllpsolve';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.sos2 = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'OSL';
|
|
solver(i).version = 'OSLPROG';
|
|
solver(i).checkfor= {'oslprog.m'};
|
|
solver(i).call = 'calloslprog';
|
|
solver(i).constraint.integer = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'MOSEK';
|
|
solver(i).version = 'SOCP';
|
|
solver(i).checkfor= {'mosekopt'};
|
|
solver(i).call = 'callmosek';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).exponentialcone = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'MOSEK';
|
|
solver(i).version = 'SDP';
|
|
solver(i).checkfor= {'mosekopt'};
|
|
solver(i).call = 'callmosek';
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).exponentialcone = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'MOSEK';
|
|
solver(i).version = 'GEOMETRIC';
|
|
solver(i).checkfor= {'mosekopt'};
|
|
solver(i).call = 'callmosek';
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).objective.quadratic.nonnegative = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.equalities.multiterm = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CPLEX';
|
|
solver(i).version = 'CPLEXMEX';
|
|
solver(i).checkfor= {'cplexmex'};
|
|
solver(i).call = 'callcplexmex';
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'LINPROG';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'linprog'};
|
|
solver(i).call = 'calllinprog';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'BPMPD';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'bp'};
|
|
solver(i).call = 'callbpmpd';
|
|
i = i+1;
|
|
|
|
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'QUADPROG';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'quadprog'};
|
|
solver(i).call = 'callquadprog';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CLP';
|
|
solver(i).version = 'CLPMEX-QP';
|
|
solver(i).checkfor= {'mexclp'};
|
|
solver(i).call = 'callclp';
|
|
%solver(i).constraint.integer = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CLP';
|
|
solver(i).version = 'OPTI';
|
|
solver(i).checkfor= {'clp','opti_clp'};
|
|
solver(i).call = 'callopticlp';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'qpOASES';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'qpOASES'};
|
|
solver(i).call = 'callqpoases';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'OSQP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'OSQP'};
|
|
solver(i).call = 'callosqp';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'OOQP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'opti_ooqp.m'};
|
|
solver(i).call = 'calloptiooqp';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'CBC';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'cbc','opti_cbc'};
|
|
solver(i).call = 'callcbc';
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.sos2 = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'OOQP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'ooqp.m'};
|
|
solver(i).call = 'callooqp';
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'QPIP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'qpip'};
|
|
solver(i).call = 'callqpip';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'QPAS';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'qpas'};
|
|
solver(i).call = 'callqpas';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'lindo';
|
|
solver(i).version = 'MIQP';
|
|
solver(i).checkfor= {'mxlindo'};
|
|
solver(i).call = 'calllindo_miqp';
|
|
solver(i).constraint.integer = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'ecos';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'ecos'};
|
|
solver(i).call = 'callecos';
|
|
solver(i).objective.quadratic.convex = 0;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).exponentialcone = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SeDuMi';
|
|
solver(i).version = '1.1';
|
|
solver(i).checkfor= {'sedumi.m','ada_pcg.m','qinvsqrt','install_sedumi'};
|
|
solver(i).call = 'callsedumi';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 0;
|
|
solver(i).complex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SeDuMi';
|
|
solver(i).version = '1.3';
|
|
solver(i).checkfor= {'sedumi.m','ada_pcg.m','install_sedumi'};
|
|
solver(i).call = 'callsedumi';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 0;
|
|
solver(i).complex = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SeDuMi';
|
|
solver(i).version = '1.05';
|
|
solver(i).checkfor= {'sedumi.m','ada_pcg.m','vecreal'};
|
|
solver(i).call = 'callsedumi';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 1;
|
|
solver(i).complex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SeDuMi';
|
|
solver(i).version = '1.03';
|
|
solver(i).checkfor= {'sedumi.m','doinfac.m'};
|
|
solver(i).call = 'callsedumi';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 1;
|
|
solver(i).complex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPT3';
|
|
solver(i).version = '4';
|
|
solver(i).checkfor= {'sqlp','skron','symqmr','blkbarrier'};
|
|
solver(i).call = 'callsdpt34';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).objective.maxdet.convex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPNAL';
|
|
solver(i).version = '0.5';
|
|
solver(i).checkfor= {'sdpnalplus'};
|
|
solver(i).call = 'callsdpnal';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'LOGDETPPA';
|
|
solver(i).version = '0.1';
|
|
solver(i).checkfor= {'logdetppa'};
|
|
solver(i).call = 'calllogdetppa';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 0;
|
|
solver(i).objective.maxdet.convex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SparseCoLO';
|
|
solver(i).version = '0';
|
|
solver(i).checkfor= {'sparseCoLO'};
|
|
solver(i).call = 'callsparsecolo';
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPT3';
|
|
solver(i).version = '3.1';
|
|
solver(i).checkfor= {'sqlp','skron','symqmr'};
|
|
solver(i).call = 'callsdpt331';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPT3';
|
|
solver(i).version = '3.02';
|
|
solver(i).checkfor= {'sqlp','skron','schursysolve'};
|
|
solver(i).call = 'callsdpt3302';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPT3';
|
|
solver(i).version = '3.0';
|
|
solver(i).checkfor= {'sqlp','mexexec'};
|
|
solver(i).call = 'callsdpt330';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPA';
|
|
solver(i).version = 'M';
|
|
solver(i).checkfor= {'sdpam.m'};
|
|
solver(i).call = 'callsdpa';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'CDCS';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'cdcs'};
|
|
solver(i).call = 'callcdcs';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'DSDP';
|
|
solver(i).version = 'OPTI';
|
|
solver(i).checkfor= {'dsdp','opti'};
|
|
solver(i).call = 'calloptidsdp';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'DSDP';
|
|
solver(i).version = '5';
|
|
solver(i).checkfor= {'dsdp','dvec'};
|
|
solver(i).call = 'calldsdp5';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'DSDP';
|
|
solver(i).version = '4';
|
|
solver(i).checkfor= {'dsdp'};
|
|
solver(i).call = 'calldsdp';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPLR';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'sdplr'};
|
|
solver(i).call = 'callsdplr';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'CSDP';
|
|
solver(i).version = 'opti';
|
|
solver(i).checkfor= {'csdp','csdpset'};
|
|
solver(i).call = 'callopticsdp';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'CSDP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'csdp','readsol','writesdpa'};
|
|
solver(i).call = 'callcsdp';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'MAXDET';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'maxdet.m'};
|
|
solver(i).call = 'callmaxdet';
|
|
solver(i).objective.maxdet.convex = 1;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).dual = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'PENSDP';
|
|
solver(i).version = 'PENOPT';
|
|
solver(i).checkfor= {'pensdpm'};
|
|
solver(i).call = 'callpensdpm';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'PENSDP';
|
|
solver(i).version = 'TOMLAB';
|
|
solver(i).checkfor= {'pensdp'};
|
|
solver(i).call = 'callpensdp';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'PENBMI';
|
|
solver(i).version = 'PENOPT';
|
|
solver(i).checkfor= {'penbmim'};
|
|
solver(i).call = 'callpenbmim';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.semidefinite.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'PENBMI';
|
|
solver(i).version = 'TOMLAB';
|
|
solver(i).checkfor= {'penbmi'};
|
|
solver(i).call = 'callpenbmi';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'LMILAB';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'setlmis'};
|
|
solver(i).call = 'calllmilab';
|
|
solver(i).dual = 0;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'SDPNAL';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'sdpnal'};
|
|
solver(i).call = 'callsdpnal';
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'LMIRANK';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'lmirank'};
|
|
solver(i).call = 'calllmirank';
|
|
solver(i).dual = 0;
|
|
solver(i).constraint.inequalities.rank = 1;
|
|
solver(i).objective.linear = 0;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'VSDP';
|
|
solver(i).version = '0.1';
|
|
solver(i).checkfor= {'vsdpup','vsdpup_yalmip'};
|
|
solver(i).call = 'callvsdp';
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 0;
|
|
solver(i).interval = 1;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'MPT';
|
|
solver(i).version = '3';
|
|
solver(i).checkfor= {'mpt_mpqp','mpt_plcp'};
|
|
solver(i).call = 'callmpt3';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).parametric = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'MPT';
|
|
solver(i).version = '2';
|
|
solver(i).checkfor= {'mpt_getInput'};
|
|
solver(i).call = 'callmpt';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).parametric = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'MPLCP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'mplcp.m'};
|
|
solver(i).call = 'callmplcp';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).parametric = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'POP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'updatePOP'};
|
|
solver(i).call = 'callPOP';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).parametric = 1;
|
|
solver(i).constraint.binary = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'QUADPROGBB';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'quadprogbb'};
|
|
solver(i).call = 'callquadprogbb';
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'KYPD';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'kypd_solver'};
|
|
solver(i).call = 'callkypd';
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'STRUL';
|
|
solver(i).version = '1';
|
|
solver(i).checkfor= {'sqlp','skron','symqmr','blkbarrier','HKM_schur_LR_structure'};
|
|
solver(i).call = 'callstrul';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).objective.maxdet.convex = 1;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'fmincon';
|
|
solver(i).version = 'geometric';
|
|
solver(i).checkfor= {'fmincon.m'};
|
|
solver(i).call = 'callfmincongp';
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.equalities.multiterm = 0;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'fmincon';
|
|
solver(i).version = 'standard';
|
|
solver(i).checkfor= {'fmincon.m'};
|
|
solver(i).call = 'callfmincon';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'penlab';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'penlab.m'};
|
|
solver(i).call = 'callpenlabbmi';
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.semidefinite.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'pennon';
|
|
solver(i).version = 'standard';
|
|
solver(i).checkfor= {'pennonm'};
|
|
solver(i).call = 'callpennonm';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.semidefinite.nonlinear = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'SNOPT';
|
|
solver(i).version = 'geometric';
|
|
solver(i).checkfor= {'snsolve.m'};
|
|
solver(i).call = 'callsnoptgp';
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.equalities.multiterm = 0;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'SNOPT';
|
|
solver(i).version = 'standard';
|
|
solver(i).checkfor= {'snsolve.m'};
|
|
solver(i).call = 'callsnopt';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.nonlinear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).supportsinitial = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'SNOPT';
|
|
solver(i).version = 'cmex';
|
|
solver(i).checkfor= {'snsolve.m','snoptcmex'};
|
|
solver(i).call = 'callsnopt';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.nonlinear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).supportsinitial = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'bonmin';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'bonmin'};
|
|
solver(i).call = 'callbonmin';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'FILTERSD';
|
|
solver(i).version = 'dense';
|
|
solver(i).checkfor= {'filtersd.m'};
|
|
solver(i).call = 'callfiltersd';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'FILTERSD';
|
|
solver(i).version = 'sparse';
|
|
solver(i).checkfor= {'filtersdsp.m'};
|
|
solver(i).call = 'callfiltersdsp';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'nomad';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'nomad'};
|
|
solver(i).call = 'callnomad';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 0;
|
|
solver(i).constraint.equalities.polynomial = 0;
|
|
solver(i).constraint.equalities.sigmonial = 0;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'lindo';
|
|
solver(i).version = 'NLP';
|
|
solver(i).checkfor= {'mxlindo'};
|
|
solver(i).call = 'calllindo_nlp';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'ipopt';
|
|
solver(i).version = 'standard';
|
|
solver(i).checkfor= {'ipopt'};
|
|
solver(i).call = 'callipopt';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'ipopt';
|
|
solver(i).version = 'geometric';
|
|
solver(i).checkfor= {'ipopt.m'};
|
|
solver(i).call = 'callipoptgp';
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.equalities.multiterm = 0;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'GPPOSY';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'gpposy'};
|
|
solver(i).call = 'callgpposy';
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).objective.quadratic.nonnegative = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.equalities.elementwise.nonlinear = 1;
|
|
solver(i).constraint.equalities.multiterm = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'fminsearch';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'fminsearch.m','matlabrc'};
|
|
solver(i).call = 'callfminsearch';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'knitro';
|
|
solver(i).checkfor= {'knitromatlab'};
|
|
solver(i).call = 'callknitro';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.complementarity.variable = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitialNAN = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'baron';
|
|
solver(i).checkfor= {'baron.m'};
|
|
solver(i).call = 'callbaron';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitialNAN = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'scip';
|
|
solver(i).version = 'nl';
|
|
solver(i).checkfor= {'opti_scipnl.m'};
|
|
solver(i).call = 'callscipnl';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 0;
|
|
solver(i).evaluation = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'scs';
|
|
solver(i).version = 'direct';
|
|
solver(i).checkfor= {'scs','scs_direct'};
|
|
solver(i).call = 'callscs';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 0;
|
|
solver(i).exponentialcone = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'scs';
|
|
solver(i).version = 'indirect';
|
|
solver(i).checkfor= {'scs','scs_indirect'};
|
|
solver(i).call = 'callscs';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 0;
|
|
solver(i).exponentialcone = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'INTLINPROG';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'intlinprog.m'};
|
|
solver(i).call = 'callintlinprog';
|
|
solver(i).constraint.binary = 0;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).dual = 0;
|
|
i = i+1;
|
|
|
|
% % ***************************************
|
|
% % SOMEWHAT MORE COMPLEX DEFINITIONS OF
|
|
% % THE INTERNAL MICP SOLVER
|
|
% % ***************************************
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'BNB';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'bnb'};
|
|
solver(i).call = 'bnb';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.maxdet.convex = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.semivar = 1;
|
|
solver(i).constraint.semiintvar = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).usesother = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'BINTPROG';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'bintprog.m'};
|
|
solver(i).call = 'callbintprog';
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).dual = 0;
|
|
i = i+1;
|
|
|
|
% % ***************************************
|
|
% % SOMEWHAT MORE COMPLEX DEFINITIONS OF
|
|
% % THE INTERNAL MICP SOLVER
|
|
% % ***************************************
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'CUTSDP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'cutsdp'};
|
|
solver(i).call = 'cutsdp';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.sigmonial = 0;
|
|
solver(i).objective.polynomial = 0;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).complex = 0;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
% % ***************************************
|
|
% % SOMEWHAT MORE COMPLEX DEFINITIONS OF
|
|
% % THE INTERNAL MICP SOLVER
|
|
% % ***************************************
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'CUTSDP';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'cutsdp'};
|
|
solver(i).call = 'cutsdp';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.sigmonial = 0;
|
|
solver(i).objective.polynomial = 0;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).dual = 1;
|
|
solver(i).complex = 0;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
% ***************************************
|
|
% SOMEWHAT MORE COMPLEX DEFINITIONS OF
|
|
% THE INTERNAL GLOBAL BMI SOLVER
|
|
% ***************************************
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'BMIBNB';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'bmibnb'};
|
|
solver(i).call = 'bmibnb';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.semidefinite.polynomial = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 1;
|
|
solver(i).constraint.binary = 1;
|
|
solver(i).constraint.integer = 1;
|
|
solver(i).constraint.semivar = 0;
|
|
solver(i).evaluation = 1;
|
|
solver(i).usesother = 1;
|
|
solver(i).supportsinitial = 1;
|
|
solver(i).supportsinitialNAN = 1;
|
|
i = i+1;
|
|
|
|
% ***************************************
|
|
% SOMEWHAT MORE COMPLEX DEFINITIONS OF
|
|
% THE INTERNAL BISECTION SOLVER
|
|
% ***************************************
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'BISECTION';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'bisection'};
|
|
solver(i).call = 'bisection';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 1;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = qpsolver;
|
|
solver(i).tag = 'kktqp';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'kktqp'};
|
|
solver(i).call = 'kktqp';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'sparsepop';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'sparsePOP.m'};
|
|
solver(i).call = 'callsparsepop';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).usesother = 1;
|
|
i = i+1;
|
|
|
|
|
|
solver(i) = emptysolver;
|
|
solver(i).tag = 'none';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'callnone.m'};
|
|
solver(i).call = 'callnone';
|
|
solver(i).objective.linear = 1;
|
|
solver(i).objective.quadratic.convex = 1;
|
|
solver(i).objective.quadratic.nonconvex = 1;
|
|
solver(i).objective.polynomial = 1;
|
|
solver(i).objective.sigmonial = 1;
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.equalities.quadratic = 1;
|
|
solver(i).constraint.equalities.polynomial = 1;
|
|
solver(i).constraint.equalities.sigmonial = 1;
|
|
solver(i).constraint.inequalities.elementwise.linear = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
|
|
solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
|
|
solver(i).constraint.inequalities.elementwise.polynomial = 1;
|
|
solver(i).constraint.inequalities.elementwise.sigmonial = 1;
|
|
solver(i).constraint.inequalities.semidefinite.linear = 1;
|
|
solver(i).constraint.inequalities.semidefinite.quadratic = 1;
|
|
solver(i).constraint.inequalities.semidefinite.polynomial = 1;
|
|
solver(i).evaluation = 1;
|
|
solver(i).supportsinitial = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'powersolver';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'powersolver.m'};
|
|
solver(i).call = 'callpowersolver';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.powercone = 1;
|
|
solver(i).complex = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'LSQNONNEG';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'lsqnonneg.m'};
|
|
solver(i).call = 'calllsqnonneg';
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.equalities.linear = 0;
|
|
solver(i).constraint.inequalities.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'LSQLIN';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'lsqlin.m'};
|
|
solver(i).call = 'calllsqlin';
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
i = i+1;
|
|
|
|
solver(i) = sdpsolver;
|
|
solver(i).tag = 'frlib';
|
|
solver(i).version = '';
|
|
solver(i).checkfor= {'frlibPrg.m'};
|
|
solver(i).call = 'callfrlib';
|
|
solver(i).constraint.equalities.linear = 1;
|
|
solver(i).constraint.inequalities.secondordercone.linear = 1;
|
|
solver(i).constraint.inequalities.rotatedsecondordercone.linear = 0;
|
|
i = i+1;
|
|
|
|
solver(i) = lpsolver;
|
|
solver(i).tag = 'REFINER';
|
|
solver(i).version = '1.0';
|
|
solver(i).checkfor= {'iterative_refinement'};
|
|
solver(i).call = 'iterative_refinement';
|
|
solver(i).supportshighprec = 1;
|
|
i = i+1;
|