public class ComputeMap implements Runnable { private Map mymap; private DrawIterate mydraw; private BifurcateApplet myapp; private double a1 = 0.0, a2 = 4.0; ComputeMap (Map mref, DrawIterate dref, BifurcateApplet bref) { mymap = mref; mydraw = dref; myapp = bref; } public void run () { double avalue, incr; int number = 100; int WARM = 500; int i, j; int ITERATE = 32; double iter[]; iter = new double[ITERATE]; while (true) { myapp.runner.suspend (); mydraw.clearScreen (); incr = (a2 - a1) / number; for (i = 0; i <= number; i++) { avalue = a1 + i * incr; mymap.setA (avalue); mymap.setX (0.1); for (j = 0; j < WARM; j++) mymap.iterate (); for (j = 0; j < ITERATE; j++) { mymap.iterate (); mydraw.addPoints (avalue, mymap.getX ()); } try { Thread.sleep (10); } catch (InterruptedException e) { } } } } public void setA1 (double z) { a1 = z; return; } public void setA2 (double z) { a2 = z; return; } public double getA1 () { return (a1); } public double getA2 () { return (a2); } }