[Groonga-commit] groonga/groonga [master] remove duplicated codes.

Back to archive index

null+****@clear***** null+****@clear*****
2010年 8月 11日 (水) 15:43:35 JST


Kouhei Sutou	2010-08-11 06:43:35 +0000 (Wed, 11 Aug 2010)

  New Revision: 2090b4dddc256b909aa6f1d2855566f5094d574b

  Log:
    remove duplicated codes.

  Modified files:
    lib/geo.c

  Modified: lib/geo.c (+15 -15)
===================================================================
--- lib/geo.c    2010-08-11 06:37:53 +0000 (c01008c)
+++ lib/geo.c    2010-08-11 06:43:35 +0000 (d5a1c95)
@@ -513,34 +513,34 @@ grn_geo_search(grn_ctx *ctx, grn_obj *obj, grn_obj **args, int nargs,
   lat1 = GRN_GEO_INT2RAD(geo_point1->latitude);
   switch (pos2->header.domain) {
   case GRN_DB_INT32 :
-    d = GRN_INT32_VALUE(pos2);
-    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d / GRN_GEO_RADIUS);
+    d = GRN_INT32_VALUE(pos2) / (double)GRN_GEO_RADIUS;
+    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d);
     geo_point2.longitude = geo_point1->longitude;
-    d = (d / GRN_GEO_RADIUS) * (d / GRN_GEO_RADIUS);
+    d = d * d;
     break;
   case GRN_DB_UINT32 :
-    d = GRN_UINT32_VALUE(pos2);
-    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d / GRN_GEO_RADIUS);
+    d = GRN_UINT32_VALUE(pos2) / (double)GRN_GEO_RADIUS;
+    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d);
     geo_point2.longitude = geo_point1->longitude;
-    d = (d / GRN_GEO_RADIUS) * (d / GRN_GEO_RADIUS);
+    d = (d) * (d);
     break;
   case GRN_DB_INT64 :
-    d = GRN_INT64_VALUE(pos2);
-    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d / GRN_GEO_RADIUS);
+    d = GRN_INT64_VALUE(pos2) / (double)GRN_GEO_RADIUS;
+    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d);
     geo_point2.longitude = geo_point1->longitude;
-    d = (d / GRN_GEO_RADIUS) * (d / GRN_GEO_RADIUS);
+    d = d * d;
     break;
   case GRN_DB_UINT64 :
-    d = GRN_UINT64_VALUE(pos2);
-    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d / GRN_GEO_RADIUS);
+    d = GRN_UINT64_VALUE(pos2) / (double)GRN_GEO_RADIUS;
+    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d);
     geo_point2.longitude = geo_point1->longitude;
-    d = (d / GRN_GEO_RADIUS) * (d / GRN_GEO_RADIUS);
+    d = d * d;
     break;
   case GRN_DB_FLOAT :
-    d = GRN_FLOAT_VALUE(pos2);
-    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d / GRN_GEO_RADIUS);
+    d = GRN_FLOAT_VALUE(pos2) / (double)GRN_GEO_RADIUS;
+    geo_point2.latitude = geo_point1->latitude + GRN_GEO_RAD2INT(d);
     geo_point2.longitude = geo_point1->longitude;
-    d = (d / GRN_GEO_RADIUS) * (d / GRN_GEO_RADIUS);
+    d = d * d;
     break;
   case GRN_DB_SHORT_TEXT :
   case GRN_DB_TEXT :




Groonga-commit メーリングリストの案内
Back to archive index