]> granicus.if.org Git - postgis/commitdiff
Inline 2D squared distance.
authorDarafei Praliaskouski <me@komzpa.net>
Thu, 6 Sep 2018 18:16:18 +0000 (18:16 +0000)
committerDarafei Praliaskouski <me@komzpa.net>
Thu, 6 Sep 2018 18:16:18 +0000 (18:16 +0000)
This allows loops with distance2d_sqr_pt_pt to be optimized better.

Closes https://github.com/postgis/postgis/pull/290

git-svn-id: http://svn.osgeo.org/postgis/trunk@16715 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/liblwgeom.h.in
liblwgeom/measures.c

index 0291c1b2b568dca84f0406c977d15f961568b69e..457b574747b5a0b6801aac609c33e281b6daf65a 100644 (file)
@@ -1179,7 +1179,16 @@ extern float  next_float_up(double d);
 
 /* general utilities 2D */
 extern double  distance2d_pt_pt(const POINT2D *p1, const POINT2D *p2);
-extern double  distance2d_sqr_pt_pt(const POINT2D *p1, const POINT2D *p2);
+
+inline static double
+distance2d_sqr_pt_pt(const POINT2D *p1, const POINT2D *p2)
+{
+       double hside = p2->x - p1->x;
+       double vside = p2->y - p1->y;
+
+       return hside * hside + vside * vside;
+}
+
 extern double  distance2d_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B);
 extern double  distance2d_sqr_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B);
 extern LWGEOM* lwgeom_closest_line(const LWGEOM *lw1, const LWGEOM *lw2);
index a570102b99bd3bba14717221a10e0ca9101ef0cd..1349d4ea76d7fca94ccecc71a780ebe098f73f90 100644 (file)
@@ -2318,15 +2318,6 @@ distance2d_pt_pt(const POINT2D *p1, const POINT2D *p2)
        return hypot(hside, vside);
 }
 
-inline double
-distance2d_sqr_pt_pt(const POINT2D *p1, const POINT2D *p2)
-{
-       double hside = p2->x - p1->x;
-       double vside = p2->y - p1->y;
-
-       return hside * hside + vside * vside;
-}
-
 double
 distance2d_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B)
 {