[sdpb] 79/233: Some cleanup
Tobias Hansen
thansen at moszumanska.debian.org
Thu Mar 9 04:06:21 UTC 2017
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch master
in repository sdpb.
commit bf8a7185ac76c8d3b058bdb017b6a8c8220835c9
Author: David Simmons-Duffin <dsd at athena.sns.ias.edu>
Date: Tue Aug 19 17:58:06 2014 -0400
Some cleanup
---
src/SDPSolver.cpp | 41 ++---------------------------------------
1 file changed, 2 insertions(+), 39 deletions(-)
diff --git a/src/SDPSolver.cpp b/src/SDPSolver.cpp
index 26ad7fe..2c33b01 100644
--- a/src/SDPSolver.cpp
+++ b/src/SDPSolver.cpp
@@ -35,7 +35,6 @@ SDPSolver::SDPSolver(const SDP &sdp):
Q(sdp.FreeVarMatrix.cols, sdp.FreeVarMatrix.cols),
Qpivots(sdp.FreeVarMatrix.cols),
basicKernelCoords(Q.rows),
- BasicKernelSpan(sdp.FreeVarMatrix),
schurStabilizeIndices(SchurBlocks.blocks.size()),
schurStabilizeLambdas(SchurBlocks.blocks.size()),
schurStabilizeVectors(SchurBlocks.blocks.size()),
@@ -85,14 +84,6 @@ SDPSolver::SDPSolver(const SDP &sdp):
&dualObjectiveReduced[0], 1,
dualObjectiveReduced.size());
- // BasicKernelSpan = ( -1 \\ E)
- BasicKernelSpan.setZero();
- for (int c = 0; c < FreeVarMatrixReduced.cols; c++)
- for (int r = 0; r < FreeVarMatrixReduced.rows; r++)
- BasicKernelSpan.elt(nonBasicIndices[r], c) = FreeVarMatrixReduced.elt(r, c);
- for (int c = 0; c < FreeVarMatrixReduced.cols; c++)
- BasicKernelSpan.elt(basicIndices[c], c) = -1;
-
for (unsigned int b = 0; b < SchurBlocks.blocks.size(); b++)
schurStabilizeVectors[b].resize(SchurBlocks.blocks[b].rows);
}
@@ -448,19 +439,11 @@ Real dualObjectiveValue(const SDP &sdp, const Vector &dualObjectiveReduced,
return tmp;
}
-// Implements SDPA's DirectionParameter::MehrotraPredictor
Real predictorCenteringParameter(const SDPSolverParameters ¶meters,
- const bool reductionSwitch,
const bool isPrimalDualFeasible) {
- if (isPrimalDualFeasible)
- return 0;
- else if (reductionSwitch)
- return parameters.infeasibleCenteringParameter;
- else
- return 2;
+ return isPrimalDualFeasible ? 0 : parameters.infeasibleCenteringParameter;
}
-// Implements SDPA's DirectionParameter::MehrotraCorrector
Real correctorCenteringParameter(const SDPSolverParameters ¶meters,
const BlockDiagonalMatrix &X,
const BlockDiagonalMatrix &dX,
@@ -497,24 +480,6 @@ Real stepLength(BlockDiagonalMatrix &XCholesky,
return -gamma/lambda;
}
-void addKernelColumn(const Matrix &FreeVarMatrixReduced,
- const vector<int> &basicIndices,
- const vector<int> &nonBasicIndices,
- const int i,
- const Real &lambda,
- Matrix &K) {
- K.addColumn();
- int c = K.cols - 1;
-
- int j = binaryFind(basicIndices.begin(), basicIndices.end(), i) - basicIndices.begin();
- if (j < FreeVarMatrixReduced.cols) {
- for (unsigned int r = 0; r < nonBasicIndices.size(); r++)
- K.elt(nonBasicIndices[r], c) = lambda * FreeVarMatrixReduced.elt(r, j);
- } else {
- K.elt(i, c) = lambda;
- }
-}
-
void SDPSolver::initializeSchurComplementSolver(const BlockDiagonalMatrix &BilinearPairingsXInv,
const BlockDiagonalMatrix &BilinearPairingsY) {
@@ -653,7 +618,6 @@ SDPSolverTerminateReason SDPSolver::run(const SDPSolverParameters ¶meters,
const bool isPrimalFeasible = status.primalError < parameters.primalErrorThreshold;
const bool isDualFeasible = status.dualError < parameters.dualErrorThreshold;
const bool isOptimal = status.dualityGap() < parameters.dualityGapThreshold;
- const bool reductionSwitch = true;
if (isPrimalFeasible && isDualFeasible && isOptimal) {
finished = PrimalDualOptimal;
@@ -668,8 +632,7 @@ SDPSolverTerminateReason SDPSolver::run(const SDPSolverParameters ¶meters,
Real mu = frobeniusProductSymmetric(X, Y)/X.dim;
// Mehrotra predictor solution for (dx, dX, dY)
- Real betaPredictor = predictorCenteringParameter(parameters, reductionSwitch,
- isPrimalFeasible && isDualFeasible);
+ Real betaPredictor = predictorCenteringParameter(parameters, isPrimalFeasible && isDualFeasible);
computeSearchDirection(betaPredictor, mu, false);
// Mehrotra corrector solution for (dx, dX, dY)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/sdpb.git
More information about the debian-science-commits
mailing list