diff options
| -rw-r--r-- | rbmp.cpp | 26 | 
1 files changed, 12 insertions, 14 deletions
| @@ -10,6 +10,7 @@  using Rng = randutils::random_generator<pcg32>; +class Edge;  class HalfEdge;  class Vertex { @@ -23,8 +24,6 @@ public:    }  }; -class Edge; -  class HalfEdge {  private:    Vertex* tail; @@ -35,10 +34,7 @@ public:    double oldX;    double X; -  HalfEdge(const Edge& e) : edge(e) { -    X = 0; -    oldX = X; -  } +  HalfEdge(const Edge& e) : edge(e) {}    void setVertices(Vertex& vt, Vertex& vh) {      tail = &vt;      head = &vh; @@ -89,6 +85,8 @@ public:        Vertex& blueVertex = vertices[M + (i % (2 * n)) / 2 + n * (((i + 2 * n) / 4) / n)];        edges[i].setVertices(redVertex, blueVertex);        edges[i].weight = r.variate<double, std::exponential_distribution>(1); +      edges[i].halfedges[0].oldX = r.variate<double, std::normal_distribution>(0, 1); +      edges[i].halfedges[1].oldX = r.variate<double, std::normal_distribution>(0, 1);      }    } @@ -118,8 +116,8 @@ public:  int main() {    unsigned n = 100; -  unsigned maxSteps = 1e7; -  double beliefThreshold = 0.1; +  unsigned maxSteps = 1e8; +  double beliefThreshold = 1;    Rng r;    Graph G(n, r); @@ -132,13 +130,13 @@ int main() {      steps++;    } -  for (unsigned i = 0; i < G.edges.size(); i++) { -    if (G.edges[i].active()) { +  for (const Edge& e : G.edges) { +    if (e.active()) {        std::cout -        << G.edges[i].halfedges[0].getTail().coordinate[0] << " " -        << G.edges[i].halfedges[0].getTail().coordinate[1] << " " -        << G.edges[i].halfedges[0].getHead().coordinate[0] << " " -        << G.edges[i].halfedges[0].getHead().coordinate[1] << std::endl; +        << e.halfedges[0].getTail().coordinate[0] << " " +        << e.halfedges[0].getTail().coordinate[1] << " " +        << e.halfedges[0].getHead().coordinate[0] << " " +        << e.halfedges[0].getHead().coordinate[1] << std::endl;      }    } | 
