dualimpl.c File Reference


Detailed Description

Dual-scaling operations needed in the solver.

Definition in file dualimpl.c.

Go to the source code of this file.

Functions

int DSDPComputeDualityGap (DSDP dsdp, double mu, double *gap)
 Compute the current duality gap.
int DSDPComputeDY (DSDP dsdp, double mu, DSDPVec DY, double *pnorm)
 Compute the step direction.
int DSDPComputeNewY (DSDP dsdp, double beta, DSDPVec Y)
 Update the Y variables.
int DSDPComputeObjective (DSDP dsdp, DSDPVec Y, double *ddobj)
 Compute the objective function (DD).
int DSDPComputePDY (DSDP dsdp, double mu, DSDPVec DY, double *pnorm)
 Compute the step direction.
int DSDPComputePDY1 (DSDP dsdp, double mur, DSDPVec DY1)
 Compute an affine step direction dy1.
int DSDPComputePNorm (DSDP dsdp, double mu, DSDPVec DY, double *pnorm)
 Compute proximity to a point on the central path.
int DSDPComputePotential (DSDP dsdp, DSDPVec y, double logdet, double *potential)
 Compute the potential of the given point.
int DSDPComputePotential2 (DSDP dsdp, DSDPVec y, double mu, double logdet, double *potential)
 Compute the objective function plus the barrier function.
int DSDPComputePY (DSDP dsdp, double beta, DSDPVec PY)
 Compute PY = Y - beta DY for use in computing X.
int DSDPComputeRHS (DSDP dsdp, double mu, DSDPVec RHS)
 Compute the right-hand side of the linear system that determines the step direction.
int DSDPGetRR (DSDP dsdp, double *res)
 Get variable r.
int DSDPObjectiveGH (DSDP dsdp, DSDPSchurMat M, DSDPVec vrhs1)
 Compute gradient of dual objective.
int DSDPSetRR (DSDP dsdp, double res)
 Set variable r.
int DSDPSetY (DSDP dsdp, double beta, double logdet, DSDPVec ynew)
 Update the solver with these y variables.


Function Documentation

int DSDPComputeDualityGap ( DSDP  dsdp,
double  mu,
double *  gap 
)

Compute the current duality gap.

Parameters:
dsdp the solver
mu barrier parameter
gap the duality gap
See also:
DSDPGetDualityGap()

DSDPGetPPObjective()

Definition at line 230 of file dualimpl.c.

Referenced by DSDPSaveYForX().

int DSDPComputeDY ( DSDP  dsdp,
double  mu,
DSDPVec  DY,
double *  pnorm 
)

Compute the step direction.

Parameters:
dsdp the solver
mu barrier parameter
DY Step direction
pnorm distance to the target
Assuming the affine direction and centering direction have alread been computed, combine them with the appropriate barrier parameter.

See also:
DSDPComputeRHS()

Definition at line 45 of file dualimpl.c.

Referenced by DSDPComputeDualityGap(), DSDPResetY0(), DSDPSaveYForX(), and DSDPSolveDynamicRho().

int DSDPComputeNewY ( DSDP  dsdp,
double  beta,
DSDPVec  Y 
)

Update the Y variables.

Parameters:
dsdp the solver
beta step length
Y the new solution
Add a multiple of the step direction to the current solution.

Definition at line 125 of file dualimpl.c.

Referenced by DSDPYStepLineSearch(), and DSDPYStepLineSearch2().

int DSDPComputeObjective ( DSDP  dsdp,
DSDPVec  Y,
double *  ddobj 
)

Compute the objective function (DD).

Parameters:
dsdp is the solver
Y Current variables
ddobj objective value
See also:
DSDPComputeNewY()

DSDPGetDDObjective()

Definition at line 21 of file dualimpl.c.

Referenced by DSDPComputePotential(), DSDPComputePotential2(), DSDPInitializeVariables(), and DSDPSetY().

int DSDPComputePDY ( DSDP  dsdp,
double  mu,
DSDPVec  DY,
double *  pnorm 
)

Compute the step direction.

Parameters:
dsdp the solver
mu barrier parameter
DY Step direction
pnorm distance to the target
Assuming the affine direction and centering direction have alread been computed, combine them with the appropriate barrier parameter.

See also:
DSDPComputeRHS()

DSDPComputeDY()

Definition at line 77 of file dualimpl.c.

Referenced by DSDPChooseBarrierParameter(), and DSDPSolveDynamicRho().

int DSDPComputePDY1 ( DSDP  dsdp,
double  mur,
DSDPVec  DY1 
)

Compute an affine step direction dy1.

Parameters:
dsdp the solver
mur reciprocal of barrier parameter
DY1 Step direction
Assuming the affine direction has alread been computed, scale it.
See also:
DSDPComputeDY()

Definition at line 105 of file dualimpl.c.

Referenced by DSDPChooseBarrierParameter().

int DSDPComputePNorm ( DSDP  dsdp,
double  mu,
DSDPVec  DY,
double *  pnorm 
)

Compute proximity to a point on the central path.

Parameters:
dsdp the solver
mu barrier parameter
DY Newton step direction
pnorm the norm
See also:
DSDPComputeDY()

Definition at line 200 of file dualimpl.c.

Referenced by DSDPComputeDY(), and DSDPComputePDY().

int DSDPComputePotential ( DSDP  dsdp,
DSDPVec  y,
double  logdet,
double *  potential 
)

Compute the potential of the given point.

Parameters:
dsdp the solver
y variables
logdet logarithmic barrier function of the given point
potential return the potential of the given point.
See also:
DSDPSetPotentialParameter()

Definition at line 261 of file dualimpl.c.

Referenced by DSDPInitializeVariables(), DSDPSetY(), and DSDPYStepLineSearch().

int DSDPComputePotential2 ( DSDP  dsdp,
DSDPVec  y,
double  mu,
double  logdet,
double *  potential 
)

Compute the objective function plus the barrier function.

Parameters:
dsdp the solver
y variables
mu barrier function
logdet logarithmic barrier function of the given point
potential return the potential of the given point.\
See also:
DSDPGetBarrierParameter()

Definition at line 287 of file dualimpl.c.

Referenced by DSDPYStepLineSearch2().

int DSDPComputePY ( DSDP  dsdp,
double  beta,
DSDPVec  PY 
)

Compute PY = Y - beta DY for use in computing X.

Parameters:
dsdp the solver
beta step length
PY the new value
See also:
DSDPComputeNewY()

Definition at line 150 of file dualimpl.c.

Referenced by DSDPChooseBarrierParameter(), and DSDPSolveDynamicRho().

int DSDPComputeRHS ( DSDP  dsdp,
double  mu,
DSDPVec  RHS 
)

Compute the right-hand side of the linear system that determines the step direction.

Parameters:
dsdp the solver
mu barrier parameter
RHS right-hand side direction
Assuming that the gradient of the objective and the gradient of the barrier have already been computed, combine them with the appropriate barrier parameter.

This vector is basically $ b - mu * A(S^{-1}) $

See also:
DSDPComputeDY()

Definition at line 177 of file dualimpl.c.

Referenced by DSDPComputeDY(), DSDPComputePDY(), DSDPComputePNorm(), and DSDPSaveYForX().

int DSDPGetRR ( DSDP  dsdp,
double *  res 
)

Get variable r.

Parameters:
dsdp solver
*res set variable r

Definition at line 361 of file dualimpl.c.

Referenced by DSDPGetR(), DSDPInitializeVariables(), DSDPResetY0(), DSDPSaveYForX(), and DSDPSolveDynamicRho().

int DSDPObjectiveGH ( DSDP  dsdp,
DSDPSchurMat  M,
DSDPVec  vrhs1 
)

Compute gradient of dual objective.

Parameters:
dsdp solver
M Schur matrix.
vrhs1 gradient vector

Definition at line 381 of file dualimpl.c.

Referenced by DSDPComputeG(), and DSDPComputeHessian().

int DSDPSetRR ( DSDP  dsdp,
double  res 
)

Set variable r.

Parameters:
dsdp solver
res variable r

Definition at line 345 of file dualimpl.c.

Referenced by DSDPInitializeVariables(), DSDPResetY0(), and DSDPSetR0().

int DSDPSetY ( DSDP  dsdp,
double  beta,
double  logdet,
DSDPVec  ynew 
)

Update the solver with these y variables.

Parameters:
dsdp the solver
beta most recent step length
logdet logarithmic barrier function of the given point
ynew current solution.

Definition at line 309 of file dualimpl.c.

Referenced by DSDPInitializeVariables(), DSDPResetY0(), DSDPYStepLineSearch(), and DSDPYStepLineSearch2().


Generated on Sun Mar 23 07:30:50 2008 for DSDP by  doxygen 1.5.5