www.pudn.com > hull.zip > pointops.c
/* * Ken Clarkson wrote this. Copyright (c) 1995 by AT&T.. * Permission to use, copy, modify, and distribute this software for any * purpose without fee is hereby granted, provided that this entire notice * is included in all copies of any software which is or includes a copy * or modification of this software and in all copies of the supporting * documentation for such software. * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. */ #include#include #include #include #include #include "points.h" int pdim; /* point dimension */ #define NEARZERO(d) ((d) < FLT_EPSILON && (d) > -FLT_EPSILON) Coord maxdist(int dim, point p1, point p2) { Coord x,y, d = 0; int i = dim; while (i--) { x = *p1++; y = *p2++; d += (x 0) ? val: -val; max = (abs > max) ? abs : max; } if (max< 100*DBL_EPSILON) { fprintf(stderr, "fails to scale: "); print_point(stderr, dim,p);fflush(stderr); fprintf(stderr, "\n"); return 1; } for (i=0;i