source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/solvers/definesolvers.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 26.1 KB
Line 
1function solver = definesolvers
2
3% ****************************
4% Create a default solver
5% ****************************
6emptysolver.tag     = '';
7emptysolver.version = '';
8emptysolver.checkfor= {''};
9emptysolver.testcode= {''};
10emptysolver.call    = '';
11emptysolver.subcall = '';
12emptysolver.show    = 1;
13
14emptysolver.objective.linear = 0;
15emptysolver.objective.quadratic.convex = 0;
16emptysolver.objective.quadratic.nonconvex = 0;
17emptysolver.objective.polynomial = 0;
18emptysolver.objective.maxdet = 0;
19emptysolver.objective.sigmonial = 0;
20
21emptysolver.constraint.equalities.linear     = 0;
22emptysolver.constraint.equalities.quadratic  = 0;
23emptysolver.constraint.equalities.polynomial = 0;
24emptysolver.constraint.equalities.sigmonial  = 0;
25
26emptysolver.constraint.inequalities.elementwise.linear = 0;
27emptysolver.constraint.inequalities.elementwise.quadratic.convex = 0;
28emptysolver.constraint.inequalities.elementwise.quadratic.nonconvex = 0;
29emptysolver.constraint.inequalities.elementwise.polynomial = 0;
30emptysolver.constraint.inequalities.elementwise.sigmonial = 0;
31
32emptysolver.constraint.inequalities.semidefinite.linear = 0;
33emptysolver.constraint.inequalities.semidefinite.quadratic = 0;
34emptysolver.constraint.inequalities.semidefinite.polynomial = 0;
35emptysolver.constraint.inequalities.semidefinite.sigmonial = 0;
36emptysolver.constraint.inequalities.rank = 0;
37
38emptysolver.constraint.inequalities.secondordercone = 0;
39emptysolver.constraint.inequalities.rotatedsecondordercone = 0;
40
41emptysolver.constraint.integer = 0;
42emptysolver.constraint.binary = 0;
43
44emptysolver.dual       = 0;
45emptysolver.complex    = 0;
46emptysolver.parametric = 0;
47emptysolver.evaluation = 0;
48emptysolver.uncertain  = 0;
49
50
51% **************************************
52% Some standard solvers to simplify code
53% **************************************
54
55% LP solver
56lpsolver = emptysolver;
57lpsolver.objective.linear = 1;
58lpsolver.constraint.equalities.linear = 1;
59lpsolver.constraint.inequalities.elementwise.linear = 1;
60lpsolver.dual = 1;
61
62% QP solver
63qpsolver = emptysolver;
64qpsolver.objective.linear = 1;
65qpsolver.objective.quadratic.convex = 1;
66qpsolver.constraint.equalities.linear = 1;
67qpsolver.constraint.inequalities.elementwise.linear = 1;
68qpsolver.dual = 1;
69
70% SDP solver
71sdpsolver = emptysolver;
72sdpsolver.objective.linear = 1;
73sdpsolver.constraint.equalities.linear = 1;
74sdpsolver.constraint.inequalities.elementwise.linear = 1;
75sdpsolver.constraint.inequalities.semidefinite.linear = 1;
76sdpsolver.dual = 1;
77
78% ****************************
79% INITIALIZE COUNTER
80% ****************************
81i = 1;
82
83% ****************************
84% DEFINE SOLVERS
85% ****************************
86
87solver(i) = qpsolver;
88solver(i).tag     = 'CPLEX';
89solver(i).version = 'CPLEXINT';
90solver(i).checkfor= {'cplexint'};
91solver(i).call    = 'callcplexint';
92solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
93solver(i).constraint.integer = 1;
94solver(i).constraint.binary = 1;
95i = i+1;
96
97solver(i) = lpsolver;
98solver(i).tag     = 'GLPK';
99solver(i).version = 'GLPKMEX';
100solver(i).checkfor= {'glpkmex.m'};
101solver(i).call    = 'callglpk';
102solver(i).constraint.integer = 1;
103i = i+1;
104
105solver(i) = lpsolver;
106solver(i).tag     = 'CDD';
107solver(i).version = 'CDDMEX';
108solver(i).checkfor= {'cddmex'};
109solver(i).call    = 'callcdd';
110i = i+1;
111
112solver(i) = lpsolver;
113solver(i).tag     = 'NAG';
114solver(i).version = 'e04mbf';
115solver(i).checkfor= {'e04mbf'};
116solver(i).call    = 'callnage04mbf';
117i = i+1;
118
119solver(i) = qpsolver;
120solver(i).tag     = 'NAG';
121solver(i).version = 'e04naf';
122solver(i).checkfor= {'e04naf'};
123solver(i).call    = 'callnage04naf';
124i = i+1;
125
126solver(i) = lpsolver;
127solver(i).tag     = 'CLP';
128solver(i).version = 'CLPMEX-LP';
129solver(i).checkfor= {'mexclp'};
130solver(i).call    = 'callclp';
131%solver(i).constraint.integer = 1;
132i = i+1;
133
134solver(i) = qpsolver;
135solver(i).tag     = 'XPRESS';
136solver(i).version = 'MEXPRESS 1.1';
137solver(i).checkfor= {'xpress.m'};
138solver(i).call    = 'callmexpress11';
139solver(i).constraint.integer = 1;
140solver(i).constraint.binary = 1;
141i = i+1;
142
143solver(i) = qpsolver;
144solver(i).tag     = 'XPRESS';
145solver(i).version = 'MEXPRESS 1.0';
146solver(i).checkfor= {'mexpress.m'};
147solver(i).call    = 'callmexpress';
148solver(i).constraint.integer = 1;
149solver(i).constraint.binary = 1;
150i = i+1;
151
152solver(i) = lpsolver;
153solver(i).tag     = 'QSOPT';
154solver(i).version = 'MEXQSOPT';
155solver(i).checkfor= {'qsopt.m'};
156solver(i).call    = 'callqsopt';
157i = i+1;
158
159solver(i) = lpsolver;
160solver(i).tag     = 'LPSOLVE';
161solver(i).version = 'MXLPSOLVE';
162solver(i).checkfor= {'lp_solve.m'};
163solver(i).call    = 'calllpsolve';
164solver(i).constraint.integer = 1;
165i = i+1;
166
167solver(i) = qpsolver;
168solver(i).tag     = 'MOSEK';
169solver(i).version = 'LP/QP';
170solver(i).checkfor= {'mosekopt'};
171solver(i).call    = 'callmosek';
172solver(i).constraint.integer = 1;
173i = i+1;
174
175solver(i) = lpsolver;
176solver(i).tag     = 'MOSEK';
177solver(i).version = 'SOCP';
178solver(i).checkfor= {'mosekopt'};
179solver(i).call    = 'callmosek';
180solver(i).constraint.inequalities.secondordercone = 1;
181i = i+1;
182
183solver(i) = lpsolver;
184solver(i).tag     = 'MOSEK';
185solver(i).version = 'GEOMETRIC';
186solver(i).checkfor= {'mosekopt'};
187solver(i).call    = 'callmosek';
188solver(i).objective.sigmonial = 1;
189solver(i).constraint.inequalities.elementwise.sigmonial = 1;
190solver(i).constraint.equalities.elementwise.nonlinear = 1;
191i = i+1;
192
193solver(i) = qpsolver;
194solver(i).tag     = 'CPLEX';
195solver(i).version = 'CPLEXMEX';
196solver(i).checkfor= {'cplexmex'};
197solver(i).call    = 'callcplexmex';
198solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
199solver(i).constraint.integer = 1;
200solver(i).constraint.binary = 1;
201i = i+1;
202
203solver(i) = lpsolver;
204solver(i).tag     = 'CPLEX';
205solver(i).version = 'LP-CPLEXINT';
206solver(i).checkfor= {'lp_cplex.m'};
207solver(i).call    = 'calllp_cplex';
208i = i+1;
209
210solver(i) = qpsolver;
211solver(i).tag     = 'CPLEX';
212solver(i).version = 'QP-CPLEXINT';
213solver(i).checkfor= {'qp_cplex.m'};
214solver(i).call    = 'callqp_cplex';
215i = i+1;
216
217solver(i) = lpsolver;
218solver(i).tag     = 'CPLEX';
219solver(i).version = 'MILP-CPLEXINT';
220solver(i).checkfor= {'milp_cplex.m'};
221solver(i).call    = 'callmilp_cplex';
222solver(i).constraint.integer = 1;
223solver(i).constraint.binary = 1;
224i = i+1;
225
226solver(i) = qpsolver;
227solver(i).tag     = 'CPLEX';
228solver(i).version = 'MIQP-CPLEXINT';
229solver(i).checkfor= {'miqp_cplex.m'};
230solver(i).call    = 'callmiqp_cplex';
231solver(i).constraint.integer = 1;
232solver(i).constraint.binary = 1;
233i = i+1;
234
235solver(i) = lpsolver;
236solver(i).tag     = 'LINPROG';
237solver(i).version = '';
238solver(i).checkfor= {'linprog'};
239solver(i).call    = 'calllinprog';
240i = i+1;
241
242solver(i) = lpsolver;
243solver(i).tag     = 'BINTPROG';
244solver(i).version = '';
245solver(i).checkfor= {'bintprog.m'};
246solver(i).call    = 'callbintprog';
247solver(i).constraint.binary = 1;
248solver(i).constraint.integer = 1;
249solver(i).dual = 0;
250i = i+1;
251
252solver(i) = qpsolver;
253solver(i).tag     = 'BPMPD';
254solver(i).version = '';
255solver(i).checkfor= {'bp'};
256solver(i).call    = 'callbpmpd';
257i = i+1;
258
259solver(i) = qpsolver;
260solver(i).tag     = 'CLP';
261solver(i).version = 'CLPMEX-QP';
262solver(i).checkfor= {'clp.m'};
263solver(i).call    = 'callclp';
264%solver(i).constraint.integer = 1;
265i = i+1;
266
267solver(i) = qpsolver;
268solver(i).tag     = 'QUADPROG';
269solver(i).version = '';
270solver(i).checkfor= {'quadprog'};
271solver(i).call    = 'callquadprog';
272i = i+1;
273
274solver(i) = qpsolver;
275solver(i).tag     = 'OOQP';
276solver(i).version = '';
277solver(i).checkfor= {'ooqp.m'};
278solver(i).call    = 'callooqp';
279i = i+1;
280
281solver(i) = qpsolver;
282solver(i).tag     = 'lindo';
283solver(i).version = 'MIQP';
284solver(i).checkfor= {'mxlindo'};
285solver(i).call    = 'calllindo_miqp';
286solver(i).constraint.integer = 1;
287i = i+1;
288
289solver(i) = sdpsolver;
290solver(i).tag     = 'SeDuMi';
291solver(i).version = '1.1';
292solver(i).checkfor= {'sedumi.m','ada_pcg.m','install_sedumi'};
293solver(i).call    = 'callsedumi';
294solver(i).constraint.equalities.linear = 1;
295solver(i).constraint.inequalities.secondordercone = 1;
296solver(i).constraint.inequalities.rotatedsecondordercone = 1;
297solver(i).complex = 1;
298i = i+1;
299
300solver(i) = sdpsolver;
301solver(i).tag     = 'SeDuMi';
302solver(i).version = '1.05';
303solver(i).checkfor= {'sedumi.m','ada_pcg.m','vecreal'};
304solver(i).call    = 'callsedumi';
305solver(i).constraint.equalities.linear = 1;
306solver(i).constraint.inequalities.secondordercone = 1;
307solver(i).constraint.inequalities.rotatedsecondordercone = 1;
308solver(i).complex = 1;
309i = i+1;
310
311solver(i) = sdpsolver;
312solver(i).tag     = 'SeDuMi';
313solver(i).version = '1.03';
314solver(i).checkfor= {'sedumi.m','doinfac.m'};
315solver(i).call    = 'callsedumi';
316solver(i).constraint.equalities.linear = 1;
317solver(i).constraint.inequalities.secondordercone = 1;
318solver(i).constraint.inequalities.rotatedsecondordercone = 1;
319solver(i).complex = 1;
320i = i+1;
321
322solver(i) = sdpsolver;
323solver(i).tag     = 'SDPT3';
324solver(i).version = '4';
325solver(i).checkfor= {'sqlp','skron','symqmr','blkbarrier'};
326solver(i).call    = 'callsdpt34';
327solver(i).constraint.equalities.linear = 1;
328solver(i).constraint.inequalities.secondordercone = 1;
329solver(i).objective.maxdet = 1;
330i = i+1;
331
332solver(i) = sdpsolver;
333solver(i).tag     = 'SDPT3';
334solver(i).version = '3.1';
335solver(i).checkfor= {'sqlp','skron','symqmr'};
336solver(i).call    = 'callsdpt331';
337solver(i).constraint.equalities.linear = 1;
338solver(i).constraint.inequalities.secondordercone = 1;
339i = i+1;
340
341solver(i) = sdpsolver;
342solver(i).tag     = 'SDPT3';
343solver(i).version = '3.02';
344solver(i).checkfor= {'sqlp','skron','schursysolve'};
345solver(i).call    = 'callsdpt3302';
346solver(i).constraint.equalities.linear = 1;
347solver(i).constraint.inequalities.secondordercone = 1;
348i = i+1;
349
350solver(i) = sdpsolver;
351solver(i).tag     = 'SDPT3';
352solver(i).version = '3.0';
353solver(i).checkfor= {'sqlp','mexexec'};
354solver(i).call    = 'callsdpt330';
355solver(i).constraint.equalities.linear = 1;
356solver(i).constraint.inequalities.secondordercone = 1;
357i = i+1;
358
359solver(i) = sdpsolver;
360solver(i).tag     = 'SDPA';
361solver(i).version = 'M';
362solver(i).checkfor= {'sdpam.m'};
363solver(i).call    = 'callsdpa';
364solver(i).constraint.equalities.linear = 0;
365i = i+1;
366
367solver(i) = sdpsolver;
368solver(i).tag     = 'DSDP';
369solver(i).version = '5';
370solver(i).checkfor= {'dsdp','dvec'};
371solver(i).call    = 'calldsdp5';
372solver(i).constraint.equalities.linear = 0;
373i = i+1;
374
375solver(i) = sdpsolver;
376solver(i).tag     = 'DSDP';
377solver(i).version = '4';
378solver(i).checkfor= {'dsdp'};
379solver(i).call    = 'calldsdp';
380solver(i).constraint.equalities.linear = 0;
381i = i+1;
382
383solver(i) = sdpsolver;
384solver(i).tag     = 'SDPLR';
385solver(i).version = '';
386solver(i).checkfor= {'sdplr'};
387solver(i).call    = 'callsdplr';
388solver(i).constraint.equalities.linear = 0;
389
390i = i+1;
391
392solver(i) = sdpsolver;
393solver(i).tag     = 'CSDP';
394solver(i).version = '';
395solver(i).checkfor= {'csdp','readsol','writesdpa'};
396solver(i).call    = 'callcsdp';
397solver(i).constraint.equalities.linear = 0;
398i = i+1;
399
400solver(i) = sdpsolver;
401solver(i).tag     = 'MAXDET';
402solver(i).version = '';
403solver(i).checkfor= {'maxdet.m'};
404solver(i).call    = 'callmaxdet';
405solver(i).objective.maxdet = 1;
406solver(i).dual = 0;
407i = i+1;
408
409
410% solver(i) = sdpsolver;
411% solver(i).tag     = 'SPECSDP';
412% solver(i).version = '';
413% solver(i).checkfor= {'specsdp'};
414% solver(i).call    = 'callspecsdp';
415% solver(i).constraint.equalities.linear = 0; % Does not handle equality constraints
416% solver(i).constraint.inequalities.semidefinite.quadratic = 1;
417% i = i+1;
418
419solver(i) = sdpsolver;
420solver(i).tag     = 'PENSDP';
421solver(i).version = 'PENOPT';
422solver(i).checkfor= {'pensdpm'};
423solver(i).call    = 'callpensdpm';
424solver(i).constraint.equalities.linear = 0;
425i = i+1;
426
427solver(i) = sdpsolver;
428solver(i).tag     = 'PENSDP';
429solver(i).version = 'TOMLAB';
430solver(i).checkfor= {'pensdp'};
431solver(i).call    = 'callpensdp';
432solver(i).constraint.equalities.linear = 0;
433i = i+1;
434
435solver(i) = sdpsolver;
436solver(i).tag     = 'PENBMI';
437solver(i).version = 'PENOPT';
438solver(i).checkfor= {'penbmim'};
439solver(i).call    = 'callpenbmim';
440solver(i).objective.quadratic.convex = 1;
441solver(i).objective.quadratic.nonconvex = 1;
442solver(i).constraint.equalities.linear = 0;
443solver(i).constraint.inequalities.semidefinite.quadratic = 1;
444solver(i).constraint.inequalities.semidefinite.polynomial = 1;
445solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
446solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
447solver(i).constraint.inequalities.elementwise.polynomial = 1;
448i = i+1;
449
450solver(i) = sdpsolver;
451solver(i).tag     = 'PENBMI';
452solver(i).version = 'TOMLAB';
453solver(i).checkfor= {'penbmi'};
454solver(i).call    = 'callpenbmi';
455solver(i).objective.quadratic.convex = 1;
456solver(i).objective.quadratic.nonconvex = 1;
457solver(i).constraint.equalities.linear = 0;
458solver(i).constraint.inequalities.semidefinite.quadratic = 1;
459solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
460solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
461i = i+1;
462
463solver(i) = sdpsolver;
464solver(i).tag     = 'LMILAB';
465solver(i).version = '';
466solver(i).checkfor= {'setlmis'};
467solver(i).call    = 'calllmilab';
468solver(i).dual = 0;
469solver(i).constraint.equalities.linear = 0;
470i = i+1;
471
472solver(i) = sdpsolver;
473solver(i).tag     = 'LMIRANK';
474solver(i).version = '';
475solver(i).checkfor= {'lmirank'};
476solver(i).call    = 'calllmirank';
477solver(i).dual = 0;
478solver(i).constraint.inequalities.rank = 1;
479solver(i).objective.linear = 0;
480solver(i).constraint.equalities.linear = 0;
481i = i+1;
482
483solver(i) = emptysolver;
484solver(i).tag     = 'MPT';
485solver(i).version = '';
486solver(i).checkfor= {'mpt_mpqp'};
487solver(i).call    = 'callmpt';
488solver(i).objective.linear = 1;
489solver(i).objective.quadratic.convex = 1;
490solver(i).objective.quadratic.nonconvex = 1;
491solver(i).constraint.inequalities.elementwise.linear = 1;
492solver(i).constraint.equalities.linear = 1;
493%solver(i).constraint.equalities.polynomial = 1;
494%solver(i).constraint.equalities.quadratic = 1;
495solver(i).parametric = 1;
496solver(i).constraint.binary = 1;
497i = i+1;
498
499solver(i) = emptysolver;
500solver(i).tag     = 'MPLCP';
501solver(i).version = '';
502solver(i).checkfor= {'mplcp.m'};
503solver(i).call    = 'callmplcp';
504solver(i).objective.linear = 1;
505solver(i).objective.quadratic.convex = 1;
506solver(i).objective.quadratic.nonconvex = 1;
507solver(i).constraint.inequalities.elementwise.linear = 1;
508solver(i).constraint.equalities.linear = 1;
509solver(i).parametric = 1;
510solver(i).constraint.binary = 1;
511i = i+1;
512
513solver(i) = sdpsolver;
514solver(i).tag     = 'KYPD';
515solver(i).version = '';
516solver(i).checkfor= {'kypd_solver'};
517solver(i).call    = 'callkypd';
518i = i+1;
519
520solver(i) = emptysolver;
521solver(i).tag     = 'fmincon';
522solver(i).version = 'geometric';
523solver(i).checkfor= {'fmincon.m'};
524solver(i).call    = 'callfmincongp';
525solver(i).objective.sigmonial = 1;
526solver(i).constraint.inequalities.elementwise.sigmonial = 1;
527solver(i).constraint.equalities.linear = 1;
528solver(i).constraint.equalities.quadratic = 1;
529solver(i).constraint.equalities.polynomial = 1;
530solver(i).constraint.equalities.sigmonial = 1;
531i = i+1;
532
533solver(i) = emptysolver;
534solver(i).tag     = 'fmincon';
535solver(i).version = 'standard';
536solver(i).checkfor= {'fmincon.m'};
537solver(i).call    = 'callfmincon';
538solver(i).objective.linear = 1;
539solver(i).objective.quadratic.convex = 1;
540solver(i).objective.quadratic.nonconvex = 1;
541solver(i).objective.polynomial = 1;
542solver(i).objective.sigmonial = 1;
543solver(i).constraint.equalities.linear = 1;
544solver(i).constraint.equalities.quadratic = 1;
545solver(i).constraint.equalities.polynomial = 1;
546solver(i).constraint.equalities.sigmonial = 1;
547solver(i).constraint.inequalities.elementwise.linear = 1;
548solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
549solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
550solver(i).constraint.inequalities.elementwise.polynomial = 1;
551solver(i).constraint.inequalities.elementwise.sigmonial = 1;
552solver(i).dual = 1;
553solver(i).evaluation = 1;
554i = i+1;
555
556% solver(i) = emptysolver;
557% solver(i).tag     = 'lindo';
558% solver(i).version = 'geometric';
559% solver(i).checkfor= {'mxlindo'};
560% solver(i).call    = 'calllindo_geo';
561% solver(i).objective.sigmonial = 1;
562% solver(i).constraint.inequalities.elementwise.sigmonial = 1;
563% solver(i).constraint.equalities.linear = 1;
564% solver(i).constraint.equalities.quadratic = 1;
565% solver(i).constraint.equalities.polynomial = 1;
566% solver(i).constraint.equalities.sigmonial = 1;
567% i = i+1;
568
569solver(i) = emptysolver;
570solver(i).tag     = 'lindo';
571solver(i).version = 'NLP';
572solver(i).checkfor= {'mxlindo'};
573solver(i).call    = 'calllindo_nlp';
574solver(i).objective.linear = 1;
575solver(i).objective.quadratic.convex = 1;
576solver(i).objective.quadratic.nonconvex = 1;
577solver(i).objective.polynomial = 1;
578solver(i).objective.sigmonial = 1;
579solver(i).constraint.equalities.linear = 1;
580solver(i).constraint.equalities.quadratic = 1;
581solver(i).constraint.equalities.polynomial = 1;
582solver(i).constraint.equalities.sigmonial = 1;
583solver(i).constraint.inequalities.elementwise.linear = 1;
584solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
585solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
586solver(i).constraint.inequalities.elementwise.polynomial = 1;
587solver(i).constraint.inequalities.elementwise.sigmonial = 1;
588solver(i).dual = 1;
589solver(i).evaluation = 1;
590solver(i).constraint.integer = 1;
591
592i = i+1;
593
594
595% solver(i) = emptysolver;
596% solver(i).tag     = 'ipopt';
597% solver(i).version = 'standard';
598% solver(i).checkfor= {'Ipopt.m'};
599% solver(i).call    = 'callipoptmex';
600% solver(i).objective.linear = 1;
601% solver(i).objective.quadratic.convex = 1;
602% solver(i).objective.quadratic.nonconvex = 1;
603% solver(i).objective.polynomial = 1;
604% solver(i).objective.sigmonial = 1;
605% solver(i).constraint.equalities.linear = 1;
606% solver(i).constraint.equalities.quadratic = 1;
607% solver(i).constraint.equalities.polynomial = 1;
608% solver(i).constraint.equalities.sigmonial = 1;
609% solver(i).constraint.inequalities.elementwise.linear = 1;
610% solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
611% solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
612% solver(i).constraint.inequalities.elementwise.polynomial = 1;
613% solver(i).constraint.inequalities.elementwise.sigmonial = 1;
614% solver(i).dual = 0;
615% i = i+1;
616
617solver(i) = lpsolver;
618solver(i).tag     = 'GPPOSY';
619solver(i).version = '';
620solver(i).checkfor= {'gpposy'};
621solver(i).call    = 'callgpposy';
622solver(i).objective.sigmonial = 1;
623solver(i).constraint.inequalities.elementwise.sigmonial = 1;
624solver(i).constraint.equalities.elementwise.nonlinear = 1;
625i = i+1;
626
627% solver(i) = emptysolver;
628% solver(i).tag     = 'pennlp';
629% solver(i).version = 'standard';
630% solver(i).checkfor= {'pennlp'};
631% solver(i).call    = 'callpennlp';
632% solver(i).objective.linear = 1;
633% solver(i).objective.quadratic.convex = 1;
634% solver(i).objective.quadratic.nonconvex = 1;
635% solver(i).objective.polynomial = 1;
636% solver(i).objective.sigmonial = 1;
637% solver(i).constraint.equalities.linear = 1;
638% solver(i).constraint.equalities.quadratic = 1;
639% solver(i).constraint.equalities.polynomial = 1;
640% solver(i).constraint.equalities.sigmonial = 1;
641% solver(i).constraint.inequalities.elementwise.linear = 1;
642% solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
643% solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
644% solver(i).constraint.inequalities.elementwise.polynomial = 1;
645% solver(i).constraint.inequalities.elementwise.sigmonial = 1;
646% solver(i).dual = 1;
647% i = i+1;
648
649% solver(i) = qpsolver;
650% solver(i).tag     = 'pennlp';
651% solver(i).version = 'QP';
652% solver(i).checkfor= {'pennlpm'};
653% solver(i).call    = 'callpennlp';
654% solver(i).objective.linear = 1;
655% solver(i).objective.quadratic.convex = 1;
656% solver(i).objective.quadratic.nonconvex = 0;
657% solver(i).constraint.equalities.linear = 1;
658% solver(i).constraint.inequalities.elementwise.linear = 1;
659% solver(i).dual = 1;
660% i = i+1;
661
662% solver(i) = emptysolver;
663% solver(i).tag     = 'pennlp';
664% solver(i).version = 'standard';
665% solver(i).checkfor= {'pennlpm'};
666% solver(i).call    = 'callpennlp';
667% solver(i).objective.linear = 1;
668% solver(i).objective.quadratic.convex = 0;
669% solver(i).objective.quadratic.nonconvex = 0;
670% solver(i).objective.polynomial = 1;
671% solver(i).objective.sigmonial = 1;
672% solver(i).constraint.equalities.linear = 1;
673% solver(i).constraint.equalities.quadratic = 1;
674% solver(i).constraint.equalities.polynomial = 1;
675% solver(i).constraint.equalities.sigmonial = 1;
676% solver(i).constraint.inequalities.elementwise.linear = 1;
677% solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
678% solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
679% solver(i).constraint.inequalities.elementwise.polynomial = 1;
680% solver(i).constraint.inequalities.elementwise.sigmonial = 1;
681% solver(i).constraint.inequalities.semidefinite.linear = 0;
682% solver(i).constraint.inequalities.semidefinite.quadratic = 0;
683% solver(i).constraint.inequalities.semidefinite.polynomial = 0;
684% solver(i).dual = 1;
685% i = i+1;
686
687
688solver(i) = emptysolver;
689solver(i).tag     = 'fminsearch';
690solver(i).version = '';
691solver(i).checkfor= {'fminsearch.m'};
692solver(i).call    = 'callfminsearch';
693solver(i).objective.linear = 1;
694solver(i).objective.quadratic.convex = 1;
695solver(i).objective.quadratic.nonconvex = 1;
696solver(i).objective.polynomial = 1;
697solver(i).objective.sigmonial = 1;
698solver(i).dual = 0;
699i = i+1;
700
701% solver(i) = emptysolver;
702% solver(i).tag     = 'mpcvx';
703% solver(i).tag     = 'mpcvx';
704% solver(i).version = '';
705% solver(i).checkfor= {'mpcvx'};
706% solver(i).call    = 'mpcvx';
707% solver(i).objective.linear = 1;
708% solver(i).objective.quadratic.convex = 1;
709% solver(i).objective.quadratic.nonconvex = 1;
710% solver(i).constraint.inequalities.elementwise.linear = 1;
711% solver(i).constraint.inequalities.secondordercone = 1;
712% solver(i).constraint.inequalities.elementwise.polynomial = 1;
713% solver(i).parametric = 1;
714% i = i+1;
715
716% % ***************************************
717% % SOMEWHAT MORE COMPLEX DEFINITIONS OF
718% % THE INTERNAL MICP SOLVER
719% % ***************************************
720solver(i) = emptysolver;
721solver(i).tag     = 'BNB';
722solver(i).version = '';
723solver(i).checkfor= {'bnb'};
724solver(i).call    = 'bnb';
725solver(i).objective.linear = 1;
726solver(i).objective.sigmonial = 1;
727solver(i).objective.polynomial = 1;
728solver(i).objective.quadratic.convex = 1;
729solver(i).constraint.equalities.linear = 1;
730solver(i).constraint.inequalities.elementwise.linear = 1;
731solver(i).constraint.inequalities.elementwise.sigmonial = 1;
732solver(i).constraint.inequalities.elementwise.polynomial = 1;
733solver(i).constraint.inequalities.semidefinite.linear = 1;
734solver(i).constraint.inequalities.secondordercone = 1;
735solver(i).constraint.inequalities.rotatedsecondordercone = 1;
736solver(i).constraint.integer = 1;
737solver(i).constraint.binary = 1;
738solver(i).evaluation = 1;
739i = i+1;
740
741
742% % ***************************************
743% % Experimental min-max solver
744% % ***************************************
745% solver(i) = emptysolver;
746% solver(i).tag     = 'minmax';
747% solver(i).version = '';
748% solver(i).checkfor= {'callminmax'};
749% solver(i).call    = 'callminmax';
750% solver(i).objective.linear = 1;
751% solver(i).objective.sigmonial = 0;
752% solver(i).objective.polynomial = 0;
753% solver(i).objective.quadratic.convex = 0;
754% solver(i).constraint.equalities.linear = 1;
755% solver(i).constraint.inequalities.elementwise.linear = 1;
756% solver(i).constraint.inequalities.elementwise.sigmonial = 0;
757% solver(i).constraint.inequalities.elementwise.polynomial = 0;
758% solver(i).constraint.inequalities.semidefinite.linear = 0;
759% solver(i).constraint.inequalities.secondordercone = 0;
760% solver(i).constraint.inequalities.rotatedsecondordercone = 0;
761% solver(i).constraint.integer = 0;
762% solver(i).constraint.binary = 0;
763% i = i+1;
764
765% % ***************************************
766% % SOMEWHAT MORE COMPLEX DEFINITIONS OF
767% % THE INTERNAL MICP SOLVER
768% % ***************************************
769solver(i) = emptysolver;
770solver(i).tag     = 'CUTSDP';
771solver(i).version = '';
772solver(i).checkfor= {'cutsdp'};
773solver(i).call    = 'cutsdp';
774solver(i).objective.linear = 1;
775solver(i).objective.sigmonial = 0;
776solver(i).objective.polynomial = 0;
777solver(i).objective.quadratic.convex = 1;
778solver(i).constraint.equalities.linear = 1;
779solver(i).constraint.inequalities.elementwise.linear = 1;
780solver(i).constraint.inequalities.semidefinite.linear = 1;
781solver(i).constraint.integer = 1;
782solver(i).constraint.binary = 1;
783solver(i).dual = 1;
784i = i+1;
785
786% ***************************************
787% SOMEWHAT MORE COMPLEX DEFINITIONS OF
788% THE INTERNAL GLOBAL BMI SOLVER
789% ***************************************
790solver(i) = emptysolver;
791solver(i).tag     = 'BMIBNB';
792solver(i).version = '';
793solver(i).checkfor= {'bmibnb'};
794solver(i).call    = 'bmibnb';
795solver(i).objective.linear = 1;
796solver(i).objective.quadratic.convex = 1;
797solver(i).objective.quadratic.nonconvex = 1;
798solver(i).objective.polynomial = 1;
799solver(i).constraint.equalities.linear = 1;
800solver(i).constraint.equalities.polynomial = 1;
801solver(i).constraint.inequalities.elementwise.linear = 1;
802solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
803solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
804solver(i).constraint.inequalities.elementwise.polynomial = 1;
805solver(i).constraint.inequalities.semidefinite.linear = 1;
806solver(i).constraint.inequalities.semidefinite.quadratic = 1;
807solver(i).constraint.inequalities.semidefinite.polynomial = 1;
808solver(i).constraint.inequalities.secondordercone = 1;
809solver(i).constraint.inequalities.rotatedsecondordercone = 1;
810solver(i).constraint.inequalities.rank = 0;
811solver(i).constraint.binary  = 1;
812solver(i).constraint.integer = 1;
813solver(i).evaluation = 1;
814i = i+1;
815
816solver(i) = qpsolver;
817solver(i).tag     = 'kktqp';
818solver(i).version = '';
819solver(i).checkfor= {'kktqp'};
820solver(i).call    = 'kktqp';
821solver(i).objective.linear = 1;
822solver(i).objective.quadratic.convex = 1;
823solver(i).objective.quadratic.nonconvex = 1;
824solver(i).constraint.equalities.linear = 0;
825solver(i).constraint.inequalities.elementwise.linear = 1;
826i = i+1;
827
828solver(i) = emptysolver;
829solver(i).tag     = 'none';
830solver(i).version = '';
831solver(i).checkfor= {'callnone.m'};
832solver(i).call    = 'callnone';
833solver(i).objective.linear = 1;
834solver(i).constraint.equalities.linear = 1;
835solver(i).constraint.inequalities.elementwise.linear = 1;
836solver(i).constraint.inequalities.elementwise.quadratic.convex = 1;
837solver(i).constraint.inequalities.elementwise.quadratic.nonconvex = 1;
838solver(i).constraint.inequalities.semidefinite.linear = 1;
839solver(i).constraint.inequalities.semidefinite.quadratic = 1;
840i = i+1;
Note: See TracBrowser for help on using the repository browser.