[sdpb] 52/233: More old code elimination; next: read affineConstants from file
Tobias Hansen
thansen at moszumanska.debian.org
Thu Mar 9 04:06:17 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 32584afadd109924f363cc2b3f8a6670193fcf2e
Author: David Simmons-Duffin <dsd at minerva.sns.ias.edu>
Date: Sun Aug 3 23:32:03 2014 -0400
More old code elimination; next: read affineConstants from file
---
main.cpp | 192 ---------------------------------------------------------------
1 file changed, 192 deletions(-)
diff --git a/main.cpp b/main.cpp
index 8022d79..e53734c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -951,162 +951,6 @@ ostream& operator<<(ostream& os, const SDP& sdp) {
return os;
}
-class Polynomial {
-public:
- Vector coeffs;
-
- Polynomial(): coeffs(1, 0) {}
-
- int degree() const {
- return coeffs.size() - 1;
- };
-
- Real operator()(const Real &x) const {
- int deg = degree();
- Real y = coeffs[deg];
- for (int i = deg - 1; i >= 0; i--) {
- y *= x;
- y += coeffs[i];
- }
- return y;
- }
-
- friend ostream& operator<<(ostream& os, const Polynomial& p);
-
-};
-
-ostream& operator<<(ostream& os, const Polynomial& p) {
- for (int i = p.degree(); i >= 0; i--) {
- os << p.coeffs[i];
- if (i > 1)
- os << "x^" << i << " + ";
- else if (i == 1)
- os << "x + ";
- }
- return os;
-}
-
-class PolynomialVectorMatrix {
-public:
- int rows;
- int cols;
- vector<vector<Polynomial> > elements;
-
- const vector<Polynomial>& elt(const int r, const int c) const {
- return elements[r+c*rows];
- }
-
- int degree() const {
- int d = 0;
- for (vector<vector<Polynomial> >::const_iterator e = elements.begin(); e != elements.end(); e++)
- for (vector<Polynomial>::const_iterator p = e->begin(); p != e->end(); p++)
- d = max(p->degree(), d);
- return d;
- }
-
-};
-
-Matrix basisAtSamplePoints(int basisSize, int numPoints, bool withSqrt,
- const vector<Polynomial> &basisPols,
- const Vector &samplePoints) {
- Matrix m(basisSize, numPoints);
- for (int k = 0; k < numPoints; k++) {
- Real x = samplePoints[k];
- Real sqrtX = sqrt(x);
-
- for (int n = 0; n < basisSize; n++) {
- if (withSqrt)
- m.elt(n, k) = basisPols[n](x)*sqrtX;
- else
- m.elt(n, k) = basisPols[n](x);
- }
- }
-
- return m;
-}
-
-// SDP bootstrapSDP(const Vector &objective,
-// const Vector &normalization,
-// const vector<PolynomialVectorMatrix> &positiveMatrixPols,
-// const vector<Polynomial> &bilinearBasisPols,
-// const Vector &polynomialSamplePoints) {
-// SDP sdp;
-// sdp.objective = objective;
-
-// int numConstraints = 0;
-// for (vector<PolynomialVectorMatrix>::const_iterator m = positiveMatrixPols.begin();
-// m != positiveMatrixPols.end();
-// m++) {
-// int dimension = m->cols;
-// int degree = m->degree();
-
-// sdp.dimensions.push_back(dimension);
-// sdp.degrees.push_back(degree);
-// numConstraints += (degree+1)*dimension*(dimension+1)/2;
-// }
-
-// // For the normalization constraint
-// // sdp.dimensions.push_back(1);
-// // sdp.degrees.push_back(0);
-// // numConstraints += 1;
-
-// sdp.polMatrixValues = Matrix(numConstraints, sdp.objective.size());
-// // THIS IS A HACK! REMOVE IT!!!
-// sdp.affineConstants = Vector(numConstraints, 1);
-// // sdp.affineConstants = Vector(numConstraints, 0);
-
-// // normalization constraint
-// // sdp.affineConstants[numConstraints-1] = 1;
-
-// int p = 0;
-// for (vector<PolynomialVectorMatrix>::const_iterator m = positiveMatrixPols.begin();
-// m != positiveMatrixPols.end();
-// m++) {
-
-// int degree = m->degree();
-// int delta1 = degree/2;
-// int delta2 = (degree-1)/2;
-
-// vector<int> blocks;
-
-// blocks.push_back(sdp.bilinearBases.size());
-// sdp.bilinearBases.push_back(basisAtSamplePoints(delta1+1, degree+1, false,
-// bilinearBasisPols,
-// polynomialSamplePoints));
-
-// if (delta2 >= 0) {
-// blocks.push_back(sdp.bilinearBases.size());
-// sdp.bilinearBases.push_back(basisAtSamplePoints(delta2+1, degree+1, true,
-// bilinearBasisPols,
-// polynomialSamplePoints));
-// }
-
-// sdp.blocks.push_back(blocks);
-
-// for (int s = 0; s < m->cols; s++) {
-// for (int r = 0; r <= s; r++) {
-// for (int k = 0; k <= degree; k++, p++) {
-// const Real xk = polynomialSamplePoints[k];
-// for (unsigned int n = 0; n < sdp.objective.size(); n++)
-// sdp.polMatrixValues.elt(p, n) = -m->elt(r,s)[n](xk);
-// }
-// }
-// }
-// }
-// // assert(p == numConstraints-1);
-// assert(p == numConstraints);
-
-// // normalization constraint
-// // for (unsigned int n = 0; n < sdp.objective.size(); n++)
-// // sdp.polMatrixValues.elt(p, n) = normalization[n];
-// // sdp.blocks.push_back(vector<int>());
-
-// //sdp.rescale();
-// // sdp.addSlack();
-// sdp.initializeConstraintIndices();
-// return sdp;
-// }
-
template <class T>
vector<T> parseMany(const char *name, T(*parse)(XMLElement *), XMLElement *elt) {
XMLElement *e;
@@ -1229,35 +1073,6 @@ SDP parseBootstrapSDP2(XMLElement *sdpXml) {
sdpXml->FirstChildElement("sampledPositiveMatrices")));
}
-Polynomial parsePolynomial(XMLElement *polXml) {
- Polynomial p;
- p.coeffs = parseMany("coeff", parseReal, polXml);
- return p;
-}
-
-vector<Polynomial> parsePolynomialVector(XMLElement *polVecXml) {
- return parseMany("polynomial", parsePolynomial, polVecXml);
-}
-
-PolynomialVectorMatrix parsePolynomialVectorMatrix(XMLElement *polVecMatrixXml) {
- PolynomialVectorMatrix m;
- m.rows = parseInt(polVecMatrixXml->FirstChildElement("rows"));
- m.cols = parseInt(polVecMatrixXml->FirstChildElement("cols"));
- m.elements = parseMany("polynomialVector", parsePolynomialVector,
- polVecMatrixXml->FirstChildElement("elements"));
- return m;
-}
-
-// SDP parseBootstrapSDP(XMLElement *sdpXml) {
-// return bootstrapSDP(parseVector(sdpXml->FirstChildElement("objective")->FirstChildElement("vector")),
-// parseVector(sdpXml->FirstChildElement("normalization")->FirstChildElement("vector")),
-// parseMany("polynomialVectorMatrix",
-// parsePolynomialVectorMatrix,
-// sdpXml->FirstChildElement("positiveMatrixPols")),
-// parsePolynomialVector(sdpXml->FirstChildElement("bilinearBasisPols")->FirstChildElement("polynomialVector")),
-// parseVector(sdpXml->FirstChildElement("polynomialSamplePoints")->FirstChildElement("vector")));
-// }
-
SDP readBootstrapSDP(const path sdpFile) {
XMLDocument doc;
doc.LoadFile(sdpFile.c_str());
@@ -1494,13 +1309,6 @@ void computeBilinearPairings(const BlockDiagonalMatrix &A,
tensorMatrixCongruenceTranspose(A.blocks[b], bilinearBases[b], workspace[b], result.blocks[b]);
}
-// result[i] = u[i] * v[i]
-//
-void componentProduct(const Vector &u, const Vector &v, Vector &result) {
- for (unsigned int i = 0; i < u.size(); i++)
- result[i] = u[i] * v[i];
-}
-
// result = V D V^T, where D=diag(d) is a diagonal matrix
// Inputs:
// - d : pointer to beginning of a length-V.cols vector
--
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