DSDP
Functions
dualalg.c File Reference

Implements the dual-scaling algorithm. More...

Go to the source code of this file.

Functions

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

Detailed Description

Implements the dual-scaling algorithm.

Definition in file dualalg.c.

Function Documentation

int DSDPChooseBarrierParameter ( DSDP  dsdp,
double  mutarget,
double *  ppstep,
double *  nextmutarget 
)

DSDP barrier heuristic choses the smalles value of mu such that X>0.

Parameters
dsdpsolver
mutargetcurrent barrier parameter
ppstepset to primal step length
nextmutargetset 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.

Referenced by DSDPSolveDynamicRho().

int DSDPComputeDualStepDirections ( DSDP  dsdp)

Compute the step direction by computing a linear system and solving it.

Parameters
dsdpthe solver

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.

Referenced by DSDPSolveDynamicRho().

int DSDPInitializeVariables ( DSDP  dsdp)

Initialize variables and factor S.

Parameters
dsdpthe solver

Definition at line 475 of file dualalg.c.

Referenced by DSDPSolve().

int DSDPResetY0 ( DSDP  dsdp)

After 1 iteration, consider increasing the variable r.

Parameters
dsdpsolver

Definition at line 328 of file dualalg.c.

Referenced by DSDPSolveDynamicRho().

int DSDPSolveDynamicRho ( DSDP  dsdp)

Apply dual-scaling algorithm.

Parameters
dsdpthe solver

Definition at line 121 of file dualalg.c.

Referenced by DSDPSolve().

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
dsdpthe solver
mutargetbarrier parameter
dstep0initial step length
dystep direction

Definition at line 24 of file dualalg.c.

Referenced by DSDPSolveDynamicRho().

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
dsdpthe solver
mutargetbarrier parameter
dstep0initial step length
dystep direction

Definition at line 73 of file dualalg.c.

Referenced by DSDPSolveDynamicRho().