RecBipartLB: Reduce exposure and fix a build break along the way
authorPhil Miller <mille121@illinois.edu>
Sun, 13 Feb 2011 17:29:41 +0000 (11:29 -0600)
committerPhil Miller <mille121@illinois.edu>
Sun, 13 Feb 2011 17:29:41 +0000 (11:29 -0600)
Only put the class that actually needs to be in the external header there.
Everything else can go in the source file.

Rather than 'using namespace std', just say 'using std::vector'.

List headers from most to least specific, so that dependencies aren't hidden.

src/ck-ldb/RecBipartLB.C
src/ck-ldb/RecBipartLB.h

index a14f58577bbef86a2984fdf2746793fc85e9c67f..876fa5ab4a711e43a4e5aa3c064f1819f11de211 100644 (file)
  */
 
 /*@{*/
-using namespace std;
 
+#include "RecBipartLB.h"
+#include "ckgraph.h"
 #include <limits.h>
 #include <math.h>
 #include <queue>
 #include <vector>
-#include "ckgraph.h"
-#include "RecBipartLB.h"
+
+using std::vector;
+
+/**
+ *  Class to contain additional data about the vertices in object graph
+ */
+class Vertex_helper {
+  public:
+    inline int getPartition(){ return partition; }
+    inline void setPartition(int p){partition=p; }
+    inline bool getMarked(){ return marked; }
+    inline void setMarked(bool v){ marked=v;}
+    inline bool getBoundaryline(){return boundaryline;}
+    inline void setBoundaryline(bool v){ boundaryline=v;}
+    inline int getEdgestopart1(){return edgestopart1;}
+    inline int getEdgestopart2(){return edgestopart2;}
+    inline void setEdgestopart1(int v){edgestopart1=v;}
+    inline void setEdgestopart2(int v){edgestopart2=v;}
+    inline void incEdgestopart1(int v){edgestopart1+=v ;}
+    inline void incEdgestopart2(int v){edgestopart2+=v;}
+    inline void decEdgestopart1(int v){edgestopart1-=v;}
+    inline void decEdgestopart2(int v){edgestopart2-=v;}
+    inline void setLevel(int l){level=l;}
+    inline int getLevel(){return level;}
+    inline int getGain(){return gain;}
+    inline void setGain(int v){gain=v;};
+
+  private:
+    int partition;      // partition to which this vertex currently belongs
+    bool marked;       // already marked or not
+    bool boundaryline;  //on boundaryline of a partition or not
+    int edgestopart1; //only for boundaryline vertices
+    int edgestopart2; //only for boundaryline vertices
+    int gain;          //gain if this vertex switched partitions
+    int level;
+};
+
+/**
+ *  Class to handle the boundaries of child partitions
+ */
+class BQueue {
+  public:
+    vector<int> q;
+
+    BQueue(short b){
+      forboundary=b;
+    }
+
+    inline int getMingain(){return mingain;}
+    inline void setMingain(int v){mingain=v;}
+    inline int getVertextoswap(){return vertextoswap;}
+    inline void setVertextoswap(int v){vertextoswap=v;}
+    inline int getSwapid(){return swapid;}
+    inline void setSwapid(int v){swapid=v;}
+    inline short getBoundary(){return forboundary;}
+    void push(Vertex *);
+    void removeComplete(Vertex *);
+    void removeToSwap(Vertex *);
+
+  private:
+    int mingain;
+    int vertextoswap;
+    int swapid;
+    short forboundary;
+};
 
 void RecursiveBiPart(ObjGraph *, vector<Vertex *> & ,int, int);
 void adjustqueues(ObjGraph *, BQueue *, BQueue *, vector<Vertex *> &, vector<Vertex *> &,int *, int);
index 7de9fbea30585815838e01564b1ebd0e0373429d..2159a459cc8282e24fdb0780cc82a11a8696f605 100644 (file)
 #include "CentralLB.h"
 #include "RecBipartLB.decl.h"
 
-/**
- *  Class to contain additional data about the vertices in object graph
- */
-class Vertex_helper {
-  public:
-    inline int getPartition(){ return partition; }
-    inline void setPartition(int p){partition=p; }
-    inline bool getMarked(){ return marked; }
-    inline void setMarked(bool v){ marked=v;}
-    inline bool getBoundaryline(){return boundaryline;}
-    inline void setBoundaryline(bool v){ boundaryline=v;}
-    inline int getEdgestopart1(){return edgestopart1;}
-    inline int getEdgestopart2(){return edgestopart2;}
-    inline void setEdgestopart1(int v){edgestopart1=v;}
-    inline void setEdgestopart2(int v){edgestopart2=v;}
-    inline void incEdgestopart1(int v){edgestopart1+=v ;}
-    inline void incEdgestopart2(int v){edgestopart2+=v;}
-    inline void decEdgestopart1(int v){edgestopart1-=v;}
-    inline void decEdgestopart2(int v){edgestopart2-=v;}
-    inline void setLevel(int l){level=l;}
-    inline int getLevel(){return level;}
-    inline int getGain(){return gain;}
-    inline void setGain(int v){gain=v;};
-
-  private:
-    int partition;      // partition to which this vertex currently belongs
-    bool marked;       // already marked or not
-    bool boundaryline;  //on boundaryline of a partition or not
-    int edgestopart1; //only for boundaryline vertices
-    int edgestopart2; //only for boundaryline vertices
-    int gain;          //gain if this vertex switched partitions
-    int level;
-};
-
-/**
- *  Class to handle the boundaries of child partitions
- */
-class BQueue {
-  public:
-    std::vector<int> q;
-
-    BQueue(short b){
-      forboundary=b;
-    }
-
-    inline int getMingain(){return mingain;}
-    inline void setMingain(int v){mingain=v;}
-    inline int getVertextoswap(){return vertextoswap;}
-    inline void setVertextoswap(int v){vertextoswap=v;}
-    inline int getSwapid(){return swapid;}
-    inline void setSwapid(int v){swapid=v;}
-    inline short getBoundary(){return forboundary;}
-    void push(Vertex *);
-    void removeComplete(Vertex *);
-    void removeToSwap(Vertex *);
-
-  private:
-    int mingain;
-    int vertextoswap;
-    int swapid;
-    short forboundary;
-};
-
 class RecBipartLB : public CentralLB {
   public:
     RecBipartLB(const CkLBOptions &opt);