Re: Small doc patch for area() function... - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: Small doc patch for area() function...
Date
Msg-id 200406022138.i52LckI07263@candle.pha.pa.us
Whole thread Raw
In response to Small doc patch for area() function...  (Sean Chittenden <sean@chittenden.org>)
List pgsql-patches
Doc patch applied.  The geometry diff you attached is related to
negative zeros.  I think you will find geometry_1.out will be a better
match for you. I thought our code now automatically picked the proper
geometry file.  However, I can't find out how that file is used.

---------------------------------------------------------------------------

Sean Chittenden wrote:
> Small patch that adds some documentation for the area() function.
> Specifically, point out that intersecting points in a path will yield
> (most likely), unexpected results.  Visually these are identical paths,
> but mathematically they're not the same.  Ex:
>
>   area |                                           plan
> ------
> +-----------------------------------------------------------------------
> -------------------
>     -0 | ((0,0),(0,1),(2,1),(2,2),(1,2),(1,0),(0,0))
>      2 | ((0,0),(0,1),(1,1),(1,2),(2,2),(2,1),(1,1),(1,0),(0,0))
>
> The current algorithm for area(PATH) is very quick, but only handles
> non-intersecting paths.  I'm going to work on two other functions for
> the PATH data type that determines if a PATH is intersecting or not,
> and a function that returns the area() for an intersecting PATH.  The
> intersecting area() function will be considerably slower (I think it's
> going to be O(n!) or worse instead of the current O(n), but that comes
> with the territory).
>
> -sc
>

[ Attachment, skipping... ]

>
>
>
> PS  Right now I'm developing on OS-X and there's a geometry regression
> test that's returning -0.  FWIW
>
> *** ./expected/geometry.out     Fri Oct 31 19:07:07 2003
> --- ./results/geometry.out      Thu May 27 22:16:58 2004
> ***************
> *** 117,123 ****
>            | (5.1,34.5) | [(1,2),(3,4)]                 | (3,4)
>            | (-5,-12)   | [(1,2),(3,4)]                 | (1,2)
>            | (10,10)    | [(1,2),(3,4)]                 | (3,4)
> !         | (0,0)      | [(0,0),(6,6)]                 | (-0,0)
>            | (-10,0)    | [(0,0),(6,6)]                 | (0,0)
>            | (-3,4)     | [(0,0),(6,6)]                 | (0.5,0.5)
>            | (5.1,34.5) | [(0,0),(6,6)]                 | (6,6)
> --- 117,123 ----
>            | (5.1,34.5) | [(1,2),(3,4)]                 | (3,4)
>            | (-5,-12)   | [(1,2),(3,4)]                 | (1,2)
>            | (10,10)    | [(1,2),(3,4)]                 | (3,4)
> !         | (0,0)      | [(0,0),(6,6)]                 | (0,0)
>            | (-10,0)    | [(0,0),(6,6)]                 | (0,0)
>            | (-3,4)     | [(0,0),(6,6)]                 | (0.5,0.5)
>            | (5.1,34.5) | [(0,0),(6,6)]                 | (6,6)
>
> ======================================================================
>
>
>
> --
> Sean Chittenden

>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Cancel/Kill backend functions
Next
From: "Laurent Ballester"
Date:
Subject: Re: eventlog fix