Definition in file dsdp.h.
Go to the source code of this file.
Data Structures | |
struct | DSDP_C |
Internal structures for the DSDP solver. More... | |
Typedefs | |
typedef struct RDCone * | RRCone |
Cone with nonnegativity on variable r. | |
typedef struct LUBounds_C * | YBoundCone |
Cone with bounds on variables y. | |
Functions | |
int | BoundYConeGetBounds (YBoundCone, double *, double *) |
Get bounds on the variables. | |
int | BoundYConeSetBounds (YBoundCone, double, double) |
Set bounds on the variables. | |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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. |
typedef struct RDCone * RRCone |
struct LUBounds_C * YBoundCone |
int BoundYConeGetBounds | ( | LUBounds | lucone, | |
double * | lb, | |||
double * | ub | |||
) |
Get bounds on the variables.
lucone | cone of bounds. | |
lb | lower bound on variables. | |
ub | upper bound |
Definition at line 532 of file allbounds.c.
Referenced by DSDPGetYBounds().
int BoundYConeSetBounds | ( | LUBounds | lucone, | |
double | lb, | |||
double | ub | |||
) |
Set bounds on the variables.
lucone | cone of bounds. | |
lb | lower bound on variables. | |
ub | upper bound |
Definition at line 512 of file allbounds.c.
Referenced by DSDPCreateLUBoundsCone(), and DSDPSetYBounds().
int DSDPCGSolve | ( | DSDP | dsdp, | |
DSDPSchurMat | MM, | |||
DSDPVec | RHS, | |||
DSDPVec | X, | |||
double | cgtol, | |||
DSDPTruth * | success | |||
) |
Apply CG to solve for the step directions.
dsdp | the solver | |
MM | matrix | |
RHS | right-hand side | |
X | solution | |
cgtol | accuracy | |
success | output whether a solution of suitable accuracy was found |
Definition at line 239 of file dsdpcg.c.
Referenced by DSDPComputeDualStepDirections(), and DSDPSolveDynamicRho().
int DSDPCheckConvergence | ( | DSDP | dsdp, | |
DSDPTerminationReason * | reason | |||
) |
Check for convergence and monitor solution.
dsdp | solver | |
reason | termination reason |
Definition at line 384 of file dsdpsetup.c.
Referenced by DSDPSolveDynamicRho().
Compute norm of A and C.
dsdp | the solver | |
Anorm2 | norm of data corresponding to each variable y. |
Definition at line 246 of file dsdpcops.c.
Referenced by DSDPComputeDataNorms().
int DSDPComputeDataNorms | ( | DSDP | dsdp | ) |
Compute norms of A,C, and b.
dsdp | the solver |
Definition at line 283 of file dsdpsetup.c.
Referenced by DSDPGetDataNorms(), and DSDPSetup().
int DSDPComputeDualityGap | ( | DSDP | dsdp, | |
double | mu, | |||
double * | gap | |||
) |
Compute the current duality gap.
dsdp | the solver | |
mu | barrier parameter | |
gap | the duality gap |
Definition at line 230 of file dualimpl.c.
Referenced by DSDPSaveYForX().
int DSDPComputeDualStepDirections | ( | DSDP | dsdp | ) |
Compute the step direction by computing a linear system and solving it.
dsdp | the solver |
Definition at line 370 of file dualalg.c.
Referenced by DSDPSolveDynamicRho().
Compute the step direction.
dsdp | the solver | |
mu | barrier parameter | |
DY | Step direction | |
pnorm | distance to the target |
Definition at line 45 of file dualimpl.c.
Referenced by DSDPComputeDualityGap(), DSDPResetY0(), DSDPSaveYForX(), and DSDPSolveDynamicRho().
Compute the gradient of the barrier for each cone.
dsdp | the solver | |
vt | scaling for each element in the next two vectors | |
vrhs1 | scaled gradient of the objective function | |
vrhs2 | scaled gradient of the barrier function |
Definition at line 215 of file dsdpcops.c.
Referenced by DSDPComputeDualStepDirections(), and DSDPSolveDynamicRho().
int DSDPComputeHessian | ( | DSDP | dsdp, | |
DSDPSchurMat | M, | |||
DSDPVec | vrhs1, | |||
DSDPVec | vrhs2 | |||
) |
Compute the Schur complement, or Gram, matrix for each cone.
dsdp | the solver | |
M | matrix | |
vrhs1 | gradient of objective (b) | |
vrhs2 | gradient of barrier |
Definition at line 142 of file dsdpcops.c.
Referenced by DSDPComputeDualStepDirections().
int DSDPComputeLogSDeterminant | ( | DSDP | dsdp, | |
double * | logdet | |||
) |
Compute the logarithmic barrier function for the dual varialbe S.
dsdp | the solver | |
logdet | evaluated barrier function |
Definition at line 495 of file dsdpcops.c.
Referenced by DSDPInitializeVariables(), DSDPResetY0(), DSDPYStepLineSearch(), and DSDPYStepLineSearch2().
int DSDPComputeMaxStepLength | ( | DSDP | dsdp, | |
DSDPVec | DY, | |||
DSDPDualFactorMatrix | flag, | |||
double * | maxsteplength | |||
) |
Compute the maximum step length for the given step direction.
dsdp | the solver | |
DY | step direction | |
flag | primal or dual structure | |
maxsteplength | the minumum of maximums on each cone. |
Definition at line 336 of file dsdpcops.c.
Referenced by DSDPChooseBarrierParameter(), DSDPYStepLineSearch(), and DSDPYStepLineSearch2().
Update the Y variables.
dsdp | the solver | |
beta | step length | |
Y | the new solution |
Definition at line 125 of file dualimpl.c.
Referenced by DSDPYStepLineSearch(), and DSDPYStepLineSearch2().
Compute the objective function (DD).
dsdp | is the solver | |
Y | Current variables | |
ddobj | objective value |
Definition at line 21 of file dualimpl.c.
Referenced by DSDPComputePotential(), DSDPComputePotential2(), DSDPInitializeVariables(), and DSDPSetY().
Compute the step direction.
dsdp | the solver | |
mu | barrier parameter | |
DY | Step direction | |
pnorm | distance to the target |
Definition at line 77 of file dualimpl.c.
Referenced by DSDPChooseBarrierParameter(), and DSDPSolveDynamicRho().
Compute an affine step direction dy1.
dsdp | the solver | |
mur | reciprocal of barrier parameter | |
DY1 | Step direction |
Definition at line 105 of file dualimpl.c.
Referenced by DSDPChooseBarrierParameter().
Compute proximity to a point on the central path.
dsdp | the solver | |
mu | barrier parameter | |
DY | Newton step direction | |
pnorm | the norm |
Definition at line 200 of file dualimpl.c.
Referenced by DSDPComputeDY(), and DSDPComputePDY().
Compute the potential of the given point.
dsdp | the solver | |
y | variables | |
logdet | logarithmic barrier function of the given point | |
potential | return the potential of the given point. |
Definition at line 261 of file dualimpl.c.
Referenced by DSDPInitializeVariables(), DSDPSetY(), and DSDPYStepLineSearch().
Compute the objective function plus the barrier function.
dsdp | the solver | |
y | variables | |
mu | barrier function | |
logdet | logarithmic barrier function of the given point | |
potential | return the potential of the given point.\ |
Definition at line 287 of file dualimpl.c.
Referenced by DSDPYStepLineSearch2().
Compute PY = Y - beta DY for use in computing X.
dsdp | the solver | |
beta | step length | |
PY | the new value |
Definition at line 150 of file dualimpl.c.
Referenced by DSDPChooseBarrierParameter(), and DSDPSolveDynamicRho().
Compute the right-hand side of the linear system that determines the step direction.
dsdp | the solver | |
mu | barrier parameter | |
RHS | right-hand side direction |
This vector is basically
Definition at line 177 of file dualimpl.c.
Referenced by DSDPComputeDY(), DSDPComputePDY(), DSDPComputePNorm(), and DSDPSaveYForX().
int DSDPComputeSS | ( | DSDP | dsdp, | |
DSDPVec | Y, | |||
DSDPDualFactorMatrix | flag, | |||
DSDPTruth * | ispsdefinite | |||
) |
Compute the dual variables S in each cone.
dsdp | the solver | |
Y | variables | |
flag | primal or dual structure | |
ispsdefinite | DSDP_TRUE if a member of the cone, DSDP_FALSE otherwise. |
Definition at line 272 of file dsdpcops.c.
Referenced by DSDPChooseBarrierParameter(), DSDPComputeAndFactorS(), DSDPInitializeVariables(), DSDPResetY0(), DSDPSolveDynamicRho(), DSDPYStepLineSearch(), and DSDPYStepLineSearch2().
int DSDPComputeXVariables | ( | DSDP | dsdp, | |
double | xmakermu, | |||
DSDPVec | xmakery, | |||
DSDPVec | xmakerdy, | |||
DSDPVec | AX, | |||
double * | tracexs | |||
) |
Compute the X variables in each cone.
dsdp | the solver | |
xmakermu | barrier parameter | |
xmakery | input y variables | |
xmakerdy | input step direction | |
AX | output product of X and the data | |
tracexs | ouput inner product of X and S. |
Definition at line 654 of file dsdpcops.c.
Referenced by DSDPComputeX().
int DSDPCreateLUBoundsCone | ( | DSDP | dsdp, | |
LUBounds * | dspcone | |||
) |
Create bounds cone.
dsdp | the solver | |
dspcone | cone of bounds. |
Definition at line 566 of file allbounds.c.
Referenced by DSDPCreate().
int DSDPDestroyCones | ( | DSDP | dsdp | ) |
Each cone shoudl free its data structures.
dsdp | the solver |
Definition at line 107 of file dsdpcops.c.
Referenced by DSDPTakeDown().
int DSDPGetConicDimension | ( | DSDP | dsdp, | |
double * | n | |||
) |
Get the total dimension of the cones.
dsdp | the solver | |
n | dimension |
Definition at line 401 of file dsdpcops.c.
Referenced by DSDPCheckConvergence(), DSDPGetDimension(), DSDPSetup(), and DSDPTakeDown().
int DSDPGetConvergenceMonitor | ( | DSDP | dsdp, | |
ConvergenceMonitor ** | ctx | |||
) |
Get the structure containing convergence parameters.
dsdp | the solver | |
*ctx | will point to the structure. |
Definition at line 268 of file dsdpsetup.c.
Referenced by DSDPGetDualBound(), DSDPGetGapHistory(), DSDPGetGapTolerance(), DSDPGetPNormTolerance(), DSDPGetRHistory(), DSDPGetStepTolerance(), DSDPSetDualBound(), DSDPSetGapTolerance(), DSDPSetPNormTolerance(), and DSDPSetStepTolerance().
int DSDPGetRR | ( | DSDP | dsdp, | |
double * | res | |||
) |
Get variable r.
dsdp | solver | |
*res | set variable r |
Definition at line 361 of file dualimpl.c.
Referenced by DSDPGetR(), DSDPInitializeVariables(), DSDPResetY0(), DSDPSaveYForX(), and DSDPSolveDynamicRho().
Add the product of Schur matrix with v.
dsdp | the solver | |
v | input vector. | |
vv | product gradient of barrier |
Definition at line 188 of file dsdpcops.c.
int DSDPInitializeVariables | ( | DSDP | dsdp | ) |
Initialize variables and factor S.
dsdp | the solver |
Definition at line 475 of file dualalg.c.
Referenced by DSDPSolve().
int DSDPInvertS | ( | DSDP | dsdp | ) |
Invert the S variables in each cone.
dsdp | the solver |
Definition at line 307 of file dsdpcops.c.
Referenced by DSDPComputeDualStepDirections(), and DSDPSolveDynamicRho().
int DSDPMonitorCones | ( | DSDP | dsdp, | |
int | tag | |||
) |
This routine is called once per iteration.
dsdp | the solver | |
tag | allow for multiple monitors |
Definition at line 450 of file dsdpcops.c.
Referenced by DSDPCheckConvergence().
int DSDPObjectiveGH | ( | DSDP | dsdp, | |
DSDPSchurMat | M, | |||
DSDPVec | vrhs1 | |||
) |
Compute gradient of dual objective.
dsdp | solver | |
M | Schur matrix. | |
vrhs1 | gradient vector |
Definition at line 381 of file dualimpl.c.
Referenced by DSDPComputeG(), and DSDPComputeHessian().
Pass the information needed to compute the variables X in each cone but do not compute X.
dsdp | the solver | |
mu | barrier parameter | |
Y | input y variables | |
DY | input step direction |
Definition at line 378 of file dsdpcops.c.
Referenced by DSDPSaveYForX().
int DSDPSaveYForX | ( | DSDP | dsdp, | |
double | mu, | |||
double | pstep | |||
) |
Save the current solution for later computation of X.
dsdp | the solver | |
mu | barrier function | |
pstep | primal step length, hopefully equals 1 |
Definition at line 149 of file dsdpx.c.
Referenced by DSDPChooseBarrierParameter(), DSDPInitializeVariables(), and DSDPSolveDynamicRho().
int DSDPScaleData | ( | DSDP | dsdp | ) |
Scale the matrix C.
dsdp | the solver |
Definition at line 311 of file dsdpsetup.c.
Referenced by DSDPSetup().
int DSDPSchurSparsity | ( | DSDP | dsdp, | |
int | row, | |||
int | rnnz[], | |||
int | m | |||
) |
Each cone should print its state.
dsdp | the solver | |
row | corresponding to the variable y. | |
rnnz | nonzeros indicate a nonzero in the Shur matrix at that column. | |
m | size of Schur matrix and the arrow. |
Definition at line 474 of file dsdpcops.c.
Referenced by DSDPSparsityInSchurMat().
Pass a cone to the DSDP solver.
dsdp | the solver | |
tcone | a cone object. |
Definition at line 522 of file dsdpcops.c.
Referenced by DSDPAddCone().
int DSDPSetDefaultMonitors | ( | DSDP | dsdp | ) |
Set convergence monitor.
dsdp | the solver |
Definition at line 165 of file dsdpsetup.c.
Referenced by DSDPCreate().
int DSDPSetDefaultParameters | ( | DSDP | dsdp | ) |
Set default parameters.
dsdp | the solver |
Definition at line 122 of file dsdpsetup.c.
Referenced by DSDPCreate().
int DSDPSetDefaultStatistics | ( | DSDP | dsdp | ) |
Set default statistics.
dsdp | the solver |
Definition at line 84 of file dsdpsetup.c.
Referenced by DSDPCreate().
int DSDPSetRR | ( | DSDP | dsdp, | |
double | res | |||
) |
Set variable r.
dsdp | solver | |
res | variable r |
Definition at line 345 of file dualimpl.c.
Referenced by DSDPInitializeVariables(), DSDPResetY0(), and DSDPSetR0().
int DSDPSetUpCones | ( | DSDP | dsdp | ) |
Each cone should factor data or allocate internal data structures.
dsdp | the solver |
Definition at line 58 of file dsdpcops.c.
Referenced by DSDPSetup().
int DSDPSetUpCones2 | ( | DSDP | dsdp, | |
DSDPVec | yy0, | |||
DSDPSchurMat | M | |||
) |
Each cone should allocate its data structures .
dsdp | the solver | |
yy0 | variable vector | |
M | Shur Matrix |
Definition at line 84 of file dsdpcops.c.
Referenced by DSDPSetup().
Update the solver with these y variables.
dsdp | the solver | |
beta | most recent step length | |
logdet | logarithmic barrier function of the given point | |
ynew | current solution. |
Definition at line 309 of file dualimpl.c.
Referenced by DSDPInitializeVariables(), DSDPResetY0(), DSDPYStepLineSearch(), and DSDPYStepLineSearch2().
int DSDPSolveDynamicRho | ( | DSDP | dsdp | ) |
Apply dual-scaling algorithm.
dsdp | the solver |
Definition at line 121 of file dualalg.c.
Referenced by DSDPSolve().
int DSDPTakeDown | ( | DSDP | dsdp | ) |
Destroy internal data structures.
dsdp | solver |
Definition at line 428 of file dsdpsetup.c.
Referenced by DSDPDestroy().
int DSDPViewCones | ( | DSDP | dsdp | ) |
Each cone should print its state.
dsdp | the solver |
Definition at line 424 of file dsdpcops.c.