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.
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().
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 DSDPYStepLineSearch().
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(), and DSDPYStepLineSearch().
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.
int DSDPDestroyCones | ( | DSDP | dsdp | ) |
Each cone shoudl free its data structures.
dsdp | the solver |
Definition at line 107 of file dsdpcops.c.
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(), and DSDPGetDimension().
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().
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.
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.
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.
Pass a cone to the DSDP solver.
dsdp | the solver |
tcone | a cone object. |
Definition at line 522 of file dsdpcops.c.
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.
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.
int DSDPViewCones | ( | DSDP | dsdp | ) |
Each cone should print its state.
dsdp | the solver |
Definition at line 424 of file dsdpcops.c.