SCIP-SDP  4.0.0
sdpisolver.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of SCIPSDP - a solving framework for mixed-integer */
4 /* semidefinite programs based on SCIP. */
5 /* */
6 /* Copyright (C) 2011-2013 Discrete Optimization, TU Darmstadt */
7 /* EDOM, FAU Erlangen-Nürnberg */
8 /* 2014-2021 Discrete Optimization, TU Darmstadt */
9 /* */
10 /* */
11 /* This program is free software; you can redistribute it and/or */
12 /* modify it under the terms of the GNU Lesser General Public License */
13 /* as published by the Free Software Foundation; either version 3 */
14 /* of the License, or (at your option) any later version. */
15 /* */
16 /* This program is distributed in the hope that it will be useful, */
17 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
18 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
19 /* GNU Lesser General Public License for more details. */
20 /* */
21 /* You should have received a copy of the GNU Lesser General Public License */
22 /* along with this program; if not, write to the Free Software */
23 /* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.*/
24 /* */
25 /* */
26 /* Based on SCIP - Solving Constraint Integer Programs */
27 /* Copyright (C) 2002-2021 Zuse Institute Berlin */
28 /* SCIP is distributed under the terms of the SCIP Academic Licence, */
29 /* see file COPYING in the SCIP distribution. */
30 /* */
31 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
32 
55 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
56 
57 #ifndef __SCIP_SDPISOLVER_H__
58 #define __SCIP_SDPISOLVER_H__
59 
60 
61 #include "scip/def.h"
62 #include "blockmemshell/memory.h"
63 #include "scip/type_retcode.h"
64 #include "sdpi/type_sdpi.h"
65 #include "sdpi/sdpiclock.h"
66 
67 #ifdef __cplusplus
68 extern "C" {
69 #endif
70 
71 typedef struct SCIP_SDPiSolver SCIP_SDPISOLVER;
73 /*
74  * Miscellaneous Methods
75  */
76 
81 SCIP_EXPORT
82 const char* SCIPsdpiSolverGetSolverName(
83  void
84  );
85 
87 SCIP_EXPORT
88 const char* SCIPsdpiSolverGetSolverDesc(
89  void
90  );
91 
98 SCIP_EXPORT
100  SCIP_SDPISOLVER* sdpisolver
101  );
102 
104 SCIP_EXPORT
106  void
107  );
108 
110 SCIP_EXPORT
112  void
113  );
114 
120 /*
121  * SDPI Creation and Destruction Methods
122  */
123 
128 SCIP_EXPORT
129 SCIP_RETCODE SCIPsdpiSolverCreate(
130  SCIP_SDPISOLVER** sdpisolver,
131  SCIP_MESSAGEHDLR* messagehdlr,
132  BMS_BLKMEM* blkmem,
133  BMS_BUFMEM* bufmem
134  );
135 
137 SCIP_EXPORT
138 SCIP_RETCODE SCIPsdpiSolverFree(
139  SCIP_SDPISOLVER** sdpisolver
140  );
141 
143 SCIP_EXPORT
144 SCIP_RETCODE SCIPsdpiSolverIncreaseCounter(
145  SCIP_SDPISOLVER* sdpisolver
146  );
147 
149 SCIP_EXPORT
150 SCIP_RETCODE SCIPsdpiSolverResetCounter(
151  SCIP_SDPISOLVER* sdpisolver
152  );
153 
156 /*
157  * Solving Methods
158  */
159 
178 SCIP_EXPORT
179 SCIP_RETCODE SCIPsdpiSolverLoadAndSolve(
180  SCIP_SDPISOLVER* sdpisolver,
181  int nvars,
182  SCIP_Real* obj,
183  SCIP_Real* lb,
184  SCIP_Real* ub,
185  int nsdpblocks,
186  int* sdpblocksizes,
187  int* sdpnblockvars,
188  int sdpconstnnonz,
189  int* sdpconstnblocknonz,
191  int** sdpconstrow,
192  int** sdpconstcol,
193  SCIP_Real** sdpconstval,
194  int sdpnnonz,
195  int** sdpnblockvarnonz,
197  int** sdpvar,
199  int*** sdprow,
200  int*** sdpcol,
201  SCIP_Real*** sdpval,
202  int** indchanges,
204  int* nremovedinds,
205  int* blockindchanges,
206  int nremovedblocks,
207  int nlpcons,
208  SCIP_Real* lplhs,
209  SCIP_Real* lprhs,
210  int lpnnonz,
211  int* lprow,
212  int* lpcol,
213  SCIP_Real* lpval,
214  SCIP_Real* starty,
215  int* startZnblocknonz,
217  int** startZrow,
219  int** startZcol,
221  SCIP_Real** startZval,
223  int* startXnblocknonz,
225  int** startXrow,
227  int** startXcol,
229  SCIP_Real** startXval,
231  SCIP_SDPSOLVERSETTING startsettings,
233  SCIP_Real timelimit,
234  SDPI_CLOCK* usedsdpitime
235 );
236 
259 SCIP_EXPORT
261  SCIP_SDPISOLVER* sdpisolver,
262  SCIP_Real penaltyparam,
263  SCIP_Bool withobj,
264  SCIP_Bool rbound,
265  int nvars,
266  SCIP_Real* obj,
267  SCIP_Real* lb,
268  SCIP_Real* ub,
269  int nsdpblocks,
270  int* sdpblocksizes,
271  int* sdpnblockvars,
272  int sdpconstnnonz,
273  int* sdpconstnblocknonz,
275  int** sdpconstrow,
276  int** sdpconstcol,
277  SCIP_Real** sdpconstval,
278  int sdpnnonz,
279  int** sdpnblockvarnonz,
281  int** sdpvar,
283  int*** sdprow,
284  int*** sdpcol,
285  SCIP_Real*** sdpval,
286  int** indchanges,
288  int* nremovedinds,
289  int* blockindchanges,
290  int nremovedblocks,
291  int nlpcons,
292  SCIP_Real* lplhs,
293  SCIP_Real* lprhs,
294  int lpnnonz,
295  int* lprow,
296  int* lpcol,
297  SCIP_Real* lpval,
298  SCIP_Real* starty,
299  int* startZnblocknonz,
301  int** startZrow,
303  int** startZcol,
305  SCIP_Real** startZval,
307  int* startXnblocknonz,
309  int** startXrow,
311  int** startXcol,
313  SCIP_Real** startXval,
315  SCIP_SDPSOLVERSETTING startsettings,
317  SCIP_Real timelimit,
318  SDPI_CLOCK* usedsdpitime,
319  SCIP_Bool* feasorig,
321  SCIP_Bool* penaltybound
323 );
324 
325 
326 
332 /*
333  * Solution Information Methods
334  */
335 
340 SCIP_EXPORT
341 SCIP_Bool SCIPsdpiSolverWasSolved(
342  SCIP_SDPISOLVER* sdpisolver
343  );
344 
351 SCIP_EXPORT
353  SCIP_SDPISOLVER* sdpisolver
354  );
355 
357 SCIP_EXPORT
359  SCIP_SDPISOLVER* sdpisolver,
360  SCIP_Bool* primalfeasible,
361  SCIP_Bool* dualfeasible
362  );
363 
367 SCIP_EXPORT
369  SCIP_SDPISOLVER* sdpisolver
370  );
371 
375 SCIP_EXPORT
377  SCIP_SDPISOLVER* sdpisolver
378  );
379 
383 SCIP_EXPORT
385  SCIP_SDPISOLVER* sdpisolver
386  );
387 
391 SCIP_EXPORT
393  SCIP_SDPISOLVER* sdpisolver
394  );
395 
399 SCIP_EXPORT
401  SCIP_SDPISOLVER* sdpisolver
402  );
403 
407 SCIP_EXPORT
409  SCIP_SDPISOLVER* sdpisolver
410  );
411 
416 SCIP_EXPORT
417 SCIP_Bool SCIPsdpiSolverIsConverged(
418  SCIP_SDPISOLVER* sdpisolver
419  );
420 
422 SCIP_EXPORT
423 SCIP_Bool SCIPsdpiSolverIsObjlimExc(
424  SCIP_SDPISOLVER* sdpisolver
425  );
426 
428 SCIP_EXPORT
430  SCIP_SDPISOLVER* sdpisolver
431  );
432 
434 SCIP_EXPORT
436  SCIP_SDPISOLVER* sdpisolver
437  );
438 
450 SCIP_EXPORT
452  SCIP_SDPISOLVER* sdpisolver
453  );
454 
456 SCIP_EXPORT
457 SCIP_Bool SCIPsdpiSolverIsOptimal(
458  SCIP_SDPISOLVER* sdpisolver
459  );
460 
464 SCIP_EXPORT
466  SCIP_SDPISOLVER* sdpisolver
467  );
468 
470 SCIP_EXPORT
472  SCIP_SDPISOLVER* sdpisolver,
473  SCIP_Bool* success
474  );
475 
477 SCIP_EXPORT
478 SCIP_RETCODE SCIPsdpiSolverGetObjval(
479  SCIP_SDPISOLVER* sdpisolver,
480  SCIP_Real* objval
481  );
482 
487 SCIP_EXPORT
488 SCIP_RETCODE SCIPsdpiSolverGetSol(
489  SCIP_SDPISOLVER* sdpisolver,
490  SCIP_Real* objval,
491  SCIP_Real* dualsol,
492  int* dualsollength
494  );
495 
497 SCIP_EXPORT
499  SCIP_SDPISOLVER* sdpisolver,
500  int nblocks,
501  int* startXnblocknonz
503  );
504 
512 SCIP_EXPORT
513 SCIP_RETCODE SCIPsdpiSolverGetPreoptimalSol(
514  SCIP_SDPISOLVER* sdpisolver,
515  SCIP_Bool* success,
516  SCIP_Real* dualsol,
517  int* dualsollength,
519  int nblocks,
520  int* startXnblocknonz,
522  int** startXrow,
523  int** startXcol,
524  SCIP_Real** startXval
525  );
526 
534 SCIP_EXPORT
536  SCIP_SDPISOLVER* sdpisolver,
537  SCIP_Real* lbvars,
538  SCIP_Real* ubvars,
539  int* arraylength
541  );
542 
544 SCIP_EXPORT
546  SCIP_SDPISOLVER* sdpisolver,
547  int nblocks,
548  int* startXnblocknonz
549  );
550 
557 SCIP_EXPORT
558 SCIP_RETCODE SCIPsdpiSolverGetPrimalMatrix(
559  SCIP_SDPISOLVER* sdpisolver,
560  int nblocks,
561  int* startXnblocknonz,
563  int** startXrow,
564  int** startXcol,
565  SCIP_Real** startXval
566  );
567 
569 SCIP_EXPORT
571  SCIP_SDPISOLVER* sdpisolver
572  );
573 
575 SCIP_EXPORT
576 SCIP_RETCODE SCIPsdpiSolverGetTime(
577  SCIP_SDPISOLVER* sdpisolver,
578  SCIP_Real* opttime
579  );
580 
582 SCIP_EXPORT
583 SCIP_RETCODE SCIPsdpiSolverGetIterations(
584  SCIP_SDPISOLVER* sdpisolver,
585  int* iterations
586  );
587 
589 SCIP_EXPORT
590 SCIP_RETCODE SCIPsdpiSolverGetSdpCalls(
591  SCIP_SDPISOLVER* sdpisolver,
592  int* calls
593  );
594 
596 SCIP_EXPORT
597 SCIP_RETCODE SCIPsdpiSolverSettingsUsed(
598  SCIP_SDPISOLVER* sdpisolver,
599  SCIP_SDPSOLVERSETTING* usedsetting
600  );
601 
607 /*
608  * SDPi State Methods
609  */
610 
611 
612 
613 /*
614  * Numerical Methods
615  */
616 
621 SCIP_EXPORT
622 SCIP_Real SCIPsdpiSolverInfinity(
623  SCIP_SDPISOLVER* sdpisolver
624  );
625 
627 SCIP_EXPORT
628 SCIP_Bool SCIPsdpiSolverIsInfinity(
629  SCIP_SDPISOLVER* sdpisolver,
630  SCIP_Real val
631  );
632 
634 SCIP_EXPORT
635 SCIP_RETCODE SCIPsdpiSolverGetRealpar(
636  SCIP_SDPISOLVER* sdpisolver,
637  SCIP_SDPPARAM type,
638  SCIP_Real* dval
639  );
640 
642 SCIP_EXPORT
643 SCIP_RETCODE SCIPsdpiSolverSetRealpar(
644  SCIP_SDPISOLVER* sdpisolver,
645  SCIP_SDPPARAM type,
646  SCIP_Real dval
647  );
648 
650 SCIP_EXPORT
651 SCIP_RETCODE SCIPsdpiSolverGetIntpar(
652  SCIP_SDPISOLVER* sdpisolver,
653  SCIP_SDPPARAM type,
654  int* ival
655  );
656 
658 SCIP_EXPORT
659 SCIP_RETCODE SCIPsdpiSolverSetIntpar(
660  SCIP_SDPISOLVER* sdpisolver,
661  SCIP_SDPPARAM type,
662  int ival
663  );
664 
666 SCIP_EXPORT
668  SCIP_SDPISOLVER* sdpisolver,
669  SCIP_Real maxguess
670  );
671 
673 SCIP_EXPORT
675  SCIP_SDPISOLVER* sdpisolver,
676  SCIP_Real maxcoeff,
677  SCIP_Real* penaltyparam
678  );
679 
681 SCIP_EXPORT
683  SCIP_SDPISOLVER* sdpisolver,
684  SCIP_Real penaltyparam,
685  SCIP_Real* maxpenaltyparam
686  );
687 
693 /*
694  * File Interface Methods
695  */
696 
701 SCIP_EXPORT
702 SCIP_RETCODE SCIPsdpiSolverReadSDP(
703  SCIP_SDPISOLVER* sdpisolver,
704  const char* fname
705  );
706 
708 SCIP_EXPORT
709 SCIP_RETCODE SCIPsdpiSolverWriteSDP(
710  SCIP_SDPISOLVER* sdpisolver,
711  const char* fname
712  );
713 
716 #ifdef __cplusplus
717 }
718 #endif
719 
720 #endif
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetPrimalBoundVars(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *lbvars, SCIP_Real *ubvars, int *arraylength)
SCIP_EXPORT SCIP_Real SCIPsdpiSolverInfinity(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT int SCIPsdpiSolverGetInternalStatus(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetIntpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int *ival)
SCIP_EXPORT SCIP_Real SCIPsdpiSolverGetMaxPrimalEntry(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetTime(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *opttime)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetRealpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real *dval)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverResetCounter(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverSettingsUsed(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPSOLVERSETTING *usedsetting)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetPreoptimalSol(SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *success, SCIP_Real *dualsol, int *dualsollength, int nblocks, int *startXnblocknonz, int **startXrow, int **startXcol, SCIP_Real **startXval)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverIgnoreInstability(SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *success)
enum SCIP_SDPSolverSetting SCIP_SDPSOLVERSETTING
Definition: type_sdpi.h:83
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsObjlimExc(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsConverged(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverSetRealpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real dval)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverLoadAndSolveWithPenalty(SCIP_SDPISOLVER *sdpisolver, SCIP_Real penaltyparam, SCIP_Bool withobj, SCIP_Bool rbound, int nvars, SCIP_Real *obj, SCIP_Real *lb, SCIP_Real *ub, int nsdpblocks, int *sdpblocksizes, int *sdpnblockvars, int sdpconstnnonz, int *sdpconstnblocknonz, int **sdpconstrow, int **sdpconstcol, SCIP_Real **sdpconstval, int sdpnnonz, int **sdpnblockvarnonz, int **sdpvar, int ***sdprow, int ***sdpcol, SCIP_Real ***sdpval, int **indchanges, int *nremovedinds, int *blockindchanges, int nremovedblocks, int nlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *starty, int *startZnblocknonz, int **startZrow, int **startZcol, SCIP_Real **startZval, int *startXnblocknonz, int **startXrow, int **startXcol, SCIP_Real **startXval, SCIP_SDPSOLVERSETTING startsettings, SCIP_Real timelimit, SDPI_CLOCK *usedsdpitime, SCIP_Bool *feasorig, SCIP_Bool *penaltybound)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsTimelimExc(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetSolFeasibility(SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsPrimalInfeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetSol(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval, SCIP_Real *dualsol, int *dualsollength)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsDualFeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverReadSDP(SCIP_SDPISOLVER *sdpisolver, const char *fname)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetSdpCalls(SCIP_SDPISOLVER *sdpisolver, int *calls)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverCreate(SCIP_SDPISOLVER **sdpisolver, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, BMS_BUFMEM *bufmem)
type definitions for specific SDP-solver interfaces
SCIP_EXPORT int SCIPsdpiSolverGetDefaultSdpiSolverNpenaltyIncreases(void)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverSetIntpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int ival)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverFeasibilityKnown(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT const char * SCIPsdpiSolverGetSolverName(void)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetPrimalMatrix(SCIP_SDPISOLVER *sdpisolver, int nblocks, int *startXnblocknonz, int **startXrow, int **startXcol, SCIP_Real **startXval)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsDualInfeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT const char * SCIPsdpiSolverGetSolverDesc(void)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverComputeMaxPenaltyparam(SCIP_SDPISOLVER *sdpisolver, SCIP_Real penaltyparam, SCIP_Real *maxpenaltyparam)
SCIP_EXPORT void * SCIPsdpiSolverGetSolverPointer(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsAcceptable(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverIncreaseCounter(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsOptimal(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverWasSolved(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverWriteSDP(SCIP_SDPISOLVER *sdpisolver, const char *fname)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverDoesWarmstartNeedPrimal(void)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetObjval(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverComputePenaltyparam(SCIP_SDPISOLVER *sdpisolver, SCIP_Real maxcoeff, SCIP_Real *penaltyparam)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverLoadAndSolve(SCIP_SDPISOLVER *sdpisolver, int nvars, SCIP_Real *obj, SCIP_Real *lb, SCIP_Real *ub, int nsdpblocks, int *sdpblocksizes, int *sdpnblockvars, int sdpconstnnonz, int *sdpconstnblocknonz, int **sdpconstrow, int **sdpconstcol, SCIP_Real **sdpconstval, int sdpnnonz, int **sdpnblockvarnonz, int **sdpvar, int ***sdprow, int ***sdpcol, SCIP_Real ***sdpval, int **indchanges, int *nremovedinds, int *blockindchanges, int nremovedblocks, int nlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *starty, int *startZnblocknonz, int **startZrow, int **startZcol, SCIP_Real **startZval, int *startXnblocknonz, int **startXrow, int **startXcol, SCIP_Real **startXval, SCIP_SDPSOLVERSETTING startsettings, SCIP_Real timelimit, SDPI_CLOCK *usedsdpitime)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetPrimalNonzeros(SCIP_SDPISOLVER *sdpisolver, int nblocks, int *startXnblocknonz)
methods for clocks and timing
struct SCIP_SDPiSolver SCIP_SDPISOLVER
Definition: sdpisolver.h:71
enum SCIP_SDPParam SCIP_SDPPARAM
Definition: type_sdpi.h:72
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverFree(SCIP_SDPISOLVER **sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetPreoptimalPrimalNonzeros(SCIP_SDPISOLVER *sdpisolver, int nblocks, int *startXnblocknonz)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverGetIterations(SCIP_SDPISOLVER *sdpisolver, int *iterations)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsInfinity(SCIP_SDPISOLVER *sdpisolver, SCIP_Real val)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsPrimalFeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_RETCODE SCIPsdpiSolverComputeLambdastar(SCIP_SDPISOLVER *sdpisolver, SCIP_Real maxguess)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsDualUnbounded(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsPrimalUnbounded(SCIP_SDPISOLVER *sdpisolver)
SCIP_EXPORT SCIP_Bool SCIPsdpiSolverIsIterlimExc(SCIP_SDPISOLVER *sdpisolver)