You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by yo...@apache.org on 2009/11/17 18:05:40 UTC
svn commit: r881378 -
/lucene/solr/trunk/src/java/org/apache/solr/search/function/distance/DistanceUtils.java
Author: yonik
Date: Tue Nov 17 17:05:40 2009
New Revision: 881378
URL: http://svn.apache.org/viewvc?rev=881378&view=rev
Log:
minor optimization, replace /2 with *.5 - multiplication is an order of magnitude faster than division
Modified:
lucene/solr/trunk/src/java/org/apache/solr/search/function/distance/DistanceUtils.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/function/distance/DistanceUtils.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/function/distance/DistanceUtils.java?rev=881378&r1=881377&r2=881378&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/function/distance/DistanceUtils.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/function/distance/DistanceUtils.java Tue Nov 17 17:05:40 2009
@@ -37,8 +37,8 @@
if ((x1 != x2) || (y1 != y2)) {
double diffX = x1 - x2;
double diffY = y1 - y2;
- double hsinX = Math.sin(diffX / 2);
- double hsinY = Math.sin(diffY / 2);
+ double hsinX = Math.sin(diffX * 0.5);
+ double hsinY = Math.sin(diffY * 0.5);
double h = hsinX * hsinX +
(Math.cos(x1) * Math.cos(x2) * hsinY * hsinY);
result = (radius * 2 * Math.atan2(Math.sqrt(h), Math.sqrt(1 - h)));