| From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | pgsql-committers(at)postgresql(dot)org |
| Subject: | Re: pgsql: Tweak "line" test to avoid negative zeros on some platforms |
| Date: | 2013-10-25 19:19:46 |
| Message-ID: | 526AC452.9020501@gmx.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
On 10/25/13, 10:55 AM, Tom Lane wrote:
> diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
> index 25f0bfd..41178a6 100644
> --- a/src/backend/utils/adt/geo_ops.c
> +++ b/src/backend/utils/adt/geo_ops.c
> @@ -1116,6 +1116,9 @@ line_construct_pts(LINE *line, Point *pt1, Point *pt2)
> line->A = (pt2->y - pt1->y) / (pt2->x - pt1->x);
> line->B = -1.0;
> line->C = pt1->y - line->A * pt1->x;
> + /* on some platforms, the preceding expression tends to produce -0 */
> + if (line->C == 0.0)
> + line->C = 0.0;
> #ifdef GEODEBUG
> printf("line_construct_pts- line is neither vertical nor horizontal (diffs x=%.*g, y=%.*g\n",
> DBL_DIG, (pt2->x - pt1->x), DBL_DIG, (pt2->y - pt1->y));
>
>
> While this is surely pretty ugly, I think it is less ugly and more robust
> than what you've done here. Comments?
Hehe, if that work's, then yes, it's better.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2013-10-25 19:55:26 | pgsql: Revert "Tweak "line" test to avoid negative zeros on some platfo |
| Previous Message | Tom Lane | 2013-10-25 14:55:31 | Re: pgsql: Tweak "line" test to avoid negative zeros on some platforms |