Update of /cvsroot/freenet/freenet/src/freenet/node/rt
In directory sc8-pr-cvs1:/tmp/cvs-serv12082/src/freenet/node/rt

Modified Files:
      Tag: ngrouting
        ResponseTimeEstimator.java 
Log Message:
tweak


Index: ResponseTimeEstimator.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/node/rt/ResponseTimeEstimator.java,v
retrieving revision 1.4.2.21
retrieving revision 1.4.2.22
diff -u -r1.4.2.21 -r1.4.2.22
--- ResponseTimeEstimator.java  27 Aug 2003 01:08:44 -0000      1.4.2.21
+++ ResponseTimeEstimator.java  27 Aug 2003 01:27:41 -0000      1.4.2.22
@@ -301,6 +301,8 @@
     }
 
     static final BigDecimal DEC_ONE = new BigDecimal(1.0);
+    static final BigInteger THREE = BigInteger.valueOf(3);
+    static final BigInteger FOUR = BigInteger.valueOf(4);
     
     protected synchronized int reportDecreasing(BigInteger lowerBound,
                                                BigInteger upperBound,
@@ -355,12 +357,14 @@
             * Where R is the result, O is the old value, r is the sensitivity,
             * m is the shift multiplier
             */
+           // Multiply by 75% to prevent points from collapsing on each other
            BigDecimal fracDiff = new BigDecimal(diff);
            BigDecimal fracSens = new BigDecimal(sens);
            BigDecimal fracOrig = new BigDecimal(center);
            BigDecimal resultDiff = fracDiff.divide(fracSens.add(DEC_ONE),
                                                    BigDecimal.ROUND_DOWN);
            diff = resultDiff.toBigInteger().shiftRight(shiftAmount);
+           diff = diff.multiply(THREE).divide(FOUR);
            key[i] = key[i].subtract(diff);
            if(key[i].signum() == -1)
                key[i] = key[i].add(keyspace);
@@ -370,6 +374,7 @@
            double fracTimediff = (double)timediff;
            double resultTimediff = fracTimediff/(sens+1.0);
            timediff = ((int)resultTimediff) >> shiftAmount;
+           timediff = (timediff*3)/4;
            time[i] += timediff;
            Core.logger.log(this, "key["+i+"] now: "+key[i].toString(16)+
                            ","+time[i], Logger.DEBUG);
@@ -428,6 +433,7 @@
            BigDecimal resultDiff = fracDiff.divide(fracSens.add(DEC_ONE),
                                                    BigDecimal.ROUND_DOWN);
            diff = resultDiff.toBigInteger().shiftRight(shiftAmount);
+           diff = diff.multiply(THREE).divide(FOUR);
            key[i] = key[i].add(diff.shiftRight(shiftAmount));
            if(key[i].signum() == -1)
                key[i] = key[i].add(keyspace);
@@ -437,6 +443,7 @@
            double fracTimediff = (double)timediff;
            double resultTimediff = fracTimediff/(sens+1.0);
            timediff = ((int)resultTimediff) >> shiftAmount;
+           timediff = (timediff*3)/4;
            time[i] += timediff;
            Core.logger.log(this, "key["+i+"] now: "+key[i].toString(16)+
                            ","+time[i], Logger.DEBUG);

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to