Implements the dual-scaling algorithm.
More...
Go to the source code of this file.
|
int | DSDPChooseBarrierParameter (DSDP, double, double *, double *) |
| DSDP barrier heuristic choses the smalles value of mu such that X>0. More...
|
|
int | DSDPComputeAndFactorS (DSDP dsdp, DSDPTruth *psdefinite) |
| Compute and factor the dual matrix variables. More...
|
|
int | DSDPComputeDualStepDirections (DSDP dsdp) |
| Compute the step direction by computing a linear system and solving it. More...
|
|
int | DSDPInitializeVariables (DSDP dsdp) |
| Initialize variables and factor S. More...
|
|
int | DSDPResetY0 (DSDP) |
| After 1 iteration, consider increasing the variable r. More...
|
|
int | DSDPSolveDynamicRho (DSDP dsdp) |
| Apply dual-scaling algorithm. More...
|
|
int | DSDPYStepLineSearch (DSDP, double, double, DSDPVec) |
| Used for Newton step, the merit function of this line search is the dual potential function. More...
|
|
int | DSDPYStepLineSearch2 (DSDP, double, double, DSDPVec) |
| Used for centering steps, the merit function of this line search is the objective function plus the barrier term. More...
|
|
Implements the dual-scaling algorithm.
Definition in file dualalg.c.
◆ DSDPChooseBarrierParameter()
int DSDPChooseBarrierParameter |
( |
DSDP |
dsdp, |
|
|
double |
mutarget, |
|
|
double * |
ppstep, |
|
|
double * |
nextmutarget |
|
) |
| |
DSDP barrier heuristic choses the smalles value of mu such that X>0.
- Parameters
-
dsdp | solver |
mutarget | current barrier parameter |
ppstep | set to primal step length |
nextmutarget | set to new target barrier parameter This routine implements a dynamic strategy for reducing the barrier parameter. Basically, it looks for the smallest barrier parameter for which the primal matrix X is psd. Lower and upper bounds to this parameter also apply. |
Definition at line 240 of file dualalg.c.
◆ DSDPComputeDualStepDirections()
int DSDPComputeDualStepDirections |
( |
DSDP |
dsdp | ) |
|
Compute the step direction by computing a linear system and solving it.
- Parameters
-
DSDP first attempts unpreconditioned CG to the matrix. Once the number of iterations becomes too large, it swithes a CG preconditioned by the Cholesky factorization. Usually only one iteration of the preconditioned CG is necessary, but solutions with large norms and very precise solutions may require additional iterations.
Definition at line 370 of file dualalg.c.
◆ DSDPInitializeVariables()
int DSDPInitializeVariables |
( |
DSDP |
dsdp | ) |
|
Initialize variables and factor S.
- Parameters
-
Definition at line 475 of file dualalg.c.
◆ DSDPResetY0()
int DSDPResetY0 |
( |
DSDP |
dsdp | ) |
|
After 1 iteration, consider increasing the variable r.
- Parameters
-
Definition at line 328 of file dualalg.c.
◆ DSDPSolveDynamicRho()
int DSDPSolveDynamicRho |
( |
DSDP |
dsdp | ) |
|
Apply dual-scaling algorithm.
- Parameters
-
Definition at line 121 of file dualalg.c.
◆ DSDPYStepLineSearch()
int DSDPYStepLineSearch |
( |
DSDP |
dsdp, |
|
|
double |
mutarget, |
|
|
double |
dstep0, |
|
|
DSDPVec |
dy |
|
) |
| |
Used for Newton step, the merit function of this line search is the dual potential function.
- Parameters
-
dsdp | the solver |
mutarget | barrier parameter |
dstep0 | initial step length |
dy | step direction |
Definition at line 24 of file dualalg.c.
◆ DSDPYStepLineSearch2()
int DSDPYStepLineSearch2 |
( |
DSDP |
dsdp, |
|
|
double |
mutarget, |
|
|
double |
dstep0, |
|
|
DSDPVec |
dy |
|
) |
| |
Used for centering steps, the merit function of this line search is the objective function plus the barrier term.
- Parameters
-
dsdp | the solver |
mutarget | barrier parameter |
dstep0 | initial step length |
dy | step direction |
Definition at line 73 of file dualalg.c.