Index: trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java	(revision 10914)
+++ trunk/src/org/openstreetmap/josm/data/coor/EastNorth.java	(revision 10915)
@@ -82,6 +82,7 @@
      */
     public EastNorth interpolate(EastNorth en2, double proportion) {
-        return new EastNorth(this.x + proportion * (en2.x - this.x),
-                this.y + proportion * (en2.y - this.y));
+        // this is an alternate form of this.x + proportion * (en2.x - this.x) that is slightly faster
+        return new EastNorth((1 - proportion) * this.x + proportion * en2.x,
+                (1 - proportion) * this.y + proportion * en2.y);
     }
 
@@ -92,5 +93,6 @@
      */
     public EastNorth getCenter(EastNorth en2) {
-        return new EastNorth((this.x + en2.x)/2.0, (this.y + en2.y)/2.0);
+        // The JIT will inline this for us, it is as fast as the normal /2 approach
+        return interpolate(en2, .5);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/coor/LatLon.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 10914)
+++ trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 10915)
@@ -427,6 +427,7 @@
      */
     public LatLon interpolate(LatLon ll2, double proportion) {
-        return new LatLon(this.lat() + proportion * (ll2.lat() - this.lat()),
-                this.lon() + proportion * (ll2.lon() - this.lon()));
+        // this is an alternate form of this.lat() + proportion * (ll2.lat() - this.lat()) that is slightly faster
+        return new LatLon((1 - proportion) * this.lat() + proportion * ll2.lat(),
+                (1 - proportion) * this.lon() + proportion * ll2.lon());
     }
 
@@ -437,4 +438,5 @@
      */
     public LatLon getCenter(LatLon ll2) {
+        // The JIT will inline this for us, it is as fast as the normal /2 approach
         return interpolate(ll2, .5);
     }
