DSDP
|
Applies conic operations to each cone in the solver. More...
Go to the source code of this file.
Functions | |
int | DSDPAddCone (DSDP dsdp, struct DSDPCone_Ops *dsdpops, void *dsdpcone) |
Apply DSDP to a conic structure. More... | |
int | DSDPAddSchurRow (DSDP, int, DSDPVec) |
Add a row to the Schur matrix. More... | |
int | DSDPComputeANorm2 (DSDP dsdp, DSDPVec Anorm2) |
Compute norm of A and C. More... | |
int | DSDPComputeG (DSDP dsdp, DSDPVec vt, DSDPVec vrhs1, DSDPVec vrhs2) |
Compute the gradient of the barrier for each cone. More... | |
int | DSDPComputeHessian (DSDP dsdp, DSDPSchurMat M, DSDPVec vrhs1, DSDPVec vrhs2) |
Compute the Schur complement, or Gram, matrix for each cone. More... | |
int | DSDPComputeLogSDeterminant (DSDP dsdp, double *logdet) |
Compute the logarithmic barrier function for the dual varialbe S. More... | |
int | DSDPComputeMaxStepLength (DSDP dsdp, DSDPVec DY, DSDPDualFactorMatrix flag, double *maxsteplength) |
Compute the maximum step length for the given step direction. More... | |
int | DSDPComputeSS (DSDP dsdp, DSDPVec Y, DSDPDualFactorMatrix flag, DSDPTruth *ispsdefinite) |
Compute the dual variables S in each cone. More... | |
int | DSDPComputeXVariables (DSDP dsdp, double xmakermu, DSDPVec xmakery, DSDPVec xmakerdy, DSDPVec AX, double *tracexs) |
Compute the X variables in each cone. More... | |
int | DSDPDestroyCones (DSDP dsdp) |
Each cone shoudl free its data structures. More... | |
int | DSDPGetConicDimension (DSDP dsdp, double *n) |
Get the total dimension of the cones. More... | |
int | DSDPHessianMultiplyAdd (DSDP dsdp, DSDPVec v, DSDPVec vv) |
Add the product of Schur matrix with v. More... | |
int | DSDPInvertS (DSDP dsdp) |
Invert the S variables in each cone. More... | |
int | DSDPMonitorCones (DSDP dsdp, int tag) |
This routine is called once per iteration. More... | |
int | DSDPPassXVectors (DSDP dsdp, double mu, DSDPVec Y, DSDPVec DY) |
Pass the information needed to compute the variables X in each cone but do not compute X. More... | |
int | DSDPSchurSparsity (DSDP dsdp, int row, int rnnz[], int m) |
Each cone should print its state. More... | |
int | DSDPSetCone (DSDP dsdp, DSDPCone tcone) |
Pass a cone to the DSDP solver. More... | |
int | DSDPSetSchurMatOps (DSDP, struct DSDPSchurMat_Ops *, void *) |
Set the Schur complement matrix. More... | |
int | DSDPSetUpCones (DSDP dsdp) |
Each cone should factor data or allocate internal data structures. More... | |
int | DSDPSetUpCones2 (DSDP dsdp, DSDPVec yy0, DSDPSchurMat M) |
Each cone should allocate its data structures . More... | |
int | DSDPViewCones (DSDP dsdp) |
Each cone should print its state. More... | |
Applies conic operations to each cone in the solver.
Definition in file dsdpcops.c.
int DSDPAddCone | ( | DSDP | dsdp, |
struct DSDPCone_Ops * | dsdpops, | ||
void * | dsdpcone | ||
) |
Apply DSDP to a conic structure.
dsdp | the solver |
dsdpops | address of a structure with function pointers |
dsdpcone | address of a cone structure DSDP operates on cones such as the semidefinite cone and nonnegative orthant. Given variables y from the solver, each cone implements operations such as computing S, maximum step length, computing the Newton matrix, and computing the Hessian. Each operation is well defined by the dual-scaling algorithm. A cone that implements these operations can be added to the DSDP solver. |
Definition at line 569 of file dsdpcops.c.
Referenced by DSDPAddLUBounds(), DSDPAddRCone(), DSDPAddSDP(), DSDPCreateBCone(), and DSDPCreateLPCone().
Add a row to the Schur matrix.
dsdp | the solver |
row | corresponding to which variable y. |
R | the elements of the row. |
This routine is called by the conic routines that compute the Hessian matrix.
Definition at line 622 of file dsdpcops.c.
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().
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().
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(), DSDPObjectiveGH(), 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 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().
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 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 |
The cone can print statistics, visualize data, terminate solver, or whatever it wants.
Definition at line 450 of file dsdpcops.c.
Referenced by DSDPCheckConvergence().
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 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 DSDPSetSchurMatOps | ( | DSDP | dsdp, |
struct DSDPSchurMat_Ops * | sops, | ||
void * | mdata | ||
) |
Set the Schur complement matrix.
dsdp | the solver |
sops | address of a structure with function pointers |
mdata | address of a matrix object The step direction in DSDP is the solution to a set of linear equations. The cones used by DSDP compute the elements of the matrix and the right-hand side vectors. Any matrix that implements the Schur complement matrix interface can be used by DSDP. In addition to factoring a matrix and solving it, this interface also provides matrix assembly routines for the cones. |
Definition at line 602 of file dsdpcops.c.
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().
int DSDPViewCones | ( | DSDP | dsdp | ) |
Each cone should print its state.
dsdp | the solver |
Definition at line 424 of file dsdpcops.c.