From: jihoonl Date: Mon, 29 Jun 2009 19:44:24 +0000 (+0000) Subject: Labyrinth works X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;ds=sidebyside;h=8e508508624c51f0d44bd63cd31701bae87b8cab;p=IRC.git Labyrinth works --- diff --git a/Robust/src/Benchmarks/SingleTM/Labyrinth/Grid.java b/Robust/src/Benchmarks/SingleTM/Labyrinth/Grid.java index 58345622..024b5823 100644 --- a/Robust/src/Benchmarks/SingleTM/Labyrinth/Grid.java +++ b/Robust/src/Benchmarks/SingleTM/Labyrinth/Grid.java @@ -267,11 +267,6 @@ long* grid_getPointRef (grid_t* gridPtr, long x, long y, long z); points_unaligned[getPointIndex(x,y,z)][0] = value; } - public void setPoint(int index,int value) - { - points_unaligned[index][0] = value; - } - /* ============================================================================= * grid_addPath @@ -302,8 +297,7 @@ void grid_addPath (grid_t* gridPtr, vector_t* pointVectorPtr); for(i = 0; i < n; i++) { int gridPointIndex = ((Integer)(pointVectorPtr.vector_at(i))).intValue(); - - setPoint(gridPointIndex,GRID_POINT_FULL); + points_unaligned[gridPointIndex][0] = GRID_POINT_FULL; } } diff --git a/Robust/src/Benchmarks/SingleTM/Labyrinth/Labyrinth.java b/Robust/src/Benchmarks/SingleTM/Labyrinth/Labyrinth.java index 57c06a0f..6a4ec533 100644 --- a/Robust/src/Benchmarks/SingleTM/Labyrinth/Labyrinth.java +++ b/Robust/src/Benchmarks/SingleTM/Labyrinth/Labyrinth.java @@ -155,9 +155,9 @@ public class Labyrinth extends Thread{ } public void run() { - Barrier.enterBarrier(); - Router.solve(routerArg); - Barrier.enterBarrier(); + Barrier.enterBarrier(); + Router.solve(routerArg); + Barrier.enterBarrier(); } public void displayUsage() diff --git a/Robust/src/Benchmarks/SingleTM/Labyrinth/Router.java b/Robust/src/Benchmarks/SingleTM/Labyrinth/Router.java index e77a964b..dc84cb20 100644 --- a/Robust/src/Benchmarks/SingleTM/Labyrinth/Router.java +++ b/Robust/src/Benchmarks/SingleTM/Labyrinth/Router.java @@ -141,19 +141,19 @@ public class Router { * ============================================================================ */ private void PexpandToNeighbor(Grid myGridPtr, - int x,int y,int z, int value,Queue_t queuePtr) + int x,int y,int z, int value,Queue_Int queuePtr) { if (myGridPtr.isPointValid(x,y,z)) { int neighborGridPointIndex = myGridPtr.getPointIndex(x,y,z); int neighborValue = myGridPtr.points_unaligned[neighborGridPointIndex][0]; if (neighborValue == GRID_POINT_EMPTY) { - myGridPtr.setPoint(neighborGridPointIndex,value); - queuePtr.queue_push(new Integer(neighborGridPointIndex)); + myGridPtr.points_unaligned[neighborGridPointIndex][0] = value; + queuePtr.queue_push(neighborGridPointIndex); } else if (neighborValue != GRID_POINT_FULL) { if (value < neighborValue) { - myGridPtr.setPoint(neighborGridPointIndex,value); - queuePtr.queue_push(new Integer(neighborGridPointIndex)); + myGridPtr.points_unaligned[neighborGridPointIndex][0] = value; + queuePtr.queue_push(neighborGridPointIndex); } } } @@ -164,7 +164,7 @@ public class Router { * PdoExpansion * ============================================================================ */ - public boolean PdoExpansion (Router routerPtr,Grid myGridPtr,Queue_t queuePtr, + public boolean PdoExpansion (Router routerPtr,Grid myGridPtr,Queue_Int queuePtr, Coordinate srcPtr,Coordinate dstPtr) { int xCost = routerPtr.xCost; @@ -180,25 +180,24 @@ public class Router { int srcGridPointIndex = myGridPtr.getPointIndex(srcPtr.x,srcPtr.y,srcPtr.z); - queuePtr.queue_push(new Integer(srcGridPointIndex)); + queuePtr.queue_push(srcGridPointIndex); // System.out.println("dstPtr :\tx = " + dstPtr.x + "\ty = " + dstPtr.y + "\tz = " + dstPtr.z); myGridPtr.setPoint(srcPtr.x,srcPtr.y,srcPtr.z,0); myGridPtr.setPoint(dstPtr.x,dstPtr.y,dstPtr.z,GRID_POINT_EMPTY); int dstGridPointIndex = myGridPtr.getPointIndex(dstPtr.x,dstPtr.y,dstPtr.z); boolean isPathFound = false; + int[] x = new int[1]; + int[] y = new int[1]; + int[] z = new int[1]; while (!queuePtr.queue_isEmpty()) { - int gridPointIndex = ((Integer)queuePtr.queue_pop()).intValue(); + int gridPointIndex = queuePtr.queue_pop(); // System.out.println("gridPointIndex = " +gridPointIndex); if(gridPointIndex == dstGridPointIndex) { isPathFound = true; break; } - - int[] x = new int[1]; - int[] y = new int[1]; - int[] z = new int[1]; myGridPtr.getPointIndices(gridPointIndex,x,y,z); int value = myGridPtr.points_unaligned[gridPointIndex][0]; @@ -350,7 +349,7 @@ public class Router { Grid gridPtr = mazePtr.gridPtr; Grid myGridPtr = Grid.alloc(gridPtr.width,gridPtr.height,gridPtr.depth); int bendCost = routerPtr.bendCost; - Queue_t myExpansionQueuePtr = Queue_t.queue_alloc(-1); + Queue_Int myExpansionQueuePtr = Queue_Int.queue_alloc(-1); /* * Iterate over work list to route each path. This involves an @@ -387,8 +386,7 @@ public class Router { atomic { Grid.copy(myGridPtr, gridPtr); /* ok if not most up-to-date */ - boolean result = routerPtr.PdoExpansion(routerPtr,myGridPtr,myExpansionQueuePtr,srcPtr,dstPtr); - if(result) { + if(routerPtr.PdoExpansion(routerPtr,myGridPtr,myExpansionQueuePtr,srcPtr,dstPtr)) { pointVectorPtr = routerPtr.PdoTraceback(gridPtr,myGridPtr,dstPtr,bendCost); if (pointVectorPtr != null) { @@ -418,6 +416,8 @@ public class Router { pathVectorListPtr.insert(myPathVectorPtr); } + myGridPtr = null; + myExpansionQueuePtr = null; // System.out.println("Final Grid: "); // gridPtr.print(); diff --git a/Robust/src/Benchmarks/SingleTM/Labyrinth/makefile b/Robust/src/Benchmarks/SingleTM/Labyrinth/makefile index 83f0130f..fb928875 100644 --- a/Robust/src/Benchmarks/SingleTM/Labyrinth/makefile +++ b/Robust/src/Benchmarks/SingleTM/Labyrinth/makefile @@ -2,6 +2,7 @@ MAINCLASS=Labyrinth SRC=ttttmp${MAINCLASS}.java \ ../common/Pair.java \ ttttmpQueue_t.java \ + ttttmpQueue_Int.java \ Vector_t.java \ List_t.java \ List_Node.java \ @@ -22,11 +23,13 @@ default: cpp Router.java > tmpRouter.java cpp Maze.java > tmpMaze.java cpp Queue_t.java > tmpQueue_t.java + cpp Queue_Int.java > tmpQueue_Int.java ./extractLines tmp${MAINCLASS}.java ./extractLines tmpGrid.java ./extractLines tmpRouter.java ./extractLines tmpMaze.java ./extractLines tmpQueue_t.java + ./extractLines tmpQueue_Int.java ../../../buildscript ${FLAGS} -o ${MAINCLASS} ${SRC} rm ttt*.java tmp*.java @@ -40,11 +43,13 @@ test: cpp Router.java > tmpRouter.java cpp Maze.java > tmpMaze.java cpp Queue_t.java > tmpQueue_t.java + cpp Queue_Int.java > tmpQueue_Int.java ./extractLines tmp${MAINCLASS}.java ./extractLines tmpGrid.java ./extractLines tmpRouter.java ./extractLines tmpMaze.java ./extractLines tmpQueue_t.java + ./extractLines tmpQueue_Int.java ../../../buildscript ${FLAGS} -o ${MAINCLASS} ${SRC} rm ttt*.java tmp*.java ./Labyrinth.bin -i inputs/random-x32-y32-z3-n64.txt