From: yeom Date: Tue, 6 Dec 2011 00:00:35 +0000 (+0000) Subject: new analysis found one shared location that is not overwritten in the eyetracking... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bc9ee1fd50c62e8900a6b8a4f8e6151013cd32c8;p=IRC.git new analysis found one shared location that is not overwritten in the eyetracking benchmark, fixed it. --- diff --git a/Robust/src/Benchmarks/SSJava/EyeTracking/Counter.java b/Robust/src/Benchmarks/SSJava/EyeTracking/Counter.java new file mode 100644 index 00000000..a5a4ac3e --- /dev/null +++ b/Robust/src/Benchmarks/SSJava/EyeTracking/Counter.java @@ -0,0 +1,15 @@ +public class Counter { + + static int idx = 0; + + @TRUST + static boolean inc() { + idx++; + } + + @TRUST + static int idx() { + return idx; + } + +} diff --git a/Robust/src/Benchmarks/SSJava/EyeTracking/DeviationScanner.java b/Robust/src/Benchmarks/SSJava/EyeTracking/DeviationScanner.java index c3749fd7..7d5dab74 100644 --- a/Robust/src/Benchmarks/SSJava/EyeTracking/DeviationScanner.java +++ b/Robust/src/Benchmarks/SSJava/EyeTracking/DeviationScanner.java @@ -43,12 +43,8 @@ public class DeviationScanner { public static final int DOWN = 7; public static final int RIGHT_DOWN = 8; - @LOC("DEV") - private int size; - public DeviationScanner() { eyePositions = new EyePosition[3]; - size = 0; } @LATTICE("THIS= 3) { - @LOC("THIS,DeviationScanner.DEV") double deviationX = 0; - @LOC("THIS,DeviationScanner.DEV") double deviationY = 0; - - @LOC("THIS,DeviationScanner.DEV") int lastIdx = -1; - for (@LOC("THIS,DeviationScanner.DEV") int i = 0; i < 3; ++i) { - if (lastIdx != -1) { - deviationX += (eyePositions[i].getX() - eyePositions[lastIdx].getX()); - deviationY += (eyePositions[i].getY() - eyePositions[lastIdx].getY()); - } - lastIdx = i; + + for (@LOC("C") int i = 0; i < 3; i++) { + if (eyePositions[i] == null) { + return deviation; } + } + + @LOC("THIS,DeviationScanner.DEV") double deviationX = 0; + @LOC("THIS,DeviationScanner.DEV") double deviationY = 0; - @LOC("THIS,DeviationScanner.DEV") final double deviationPercentX = 0.04; - @LOC("THIS,DeviationScanner.DEV") final double deviationPercentY = 0.04; + @LOC("THIS,DeviationScanner.DEV") int lastIdx = -1; + for (@LOC("THIS,DeviationScanner.DEV") int i = 0; i < 3; ++i) { + if (lastIdx != -1) { + deviationX += (eyePositions[i].getX() - eyePositions[lastIdx].getX()); + deviationY += (eyePositions[i].getY() - eyePositions[lastIdx].getY()); + } + lastIdx = i; + } - deviationX /= faceRect.getWidth(); - deviationY /= faceRect.getWidth(); + @LOC("THIS,DeviationScanner.DEV") final double deviationPercentX = 0.04; + @LOC("THIS,DeviationScanner.DEV") final double deviationPercentY = 0.04; - @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteX = 0; - @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteY = 0; - if (deviationX > deviationPercentX) - deviationAbsoluteX = 1; - if (deviationX < -deviationPercentX) - deviationAbsoluteX = -1; - if (deviationY > deviationPercentY) - deviationAbsoluteY = 1; - if (deviationY < -deviationPercentY) - deviationAbsoluteY = -1; + deviationX /= faceRect.getWidth(); + deviationY /= faceRect.getWidth(); - deviation = getDirectionFor(deviationAbsoluteX, deviationAbsoluteY); + @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteX = 0; + @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteY = 0; + if (deviationX > deviationPercentX) + deviationAbsoluteX = 1; + if (deviationX < -deviationPercentX) + deviationAbsoluteX = -1; + if (deviationY > deviationPercentY) + deviationAbsoluteY = 1; + if (deviationY < -deviationPercentY) + deviationAbsoluteY = -1; - if (deviation != NONE) { - eyePositions = new EyePosition[3]; - size = 0; - } - // System.out.println(String.format("%.2f%% | %.2f%% => %d and %d >>> %s", - // deviationX*100, deviationY*100, deviationAbsoluteX, deviationAbsoluteY, - // deviation.toString())); + deviation = getDirectionFor(deviationAbsoluteX, deviationAbsoluteY); + if (deviation != NONE) { + eyePositions = new EyePosition[3]; } + // System.out.println(String.format("%.2f%% | %.2f%% => %d and %d >>> %s", + // deviationX*100, deviationY*100, deviationAbsoluteX, deviationAbsoluteY, + // deviation.toString())); return deviation; } @@ -154,7 +142,6 @@ public class DeviationScanner { public void clear() { System.out.println("CLEAR"); eyePositions = new EyePosition[3]; - size = 0; } public String toStringDeviation(@LOC("IN") int dev) { diff --git a/Robust/src/Benchmarks/SSJava/EyeTracking/LEA.java b/Robust/src/Benchmarks/SSJava/EyeTracking/LEA.java index ea5f7e08..d8e593c7 100644 --- a/Robust/src/Benchmarks/SSJava/EyeTracking/LEA.java +++ b/Robust/src/Benchmarks/SSJava/EyeTracking/LEA.java @@ -94,9 +94,10 @@ public class LEA { @LOC("C") int i = 0; - SSJAVA: while (i < 37) { - @LOC("IMG") Image image = ImageReader.readImage("data/b" + i + ".bmp"); - i++; + SSJAVA: while (Counter.idx() < 37) { + @LOC("IMG") Image image = ImageReader.readImage("data/b" + Counter.idx() + ".bmp"); + Counter.inc(); + // i++; if (image == null) { break; } @@ -109,15 +110,15 @@ public class LEA { private void processImage(@LOC("IN") Image image) { @LOC("THIS,LEA.POS") FaceAndEyePosition positions = implementation.getEyePosition(image); -// if (positions.getEyePosition() != null) { - deviationScanner.addEyePosition(positions.getEyePosition()); - @LOC("THIS,LEA.DEV,DeviationScanner.DEV") int deviation = - deviationScanner.scanForDeviation(positions.getFacePosition());// positions.getEyePosition().getDeviation(lastPositions.getEyePosition()); - if (deviation != DeviationScanner.NONE) { - System.out.println("deviation=" + deviationScanner.toStringDeviation(deviation)); - // notifyEyeMovementListenerEyeMoved(deviation); - } -// } + // if (positions.getEyePosition() != null) { + deviationScanner.addEyePosition(positions.getEyePosition()); + @LOC("THIS,LEA.DEV,DeviationScanner.DEV") int deviation = + deviationScanner.scanForDeviation(positions.getFacePosition());// positions.getEyePosition().getDeviation(lastPositions.getEyePosition()); + if (deviation != DeviationScanner.NONE) { + System.out.println("deviation=" + deviationScanner.toStringDeviation(deviation)); + // notifyEyeMovementListenerEyeMoved(deviation); + } + // } lastPositions = positions; }