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

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

Added original make3d

File size: 1.7 KB
Line 
1function output = callcsdp(interfacedata);
2
3% Retrieve needed data
4options = interfacedata.options;
5F_struc = interfacedata.F_struc;
6c       = interfacedata.c;
7K       = interfacedata.K;
8x0      = interfacedata.x0;
9pars   = interfacedata.options.csdp;
10ub      = interfacedata.ub;
11lb      = interfacedata.lb;
12
13% Bounded variables converted to constraints
14if ~isempty(ub)
15    [F_struc,K] = addbounds(F_struc,K,ub,lb);
16end
17
18pars.printlevel=options.verbose;
19
20if options.savedebug
21    save csdpdebug F_struc c K pars
22end
23   
24if options.showprogress;showprogress(['Calling ' interfacedata.solver.tag],options.showprogress);end
25solvertime = clock;
26[x_s,y_s,z_s,info]=csdp(-F_struc(:,2:end),-c,F_struc(:,1),K,pars);
27solvertime = etime(clock,solvertime);
28
29% We solve dual problem with CSDP
30Dual = x_s;
31x    = y_s;
32
33switch info
34case 0
35    problem = 0;
36case 1
37    problem = 2;
38case 2
39    problem = 1;
40case {3,5,6,7,8,9}
41    problem = 4;
42case 4
43    problem = 3;
44otherwise
45    problem = 9;
46end
47infostr = yalmiperror(problem,interfacedata.solver.tag);
48
49% Save ALL data sent to solver
50if options.savesolverinput
51    solverinput.A = -F_struc(:,2:end);
52    solverinput.c = F_struc(:,1);
53    solverinput.b = -c;
54    solverinput.K = K;
55    solverinput.pars = pars;
56else
57    solverinput = [];
58end
59
60% Save ALL data from the solution?
61if options.savesolveroutput
62    solveroutput.x = x_s;
63    solveroutput.y = y_s;
64    solveroutput.info = info;
65else
66    solveroutput = [];
67end
68
69% Standard interface
70output.Primal      = x;
71output.Dual        = Dual;
72output.Slack       = z_s;
73output.problem     = problem;
74output.infostr     = infostr;
75output.solverinput = solverinput;
76output.solveroutput= solveroutput;
77output.solvertime  = solvertime;
Note: See TracBrowser for help on using the repository browser.