Logo Search packages:      
Sourcecode: dsdp version File versions  Download package

dsdp.h File Reference

Detailed Description

Internal data structure for the DSDP solver.

Definition in file dsdp.h.

#include "dsdpbasictypes.h"
#include "dsdpvec.h"
#include "dsdpschurmat.h"
#include "dsdpcone.h"
#include "dsdpconverge.h"

Go to the source code of this file.


struct  DCone
struct  DMonitor
struct  DRoutine
struct  DSDP_C
 Internal structures for the DSDP solver. More...
struct  DSDPState
struct  XMaker


#define DSDPKEY   5432
#define DSDPValid(a)   {if (!(a)||((a)->keyid!=DSDPKEY)){ DSDPSETERR(101,"DSDPERROR: Invalid DSDP object\n");}}
#define MAX_XMAKERS   4


typedef struct DSDP_C PD_DSDP
typedef struct RDCone * RRCone
 Cone with nonnegativity on variable r.
typedef struct LUBounds_C * YBoundCone
 Cone with bounds on variables y.


int BoundYConeAddS (YBoundCone, DSDPVec, DSDPVec)
int BoundYConeAddX (YBoundCone, double, DSDPVec, DSDPVec, DSDPVec, double *)
int BoundYConeGetBounds (YBoundCone, double *, double *)
 Get bounds on the variables.
int BoundYConeSetBounds (YBoundCone, double, double)
 Set bounds on the variables.
int DSDPAddBCone (DSDP, DSDPVec, double)
int DSDPAddRCone (DSDP, RRCone *)
int DSDPCGSolve (DSDP, DSDPSchurMat, DSDPVec, DSDPVec, double, DSDPTruth *)
 Apply CG to solve for the step directions.
int DSDPCheckConvergence (DSDP, DSDPTerminationReason *)
 Check for convergence and monitor solution.
int DSDPCheckForUnboundedObjective (DSDP, DSDPTruth *)
int DSDPComputeANorm2 (DSDP, DSDPVec)
 Compute norm of A and C.
int DSDPComputeDataNorms (DSDP)
 Compute norms of A,C, and b.
int DSDPComputeDualityGap (DSDP, double, double *)
 Compute the current duality gap.
int DSDPComputeDualStepDirection (DSDP, double, DSDPVec)
int DSDPComputeDualStepDirections (DSDP)
 Compute the step direction by computing a linear system and solving it.
int DSDPComputeDY (DSDP, double, DSDPVec, double *)
 Compute the step direction.
int DSDPComputeFixedYX (DSDPSchurMat, DSDPVec)
int DSDPComputeG (DSDP, DSDPVec, DSDPVec, DSDPVec)
 Compute the gradient of the barrier for each cone.
int DSDPComputeHessian (DSDP, DSDPSchurMat, DSDPVec, DSDPVec)
 Compute the Schur complement, or Gram, matrix for each cone.
int DSDPComputeLogSDeterminant (DSDP, double *)
 Compute the logarithmic barrier function for the dual varialbe S.
int DSDPComputeMaxStepLength (DSDP, DSDPVec, DSDPDualFactorMatrix, double *)
 Compute the maximum step length for the given step direction.
int DSDPComputeNewY (DSDP, double, DSDPVec)
 Update the Y variables.
int DSDPComputeObjective (DSDP, DSDPVec, double *)
 Compute the objective function (DD).
int DSDPComputePDY (DSDP, double, DSDPVec, double *)
 Compute the step direction.
int DSDPComputePDY1 (DSDP, double, DSDPVec)
 Compute an affine step direction dy1.
int DSDPComputePNorm (DSDP, double, DSDPVec, double *)
 Compute proximity to a point on the central path.
int DSDPComputePotential (DSDP, DSDPVec, double, double *)
 Compute the potential of the given point.
int DSDPComputePotential2 (DSDP, DSDPVec, double, double, double *)
 Compute the objective function plus the barrier function.
int DSDPComputePY (DSDP, double, DSDPVec)
 Compute PY = Y - beta DY for use in computing X.
int DSDPComputeRHS (DSDP, double, DSDPVec)
 Compute the right-hand side of the linear system that determines the step direction.
int DSDPComputeSS (DSDP, DSDPVec, DSDPDualFactorMatrix, DSDPTruth *)
 Compute the dual variables S in each cone.
int DSDPComputeXVariables (DSDP, double, DSDPVec, DSDPVec, DSDPVec, double *)
 Compute the X variables in each cone.
int DSDPCreateLUBoundsCone (DSDP, YBoundCone *)
 Create bounds cone.
int DSDPDefaultConvergence (DSDP, void *)
 Check for Convergence.
int DSDPDestroyCones (DSDP)
 Each cone shoudl free its data structures.
int DSDPFixedVariablesNorm (DSDPSchurMat, DSDPVec)
int DSDPGetConicDimension (DSDP, double *)
 Get the total dimension of the cones.
int DSDPGetConvergenceMonitor (DSDP, ConvergenceMonitor **)
 Get the structure containing convergence parameters.
int DSDPGetMaxYElement (DSDP, double *)
 Copy the the infinity norm of the variables y.
int DSDPGetRR (DSDP, double *)
 Get variable r.
int DSDPGetSchurMatrix (DSDP, DSDPSchurMat *)
int DSDPHessianMultiplyAdd (DSDP, DSDPVec, DSDPVec)
 Add the product of Schur matrix with v.
int DSDPInitializeVariables (DSDP)
 Initialize variables and factor S.
int DSDPInvertS (DSDP)
 Invert the S variables in each cone.
int DSDPMonitor (DSDP)
int DSDPMonitorCones (DSDP, int)
 This routine is called once per iteration.
int DSDPObjectiveGH (DSDP, DSDPSchurMat, DSDPVec)
 Compute gradient of dual objective.
int DSDPPassXVectors (DSDP, double, DSDPVec, DSDPVec)
 Pass the information needed to compute the variables X in each cone but do not compute X.
int DSDPPrintStats (DSDP, void *)
 Print statistics about the current solution to standard output.
int DSDPPrintStatsFile (DSDP, void *)
int DSDPRefineStepDirection (DSDP, DSDPVec, DSDPVec)
int DSDPSaveYForX (DSDP, double, double)
 Save the current solution for later computation of X.
int DSDPScaleData (DSDP)
 Scale the matrix C.
int DSDPSchurSparsity (DSDP, int, int[], int)
 Each cone should print its state.
int DSDPSetCone (DSDP, DSDPCone)
 Pass a cone to the DSDP solver.
int DSDPSetDefaultMonitors (DSDP)
 Set convergence monitor.
int DSDPSetDefaultParameters (DSDP)
 Set default parameters.
int DSDPSetDefaultSchurMatrixStructure (DSDP)
int DSDPSetDefaultStatistics (DSDP)
 Set default statistics.
int DSDPSetRR (DSDP, double)
 Set variable r.
int DSDPSetUpCones (DSDP)
 Each cone should factor data or allocate internal data structures.
int DSDPSetUpCones2 (DSDP, DSDPVec, DSDPSchurMat)
 Each cone should allocate its data structures .
int DSDPSetY (DSDP, double, double, DSDPVec)
 Update the solver with these y variables.
int DSDPSolveDynamicRho (DSDP)
 Apply dual-scaling algorithm.
int DSDPTakeDown (DSDP)
 Destroy internal data structures.
int DSDPViewCones (DSDP)
 Each cone should print its state.
int RConeGetRX (RRCone, double *)
int RConeSetType (RRCone, DSDPPenalty)

Generated by  Doxygen 1.6.0   Back to index