/usr/include/dsdp/dsdpbasictypes.h is in libdsdp-dev 5.8-9.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #ifndef __DSDP_BASIC_TYPES
#define __DSDP_BASIC_TYPES
/*!
\file dsdpbasictypes.h
\brief Solver, solution types, termination codes,
*/
/*!
\typedef struct DSDP_C* DSDP;
\brief An implementation of
the dual-scaling algorithm for semidefinite programming.
*/
typedef struct DSDP_C* DSDP;
/*!
\typedef enum DSDPTruth
\brief Boolean variables
*/
typedef enum { DSDP_FALSE = 0, /*!< 0*/ DSDP_TRUE = 1/*!< 1 */} DSDPTruth;
/*!
\typedef enum DSDPDualFactorMatrix
\brief DSDP requires two instances of the data structures S.
*/
typedef enum {
DUAL_FACTOR = 1, /*!< First instance for dual variable S */
PRIMAL_FACTOR = 2 /*!< Second instance used to compute X */
} DSDPDualFactorMatrix;
typedef enum { DSDPAlways=1, DSDPNever=2, DSDPInfeasible=0} DSDPPenalty;
/*!
\typedef enum DSDPSolutionType
\brief Formulations (P) and (D) can be feasible and bounded, feasible
and unbounded, or infeasible.
\sa DSDPGetSolutionType()
*/
typedef enum {/* converged */
DSDP_PDUNKNOWN = 0, /*!< Not sure whether (D) or (P) is feasible, check y bounds */
DSDP_PDFEASIBLE = 1, /*!< Both (D) and (P) are feasible and bounded */
DSDP_UNBOUNDED = 3, /*!< (D) is unbounded and (P) is infeasible */
DSDP_INFEASIBLE = 4 /*!< (D) in infeasible and (P) is unbounded */
} DSDPSolutionType;
/*!
\typedef enum DSDPTerminationReason
\brief There are many reasons to terminate the solver.
\sa DSDPStopReason()
*/
typedef enum {
DSDP_CONVERGED = 1, /*!< Good news: Solution found. */
DSDP_INFEASIBLE_START = -6, /*!< The initial points y and r imply that S is not positive*/
DSDP_SMALL_STEPS = -2, /*!< Short step lengths created by numerical difficulties prevent progress */
DSDP_INDEFINITE_SCHUR_MATRIX = -8, /*!< Theoretically this matrix is positive definite */
DSDP_MAX_IT = -3, /*!< Reached maximum number of iterations */
DSDP_NUMERICAL_ERROR = -9, /*!< Another numerical error occurred. Check solution */
DSDP_UPPERBOUND = 5, /*!< Objective (DD) big enough to stop */
DSDP_USER_TERMINATION = 7, /*!< DSDP didn't stop it, did you? */
CONTINUE_ITERATING = 0 /*!< Don't Stop */ } DSDPTerminationReason;
extern int DSDPSetConvergenceFlag(DSDP,DSDPTerminationReason);
#endif
|