|
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.
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.
| 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.
1.8.13