Compiles with a few warnings... Doesn't run yet though.
authorstephey <stephey>
Tue, 29 Mar 2011 23:37:34 +0000 (23:37 +0000)
committerstephey <stephey>
Tue, 29 Mar 2011 23:37:34 +0000 (23:37 +0000)
12 files changed:
Robust/src/Benchmarks/oooJava/DelaunayRefinement/Cavity.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/Edge.java [deleted file]
Robust/src/Benchmarks/oooJava/DelaunayRefinement/EdgeGraphNode.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/Edge_d.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/Element.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/GraphEdge.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/Mesh.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/Node.java
Robust/src/Benchmarks/oooJava/DelaunayRefinement/SerialDelaunayRefinement.java [new file with mode: 0644]
Robust/src/Benchmarks/oooJava/DelaunayRefinement/SerialDelaunayrefinement.java [deleted file]
Robust/src/Benchmarks/oooJava/DelaunayRefinement/makefile
Robust/src/Benchmarks/oooJava/DelaunayRefinement/runs [new file with mode: 0755]

index 9f84dc28684acfe3f3673250a92fcfd117afe75f..948c38205bc4b070edb2430a40d2c0db3e8f3aae 100644 (file)
@@ -3,15 +3,17 @@ public class Cavity {
   protected Node centerNode;
   protected Element centerElement;
   protected int dim;
-  protected LinkedList frontier = new LinkedList();
+  protected LinkedList frontier;
   protected Subgraph pre = new Subgraph();
   protected Subgraph post = new Subgraph();
   private final EdgeGraph graph;
-  protected HashSet connections = new HashSet();
+  protected HashSet connections;
 
   public Cavity(EdgeGraph mesh) {
     center = null;
     graph = mesh;
+    connections = new HashSet();
+    frontier = new LinkedList();
   }
 
   public Subgraph getPre() {
@@ -31,8 +33,8 @@ public class Cavity {
   public void initialize(Node node) {
     pre.reset();
     post.reset();
-    connections.clear();
-    frontier.clear();
+    connections = new HashSet();
+    frontier = new LinkedList();
     centerNode = node;
     for (centerElement = (Element) graph.getNodeData(centerNode); graph.containsNode(centerNode)
         && centerElement.isObtuse();) {
@@ -65,7 +67,7 @@ public class Cavity {
     for (Iterator iterator = graph.getOutNeighbors(node); iterator.hasNext();) {
       Node neighbor = (Node) iterator.next();
       Edge_d edge = graph.getEdge(node, neighbor);
-      Element.Edge edge_data = (Element.Edge) graph.getEdgeData(edge);
+      ElementEdge edge_data = (ElementEdge) graph.getEdgeData(edge);
       if (element.getObtuse().notEquals(edge_data.getPoint(0))
           && element.getObtuse().notEquals(edge_data.getPoint(1)))
         return edge;
@@ -120,7 +122,7 @@ public class Cavity {
     Node ne_node;
     for (Iterator iterator = connections.iterator(); iterator.hasNext(); post.addNode(ne_node)) {
       Edge_d conn = (Edge_d) iterator.next();
-      Element.Edge edge = (Element.Edge) graph.getEdgeData(conn);
+      ElementEdge edge = (ElementEdge) graph.getEdgeData(conn);
       Element new_element = new Element(center, edge.getPoint(0), edge.getPoint(1));
       ne_node = graph.createNode(new_element);
       Node ne_connection;
@@ -128,7 +130,7 @@ public class Cavity {
         ne_connection = graph.getSource(conn);
       else
         ne_connection = graph.getDest(conn);
-      Element.Edge new_edge =
+      ElementEdge new_edge =
           new_element.getRelatedEdge((Element) graph.getNodeData(ne_connection));
       post.addEdge(graph.createEdge(ne_node, ne_connection, new_edge));
 
@@ -142,7 +144,7 @@ public class Cavity {
         Node node = (Node) iterator1.next();
         Element element = (Element) graph.getNodeData(node);
         if (element.isRelated(new_element)) {
-          Element.Edge ele_edge = new_element.getRelatedEdge(element);
+          ElementEdge ele_edge = new_element.getRelatedEdge(element);
           post.addEdge(graph.createEdge(ne_node, node, ele_edge));
         }
       }
diff --git a/Robust/src/Benchmarks/oooJava/DelaunayRefinement/Edge.java b/Robust/src/Benchmarks/oooJava/DelaunayRefinement/Edge.java
deleted file mode 100644 (file)
index af77980..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-public interface Edge {
-  public abstract Object getData();
-  public abstract Object setData(Object obj);
-}
index 6d273117d4316f145543fb4c809cd9957fe19e2c..0c74d66cc9191eb83a4d46c3926d47b8e2864bc9 100644 (file)
@@ -1,4 +1,4 @@
-public class EdgeGraphNode implements Node {\r
+public class EdgeGraphNode extends Node {\r
     protected HashMap inEdges;\r
     protected HashMap outEdges;\r
     protected Object data;\r
index afa21eedf28d033e4dc08a00445c240b5262484b..a421dbb906efbe3e9a5477043c6e0c3dfc569000 100644 (file)
@@ -1,4 +1,4 @@
-public interface Edge_d {
+public class Edge_d {
   //None of the program actually uses getData/setData so I use leave Edge as a 
   //wrapper interface.
 //  public abstract Object getData();
index eabce7f97c550c8be7894038dee81919fbe2a6da..64993165ec614a0468d336e1e63a8a13ca404b3b 100644 (file)
@@ -7,7 +7,7 @@ public class Element {
   private final int dim;
   private final Tuple center;
   private final double radius_squared;
-  private static final double MINANGLE = 30D;
+  private final double MINANGLE = 30D;
   
   public Element(Tuple a, Tuple b, Tuple c) {
     dim = 3;
index 1235e89bbeaae7fe819f5b8d1fda32f1eebc9caa..c17e8c3cd6626e536c5b76ca601560a2035e0464 100644 (file)
@@ -1,4 +1,4 @@
-public class GraphEdge implements Edge_d {\r
+public class GraphEdge extends Edge_d {\r
   protected EdgeGraphNode src;\r
   protected EdgeGraphNode dest;\r
   protected Object d;\r
index 4a44bb6ca88b6d27cdecee90600b8bbf140b0447..391426077b5c8e1f72bdc9f6082aca040eb33e56 100644 (file)
@@ -1,10 +1,11 @@
 public class Mesh {
-  protected static final HashMap edge_map = new HashMap();
+  protected HashMap edge_map;
 
   public Mesh() {
+    edge_map = new HashMap();
   }
 
-  public static HashSet getBad(EdgeGraph mesh) {
+  public HashSet getBad(EdgeGraph mesh) {
     HashSet ret = new HashSet();
     for (Iterator iterator = mesh.iterator(); iterator.hasNext();) {
       Node node = (Node) iterator.next();
@@ -16,7 +17,7 @@ public class Mesh {
     return ret;
   }
 
-  private static FileInputStream getScanner(String filename) {
+  private FileInputStream getScanner(String filename) {
     return new FileInputStream(filename);
   }
 
@@ -96,7 +97,7 @@ public class Mesh {
     return node;
   }
 
-  public static boolean verify(EdgeGraph mesh) {
+  public boolean verify(EdgeGraph mesh) {
     for (Iterator iterator = mesh.iterator(); iterator.hasNext();) {
       Node node = (Node) iterator.next();
       Element element = (Element) mesh.getNodeData(node);
@@ -117,10 +118,11 @@ public class Mesh {
     }
 
     Node start = mesh.getRandom();
-    Stack remaining = new Stack();
+//    Stack remaining = new Stack();
+    LinkedList remaining = new LinkedList();
     HashSet found = new HashSet();
     remaining.push(start);
-    while (!remaining.empty()) {
+    while (!remaining.isEmpty()) {
       Node node = (Node) remaining.pop();
       if (!found.contains(node)) {
         found.add(node);
index aed410729cdad74edb6c6f3edf88cecf49e45a1c..5f71f4f86aa7bad3112f8729ecb360ea4b390b1c 100644 (file)
@@ -1,4 +1,4 @@
-public interface Node {
+public class Node {
   
   //None of the program actually uses getData/setData so I use leave Node as a 
   //wrapper interface.
diff --git a/Robust/src/Benchmarks/oooJava/DelaunayRefinement/SerialDelaunayRefinement.java b/Robust/src/Benchmarks/oooJava/DelaunayRefinement/SerialDelaunayRefinement.java
new file mode 100644 (file)
index 0000000..1746b2c
--- /dev/null
@@ -0,0 +1,128 @@
+public class SerialDelaunayRefinement {  
+  public boolean isFirstRun;
+  public SerialDelaunayRefinement() {
+    isFirstRun = true;
+  }
+
+  public static void main(String args[]) {
+    SerialDelaunayRefinement sdr = new SerialDelaunayRefinement();
+    sdr.runMain(args);
+  }
+  
+  public void runMain(String args[]) {
+    long runtime = 0;
+    //Numbers below are Long.Max_Value
+    long lasttime = 0x7fffffffffffffffL;
+    long mintime = 0x7fffffffffffffffL;
+    for (long run = 0; ((run < 3) || Math.abs(lasttime - runtime) * 64 > Math.min(lasttime, runtime)) && run < 7; run++) {
+      runtime = run(args);
+      if (runtime < mintime) {
+        mintime = runtime;
+      }
+    }
+
+    System.out.println("minimum runtime: " + mintime + " ms");
+    System.out.println("");
+  }
+  
+
+  public long run(String args[]) {
+    if (isFirstRun) {
+      System.out.println();
+      System.out.println("Lonestar Benchmark Suite v2.1");
+      System.out.println("Copyright (C) 2007, 2008, 2009 The University of Texas at Austin");
+      System.out.println("http://iss.ices.utexas.edu/lonestar/");
+      System.out.println();
+      System.out.println("application: Delaunay Mesh Refinement (serial version)");
+      System.out.println("Refines a Delaunay triangulation mesh such that no angle");
+      System.out.println("in the mesh is less than 30 degrees");
+      System.out.println("http://iss.ices.utexas.edu/lonestar/delaunayrefinement.html");
+      System.out.println();
+    }
+    if (args.length < 1) {
+      System.out.println("Arguments: <input file> [verify]");
+      System.exit(-1);
+    }
+
+    EdgeGraph mesh = new UndirectedEdgeGraph();
+
+    Mesh m = new Mesh();
+    m.read(mesh, args[0]);
+
+    //treat LinkedList as a stack
+//    Stack worklist = new Stack();
+    LinkedList worklist = new LinkedList();
+
+    // worklist.addAll(Mesh.getBad(mesh));
+    HashMapIterator it = m.getBad(mesh).iterator();
+    while (it.hasNext()) {
+      worklist.push(it.next());
+    }
+
+    Cavity cavity = new Cavity(mesh);
+    if (isFirstRun) {
+      System.out.println("configuration: " + mesh.getNumNodes() + " total triangles, " + worklist.size() + " bad triangles");
+      System.out.println();
+    }
+//    long id = Time.getNewTimeId();
+    long startTime = System.currentTimeMillis();
+    while (!worklist.isEmpty()) {
+      Node bad_element = (Node) worklist.pop();
+      if (bad_element != null && mesh.containsNode(bad_element)) {
+        cavity.initialize(bad_element);
+        cavity.build();
+        cavity.update();
+        Node node;
+        for (Iterator iterator = cavity.getPre().getNodes().iterator(); iterator.hasNext(); mesh.removeNode(node)) {
+          node = (Node) iterator.next();
+        }
+
+        for (Iterator iterator1 = cavity.getPost().getNodes().iterator(); iterator1.hasNext(); mesh.addNode(node)) {
+          node = (Node) iterator1.next();
+        }
+
+        Edge_d edge;
+        for (Iterator iterator2 = cavity.getPost().getEdges().iterator(); iterator2.hasNext(); mesh.addEdge(edge)) {
+          edge = (Edge_d) iterator2.next();
+        }
+
+        // worklist.addAll(cavity.getPost().newBad(mesh));
+        it = cavity.getPost().newBad(mesh).iterator();
+        while (it.hasNext()) {
+          worklist.push((Node)it.next());
+        }
+
+        if (mesh.containsNode(bad_element)) {
+          worklist.push((Node) bad_element);
+        }
+      }
+    }
+    long time = System.currentTimeMillis() - startTime;
+    System.out.println("runtime: " + time + " ms");
+    if (isFirstRun && args.length > 1) {
+      verify(mesh);
+    }
+    isFirstRun = false;
+    return time;
+  }
+
+  public void verify(EdgeGraph result) {
+    //Put in cuz of static issues.
+    Mesh m = new Mesh();
+    
+    if (!m.verify(result)) {
+//      throw new IllegalStateException("refinement failed.");
+      System.out.println("Refinement Failed.");
+      System.exit(-1);
+    }
+    
+    int size = m.getBad(result).size();
+    if (size != 0) {
+      System.out.println("refinement failed\nstill have "+size+" bad triangles left.\n");
+      System.exit(-1);
+    } else {
+      System.out.println("OK");
+      return;
+    }
+  }
+}
diff --git a/Robust/src/Benchmarks/oooJava/DelaunayRefinement/SerialDelaunayrefinement.java b/Robust/src/Benchmarks/oooJava/DelaunayRefinement/SerialDelaunayrefinement.java
deleted file mode 100644 (file)
index 091eed8..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-public class SerialDelaunayrefinement {
-
-  private static boolean isFirstRun = true;
-  
-  public SerialDelaunayrefinement() {
-  }
-
-  public static void main(String args[]) {
-    long runtime = 0;
-    //Numbers below are Long.Max_Value
-    long lasttime = 0x7fffffffffffffffL;
-    long mintime = 0x7fffffffffffffffL;
-    for (long run = 0; ((run < 3) || Math.abs(lasttime - runtime) * 64 > Math.min(lasttime, runtime)) && run < 7; run++) {
-      runtime = run(args);
-      if (runtime < mintime) {
-        mintime = runtime;
-      }
-    }
-
-    System.out.println("minimum runtime: " + mintime + " ms");
-    System.out.println("");
-  }
-
-  public static long run(String args[]) {
-    if (isFirstRun) {
-      System.out.println();
-      System.out.println("Lonestar Benchmark Suite v2.1");
-      System.out.println("Copyright (C) 2007, 2008, 2009 The University of Texas at Austin");
-      System.out.println("http://iss.ices.utexas.edu/lonestar/");
-      System.out.println();
-      System.out.println("application: Delaunay Mesh Refinement (serial version)");
-      System.out.println("Refines a Delaunay triangulation mesh such that no angle");
-      System.out.println("in the mesh is less than 30 degrees");
-      System.out.println("http://iss.ices.utexas.edu/lonestar/delaunayrefinement.html");
-      System.out.println();
-    }
-    if (args.length < 1) {
-      System.out.println("Arguments: <input file> [verify]");
-      System.exit(-1);
-    }
-
-    EdgeGraph mesh = new UndirectedEdgeGraph();
-
-    Mesh m = new Mesh();
-    m.read(mesh, args[0]);
-
-    Stack worklist = new Stack();
-
-    // worklist.addAll(Mesh.getBad(mesh));
-    HashMapIterator it = m.getBad(mesh).iterator();
-    while (it.hasNext()) {
-      worklist.push(it.next());
-    }
-
-    Cavity cavity = new Cavity(mesh);
-    if (isFirstRun) {
-      System.err.println("configuration: " + mesh.getNumNodes() + " total triangles, " + worklist.size() + " bad triangles");
-      System.out.println();
-    }
-//    long id = Time.getNewTimeId();
-    long startTime = System.currentTimeMillis();
-    while (!worklist.empty()) {
-      Node bad_element = (Node) worklist.pop();
-      if (bad_element != null && mesh.containsNode(bad_element)) {
-        cavity.initialize(bad_element);
-        cavity.build();
-        cavity.update();
-        Node node;
-        for (Iterator iterator = cavity.getPre().getNodes().iterator(); iterator.hasNext(); mesh.removeNode(node)) {
-          node = (Node) iterator.next();
-        }
-
-        for (Iterator iterator1 = cavity.getPost().getNodes().iterator(); iterator1.hasNext(); mesh.addNode(node)) {
-          node = (Node) iterator1.next();
-        }
-
-        Edge_d edge;
-        for (Iterator iterator2 = cavity.getPost().getEdges().iterator(); iterator2.hasNext(); mesh.addEdge(edge)) {
-          edge = (Edge_d) iterator2.next();
-        }
-
-        // worklist.addAll(cavity.getPost().newBad(mesh));
-        it = cavity.getPost().newBad(mesh).iterator();
-        while (it.hasNext()) {
-          worklist.push(it.next());
-        }
-
-        if (mesh.containsNode(bad_element)) {
-          worklist.push(bad_element);
-        }
-      }
-    }
-    long time = System.currentTimeMillis() - startTime;
-    System.out.println("runtime: " + time + " ms");
-    if (isFirstRun && args.length > 1) {
-      verify(mesh);
-    }
-    isFirstRun = false;
-    return time;
-  }
-
-  public static void verify(EdgeGraph result) {
-    if (!Mesh.verify(result)) {
-//      throw new IllegalStateException("refinement failed.");
-      System.out.println("Refinement Failed.");
-      System.exit(-1);
-    }
-    
-    int size = Mesh.getBad(result).size();
-    if (size != 0) {
-      System.out.println("refinement failed\nstill have "+size+" bad triangles left.\n");
-      System.exit(-1);
-    } else {
-      System.out.println("OK");
-      return;
-    }
-  }
-}
index d4ed3adb2b0abe87bedb9350b2882409c27459e2..bfc6b8b2d1bd64caba5697ca460dd8881a4ca4ad 100644 (file)
@@ -1,6 +1,6 @@
-PROGRAM=DelaunayRefinement
+PROGRAM=SerialDelaunayRefinement
 
-SOURCE_FILES=SerialDelaunayrefinement.java
+SOURCE_FILES=SerialDelaunayRefinement.java
 
 NUM_OOO_WORKERS=24
 NUM_RCR_WORKERS=23
diff --git a/Robust/src/Benchmarks/oooJava/DelaunayRefinement/runs b/Robust/src/Benchmarks/oooJava/DelaunayRefinement/runs
new file mode 100755 (executable)
index 0000000..9a0c934
--- /dev/null
@@ -0,0 +1 @@
+./SerialDelaunayRefinements.bin ./input/large.2 true