Change macros to use capitalised names, as per standard C convention. This means it is possible at a glance to determine what is a macro and what is a function.

git-svn-id: http://svn.osgeo.org/postgis/trunk@4517 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Mark Cave-Ayland 2009-09-21 10:50:00 +00:00
parent d081062b48
commit 3e5b57ed72

View file

@ -103,23 +103,23 @@ Datum geography_overlaps(PG_FUNCTION_ARGS);
*/ */
/* Returns number of dimensions for this GIDX */ /* Returns number of dimensions for this GIDX */
#define gidx_ndims(gidx) ((VARSIZE((gidx)) - VARHDRSZ) / (2 * sizeof(float))) #define GIDX_NDIMS(gidx) ((VARSIZE((gidx)) - VARHDRSZ) / (2 * sizeof(float)))
/* Minimum accessor. */ /* Minimum accessor. */
#define gidx_get_min(gidx, dimension) ((gidx)->c[2*(dimension)]) #define GIDX_GET_MIN(gidx, dimension) ((gidx)->c[2*(dimension)])
/* Maximum accessor. */ /* Maximum accessor. */
#define gidx_get_max(gidx, dimension) ((gidx)->c[2*(dimension)+1]) #define GIDX_GET_MAX(gidx, dimension) ((gidx)->c[2*(dimension)+1])
/* Minimum setter. */ /* Minimum setter. */
#define gidx_set_min(gidx, dimension, value) ((gidx)->c[2*(dimension)] = (value)) #define GIDX_SET_MIN(gidx, dimension, value) ((gidx)->c[2*(dimension)] = (value))
/* Maximum setter. */ /* Maximum setter. */
#define gidx_set_max(gidx, dimension, value) ((gidx)->c[2*(dimension)+1] = (value)) #define GIDX_SET_MAX(gidx, dimension, value) ((gidx)->c[2*(dimension)+1] = (value))
/* Returns the size required to store a GIDX of requested dimension */ /* Returns the size required to store a GIDX of requested dimension */
#define gidx_size(dimensions) (sizeof(int32) + 2*(dimensions)*sizeof(float)) #define GIDX_SIZE(dimensions) (sizeof(int32) + 2*(dimensions)*sizeof(float))
/* Allocates a new GIDX on the heap of the requested dimensionality */ /* Allocates a new GIDX on the heap of the requested dimensionality */
static GIDX* gidx_new(int ndims) static GIDX* gidx_new(int ndims)
{ {
size_t size = gidx_size(ndims); size_t size = GIDX_SIZE(ndims);
GIDX *g = (GIDX*)palloc(size); GIDX *g = (GIDX*)palloc(size);
POSTGIS_DEBUGF(5,"created new gidx of %d dimensions, size %d", ndims, (int)size); POSTGIS_DEBUGF(5,"created new gidx of %d dimensions, size %d", ndims, (int)size);
SET_VARSIZE(g, size); SET_VARSIZE(g, size);
@ -138,14 +138,14 @@ static char* gidx_to_string(GIDX *a)
str = (char*)palloc(128); str = (char*)palloc(128);
rv = str; rv = str;
ndims = gidx_ndims(a); ndims = GIDX_NDIMS(a);
str += sprintf(str, "GIDX("); str += sprintf(str, "GIDX(");
for ( i = 0; i < ndims; i++ ) for ( i = 0; i < ndims; i++ )
str += sprintf(str, " %.12g", gidx_get_min(a,i)); str += sprintf(str, " %.12g", GIDX_GET_MIN(a,i));
str += sprintf(str, ","); str += sprintf(str, ",");
for ( i = 0; i < ndims; i++ ) for ( i = 0; i < ndims; i++ )
str += sprintf(str, " %.12g", gidx_get_max(a,i)); str += sprintf(str, " %.12g", GIDX_GET_MAX(a,i));
str += sprintf(str, " )"); str += sprintf(str, " )");
return rv; return rv;
@ -167,14 +167,14 @@ static inline void gidx_validate(GIDX *b)
int i; int i;
Assert(b); Assert(b);
POSTGIS_DEBUGF(5,"validating gidx (%s)", gidx_to_string(b)); POSTGIS_DEBUGF(5,"validating gidx (%s)", gidx_to_string(b));
for( i = 0; i < gidx_ndims(b); i++ ) for( i = 0; i < GIDX_NDIMS(b); i++ )
{ {
if( gidx_get_min(b,i) > gidx_get_max(b,i) ) if( GIDX_GET_MIN(b,i) > GIDX_GET_MAX(b,i) )
{ {
float tmp; float tmp;
tmp = gidx_get_min(b,i); tmp = GIDX_GET_MIN(b,i);
gidx_set_min(b,i,gidx_get_max(b,i)); GIDX_SET_MIN(b,i,GIDX_GET_MAX(b,i));
gidx_set_max(b,i,tmp); GIDX_SET_MAX(b,i,tmp);
} }
} }
return; return;
@ -189,15 +189,15 @@ static void gidx_merge(GIDX **b_union, GIDX *b_new)
Assert(*b_union); Assert(*b_union);
Assert(b_new); Assert(b_new);
dims_union = gidx_ndims(*b_union); dims_union = GIDX_NDIMS(*b_union);
dims_new = gidx_ndims(b_new); dims_new = GIDX_NDIMS(b_new);
POSTGIS_DEBUGF(4, "merging gidx (%s) into gidx (%s)", gidx_to_string(b_new), gidx_to_string(*b_union)); POSTGIS_DEBUGF(4, "merging gidx (%s) into gidx (%s)", gidx_to_string(b_new), gidx_to_string(*b_union));
if( dims_new > dims_union ) if( dims_new > dims_union )
{ {
POSTGIS_DEBUGF(5, "reallocating b_union from %d dims to %d dims", dims_union, dims_new); POSTGIS_DEBUGF(5, "reallocating b_union from %d dims to %d dims", dims_union, dims_new);
*b_union = (GIDX*)repalloc(*b_union, gidx_size(dims_new)); *b_union = (GIDX*)repalloc(*b_union, GIDX_SIZE(dims_new));
SET_VARSIZE(*b_union, VARSIZE(b_new)); SET_VARSIZE(*b_union, VARSIZE(b_new));
dims_union = dims_new; dims_union = dims_new;
} }
@ -205,9 +205,9 @@ static void gidx_merge(GIDX **b_union, GIDX *b_new)
for( i = 0; i < dims_new; i++ ) for( i = 0; i < dims_new; i++ )
{ {
/* Adjust minimums */ /* Adjust minimums */
gidx_set_min(*b_union, i, Min(gidx_get_min(*b_union,i),gidx_get_min(b_new,i))); GIDX_SET_MIN(*b_union, i, Min(GIDX_GET_MIN(*b_union,i),GIDX_GET_MIN(b_new,i)));
/* Adjust maximums */ /* Adjust maximums */
gidx_set_max(*b_union, i, Max(gidx_get_max(*b_union,i),gidx_get_max(b_new,i))); GIDX_SET_MAX(*b_union, i, Max(GIDX_GET_MAX(*b_union,i),GIDX_GET_MAX(b_new,i)));
} }
POSTGIS_DEBUGF(5, "merge complete (%s)", gidx_to_string(*b_union)); POSTGIS_DEBUGF(5, "merge complete (%s)", gidx_to_string(*b_union));
@ -224,9 +224,9 @@ static float gidx_volume(GIDX *a)
elog(ERROR, "gidx_volume received a null argument"); elog(ERROR, "gidx_volume received a null argument");
return 0.0; return 0.0;
} }
result = gidx_get_max(a,0) - gidx_get_min(a,0); result = GIDX_GET_MAX(a,0) - GIDX_GET_MIN(a,0);
for( i = 1; i < gidx_ndims(a); i++ ) for( i = 1; i < GIDX_NDIMS(a); i++ )
result *= (gidx_get_max(a,i) - gidx_get_min(a,i)); result *= (GIDX_GET_MAX(a,i) - GIDX_GET_MIN(a,i));
POSTGIS_DEBUGF(5, "calculated volume of %s as %.12g", gidx_to_string(a), result); POSTGIS_DEBUGF(5, "calculated volume of %s as %.12g", gidx_to_string(a), result);
return result; return result;
} }
@ -234,7 +234,7 @@ static float gidx_volume(GIDX *a)
/* Ensure the first argument has the higher dimensionality. */ /* Ensure the first argument has the higher dimensionality. */
static void gidx_dimensionality_check(GIDX **a, GIDX **b) static void gidx_dimensionality_check(GIDX **a, GIDX **b)
{ {
if( gidx_ndims(*a) < gidx_ndims(*b) ) if( GIDX_NDIMS(*a) < GIDX_NDIMS(*b) )
{ {
GIDX *tmp = *b; GIDX *tmp = *b;
*b = *a; *b = *a;
@ -265,22 +265,22 @@ static float gidx_union_volume(GIDX *a, GIDX *b)
/* Ensure 'a' has the most dimensions. */ /* Ensure 'a' has the most dimensions. */
gidx_dimensionality_check(&a, &b); gidx_dimensionality_check(&a, &b);
ndims_a = gidx_ndims(a); ndims_a = GIDX_NDIMS(a);
ndims_b = gidx_ndims(b); ndims_b = GIDX_NDIMS(b);
/* Initialize with maximal length of first dimension. */ /* Initialize with maximal length of first dimension. */
result = Max(gidx_get_max(a,0),gidx_get_max(b,0)) - Min(gidx_get_min(a,0),gidx_get_min(b,0)); result = Max(GIDX_GET_MAX(a,0),GIDX_GET_MAX(b,0)) - Min(GIDX_GET_MIN(a,0),GIDX_GET_MIN(b,0));
/* Multiply by maximal length of remaining dimensions. */ /* Multiply by maximal length of remaining dimensions. */
for( i = 1; i < ndims_b; i++ ) for( i = 1; i < ndims_b; i++ )
{ {
result *= (Max(gidx_get_max(a,i),gidx_get_max(b,i)) - Min(gidx_get_min(a,i),gidx_get_min(b,i))); result *= (Max(GIDX_GET_MAX(a,i),GIDX_GET_MAX(b,i)) - Min(GIDX_GET_MIN(a,i),GIDX_GET_MIN(b,i)));
} }
/* Add in dimensions of higher dimensional box. */ /* Add in dimensions of higher dimensional box. */
for( i = ndims_b; i < ndims_a; i++ ) for( i = ndims_b; i < ndims_a; i++ )
{ {
result *= (gidx_get_max(a,i) - gidx_get_min(a,i)); result *= (GIDX_GET_MAX(a,i) - GIDX_GET_MIN(a,i));
} }
POSTGIS_DEBUGF(5, "volume( %s union %s ) = %.12g", gidx_to_string(a), gidx_to_string(b), result); POSTGIS_DEBUGF(5, "volume( %s union %s ) = %.12g", gidx_to_string(a), gidx_to_string(b), result);
@ -306,15 +306,15 @@ static float gidx_inter_volume(GIDX *a, GIDX *b)
gidx_dimensionality_check(&a, &b); gidx_dimensionality_check(&a, &b);
/* Initialize with minimal length of first dimension. */ /* Initialize with minimal length of first dimension. */
result = Min(gidx_get_max(a,0),gidx_get_max(b,0)) - Max(gidx_get_min(a,0),gidx_get_min(b,0)); result = Min(GIDX_GET_MAX(a,0),GIDX_GET_MAX(b,0)) - Max(GIDX_GET_MIN(a,0),GIDX_GET_MIN(b,0));
/* If they are disjoint (max < min) then return zero. */ /* If they are disjoint (max < min) then return zero. */
if ( result < 0.0 ) return 0.0; if ( result < 0.0 ) return 0.0;
/* Continue for remaining dimensions. */ /* Continue for remaining dimensions. */
for( i = 1; i < gidx_ndims(b); i++ ) for( i = 1; i < GIDX_NDIMS(b); i++ )
{ {
float width = Min(gidx_get_max(a,i),gidx_get_max(b,i)) - Max(gidx_get_min(a,i),gidx_get_min(b,i)); float width = Min(GIDX_GET_MAX(a,i),GIDX_GET_MAX(b,i)) - Max(GIDX_GET_MIN(a,i),GIDX_GET_MIN(b,i));
if ( width < 0.0 ) return 0.0; if ( width < 0.0 ) return 0.0;
/* Multiply by minimal length of remaining dimensions. */ /* Multiply by minimal length of remaining dimensions. */
result *= width; result *= width;
@ -338,35 +338,35 @@ static int gidx_from_gbox_p(GBOX *box, GIDX *a)
ndims = (FLAGS_GET_GEODETIC(box->flags) ? 3 : FLAGS_NDIMS(box->flags)); ndims = (FLAGS_GET_GEODETIC(box->flags) ? 3 : FLAGS_NDIMS(box->flags));
SET_VARSIZE(a, VARHDRSZ + ndims * 2 * sizeof(float)); SET_VARSIZE(a, VARHDRSZ + ndims * 2 * sizeof(float));
gidx_set_min(a,0,nextDown_f(box->xmin)); GIDX_SET_MIN(a,0,nextDown_f(box->xmin));
gidx_set_max(a,0,nextUp_f(box->xmax)); GIDX_SET_MAX(a,0,nextUp_f(box->xmax));
gidx_set_min(a,1,nextDown_f(box->ymin)); GIDX_SET_MIN(a,1,nextDown_f(box->ymin));
gidx_set_max(a,1,nextUp_f(box->ymax)); GIDX_SET_MAX(a,1,nextUp_f(box->ymax));
/* Geodetic indexes are always 3d, geocentric x/y/z */ /* Geodetic indexes are always 3d, geocentric x/y/z */
if ( FLAGS_GET_GEODETIC(box->flags) ) if ( FLAGS_GET_GEODETIC(box->flags) )
{ {
gidx_set_min(a,2,nextDown_f(box->zmin)); GIDX_SET_MIN(a,2,nextDown_f(box->zmin));
gidx_set_max(a,2,nextUp_f(box->zmax)); GIDX_SET_MAX(a,2,nextUp_f(box->zmax));
} }
else else
{ {
/* Cartesian with Z implies Z is third dimension */ /* Cartesian with Z implies Z is third dimension */
if ( FLAGS_GET_Z(box->flags) ) if ( FLAGS_GET_Z(box->flags) )
{ {
gidx_set_min(a,2,nextDown_f(box->zmin)); GIDX_SET_MIN(a,2,nextDown_f(box->zmin));
gidx_set_max(a,2,nextUp_f(box->zmax)); GIDX_SET_MAX(a,2,nextUp_f(box->zmax));
if ( FLAGS_GET_M(box->flags) ) if ( FLAGS_GET_M(box->flags) )
{ {
gidx_set_min(a,3,nextDown_f(box->mmin)); GIDX_SET_MIN(a,3,nextDown_f(box->mmin));
gidx_set_max(a,3,nextUp_f(box->mmax)); GIDX_SET_MAX(a,3,nextUp_f(box->mmax));
} }
} }
/* Unless there's no Z, in which case M is third dimension */ /* Unless there's no Z, in which case M is third dimension */
else if ( FLAGS_GET_M(box->flags) ) else if ( FLAGS_GET_M(box->flags) )
{ {
gidx_set_min(a,2,nextDown_f(box->mmin)); GIDX_SET_MIN(a,2,nextDown_f(box->mmin));
gidx_set_max(a,2,nextUp_f(box->mmax)); GIDX_SET_MAX(a,2,nextUp_f(box->mmax));
} }
} }
@ -407,23 +407,23 @@ static bool gidx_overlaps(GIDX *a, GIDX *b)
/* Ensure 'a' has the most dimensions. */ /* Ensure 'a' has the most dimensions. */
gidx_dimensionality_check(&a, &b); gidx_dimensionality_check(&a, &b);
ndims_b = gidx_ndims(b); ndims_b = GIDX_NDIMS(b);
/* compare within the dimensions of (b) */ /* compare within the dimensions of (b) */
for( i = 0; i < ndims_b; i++ ) for( i = 0; i < ndims_b; i++ )
{ {
if( gidx_get_min(a,i) > gidx_get_max(b,i) ) if( GIDX_GET_MIN(a,i) > GIDX_GET_MAX(b,i) )
return FALSE; return FALSE;
if( gidx_get_min(b,i) > gidx_get_max(a,i) ) if( GIDX_GET_MIN(b,i) > GIDX_GET_MAX(a,i) )
return FALSE; return FALSE;
} }
/* compare to zero those dimensions in (a) absent in (b) */ /* compare to zero those dimensions in (a) absent in (b) */
for( i = ndims_b; i < gidx_ndims(a); i++ ) for( i = ndims_b; i < GIDX_NDIMS(a); i++ )
{ {
if( gidx_get_min(a,i) > 0.0 ) if( GIDX_GET_MIN(a,i) > 0.0 )
return FALSE; return FALSE;
if( gidx_get_max(a,i) < 0.0 ) if( GIDX_GET_MAX(a,i) < 0.0 )
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
@ -442,8 +442,8 @@ static bool gidx_contains(GIDX *a, GIDX *b)
if( (a == NULL) || (b == NULL) ) return FALSE; if( (a == NULL) || (b == NULL) ) return FALSE;
dims_a = gidx_ndims(a); dims_a = GIDX_NDIMS(a);
dims_b = gidx_ndims(b); dims_b = GIDX_NDIMS(b);
if( dims_a < dims_b ) if( dims_a < dims_b )
{ {
@ -453,9 +453,9 @@ static bool gidx_contains(GIDX *a, GIDX *b)
*/ */
for (i = dims_a; i < dims_b; i++) for (i = dims_a; i < dims_b; i++)
{ {
if( gidx_get_min(b,i) != 0 ) if( GIDX_GET_MIN(b,i) != 0 )
return FALSE; return FALSE;
if( gidx_get_max(b,i) != 0 ) if( GIDX_GET_MAX(b,i) != 0 )
return FALSE; return FALSE;
} }
} }
@ -463,9 +463,9 @@ static bool gidx_contains(GIDX *a, GIDX *b)
/* Excess dimensions of (a), don't matter, it just has to contain (b) in (b)'s dimensions */ /* Excess dimensions of (a), don't matter, it just has to contain (b) in (b)'s dimensions */
for (i = 0; i < Min(dims_a, dims_b); i++) for (i = 0; i < Min(dims_a, dims_b); i++)
{ {
if ( gidx_get_min(a,i) > gidx_get_min(b,i) ) if ( GIDX_GET_MIN(a,i) > GIDX_GET_MIN(b,i) )
return FALSE; return FALSE;
if ( gidx_get_max(a,i) < gidx_get_max(b,i) ) if ( GIDX_GET_MAX(a,i) < GIDX_GET_MAX(b,i) )
return FALSE; return FALSE;
} }
@ -489,19 +489,19 @@ static bool gidx_equals(GIDX *a, GIDX *b)
gidx_dimensionality_check(&a, &b); gidx_dimensionality_check(&a, &b);
/* For all shared dimensions min(a) == min(b), max(a) == max(b) */ /* For all shared dimensions min(a) == min(b), max(a) == max(b) */
for (i = 0; i < gidx_ndims(b); i++) for (i = 0; i < GIDX_NDIMS(b); i++)
{ {
if ( gidx_get_min(a,i) != gidx_get_min(b,i) ) if ( GIDX_GET_MIN(a,i) != GIDX_GET_MIN(b,i) )
return FALSE; return FALSE;
if ( gidx_get_max(a,i) != gidx_get_max(b,i) ) if ( GIDX_GET_MAX(a,i) != GIDX_GET_MAX(b,i) )
return FALSE; return FALSE;
} }
/* For all unshared dimensions min(a) == 0.0, max(a) == 0.0 */ /* For all unshared dimensions min(a) == 0.0, max(a) == 0.0 */
for (i = gidx_ndims(b); i < gidx_ndims(a); i++) for (i = GIDX_NDIMS(b); i < GIDX_NDIMS(a); i++)
{ {
if ( gidx_get_min(a,i) != 0.0 ) if ( GIDX_GET_MIN(a,i) != 0.0 )
return FALSE; return FALSE;
if ( gidx_get_max(a,i) != 0.0 ) if ( GIDX_GET_MAX(a,i) != 0.0 )
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
@ -640,9 +640,9 @@ Datum geography_gist_compress(PG_FUNCTION_ARGS)
POSTGIS_DEBUGF(4, "[GIST] got entry_in->key: %s", gidx_to_string(bbox_out)); POSTGIS_DEBUGF(4, "[GIST] got entry_in->key: %s", gidx_to_string(bbox_out));
/* Check all the dimensions for finite values */ /* Check all the dimensions for finite values */
for( i = 0; i < gidx_ndims(bbox_out); i++ ) for( i = 0; i < GIDX_NDIMS(bbox_out); i++ )
{ {
if( ! finite(gidx_get_max(bbox_out, i)) || ! finite(gidx_get_min(bbox_out, i)) ) if( ! finite(GIDX_GET_MAX(bbox_out, i)) || ! finite(GIDX_GET_MIN(bbox_out, i)) )
{ {
POSTGIS_DEBUG(4, "[GIST] infinite geometry!"); POSTGIS_DEBUG(4, "[GIST] infinite geometry!");
PG_RETURN_POINTER(entry_in); PG_RETURN_POINTER(entry_in);
@ -1145,7 +1145,7 @@ Datum geography_gist_picksplit(PG_FUNCTION_ARGS)
/* Initialize memory structures. */ /* Initialize memory structures. */
nbytes = (max_offset + 2) * sizeof(OffsetNumber); nbytes = (max_offset + 2) * sizeof(OffsetNumber);
ndims_pageunion = gidx_ndims(box_pageunion); ndims_pageunion = GIDX_NDIMS(box_pageunion);
pos = palloc(2*ndims_pageunion * sizeof(int)); pos = palloc(2*ndims_pageunion * sizeof(int));
list = palloc(2*ndims_pageunion * sizeof(OffsetNumber*)); list = palloc(2*ndims_pageunion * sizeof(OffsetNumber*));
box_union = palloc(2*ndims_pageunion * sizeof(GIDX*)); box_union = palloc(2*ndims_pageunion * sizeof(GIDX*));
@ -1171,7 +1171,7 @@ Datum geography_gist_picksplit(PG_FUNCTION_ARGS)
for ( d = 0; d < ndims_pageunion; d++ ) for ( d = 0; d < ndims_pageunion; d++ )
{ {
if( gidx_get_min(box_current,d)-gidx_get_min(box_pageunion,d) < gidx_get_max(box_pageunion,d)-gidx_get_max(box_current,d) ) if( GIDX_GET_MIN(box_current,d)-GIDX_GET_MIN(box_pageunion,d) < GIDX_GET_MAX(box_pageunion,d)-GIDX_GET_MAX(box_current,d) )
{ {
geography_gist_picksplit_addlist(list[BELOW(d)], &(box_union[BELOW(d)]), box_current, &(pos[BELOW(d)]), i); geography_gist_picksplit_addlist(list[BELOW(d)], &(box_union[BELOW(d)]), box_current, &(pos[BELOW(d)]), i);
} }
@ -1211,7 +1211,7 @@ Datum geography_gist_picksplit(PG_FUNCTION_ARGS)
box_current = (GIDX*) DatumGetPointer(entryvec->vector[i].key); box_current = (GIDX*) DatumGetPointer(entryvec->vector[i].key);
for( d = 0; d < ndims_pageunion; d++ ) for( d = 0; d < ndims_pageunion; d++ )
{ {
avgCenter[d] += (gidx_get_max(box_current,d) + gidx_get_min(box_current,d)) / 2.0; avgCenter[d] += (GIDX_GET_MAX(box_current,d) + GIDX_GET_MIN(box_current,d)) / 2.0;
} }
} }
for( d = 0; d < ndims_pageunion; d++ ) for( d = 0; d < ndims_pageunion; d++ )
@ -1229,7 +1229,7 @@ Datum geography_gist_picksplit(PG_FUNCTION_ARGS)
for( d = 0; d < ndims_pageunion; d++ ) for( d = 0; d < ndims_pageunion; d++ )
{ {
center = (gidx_get_min(box_current,d)+gidx_get_max(box_current,d))/2.0; center = (GIDX_GET_MIN(box_current,d)+GIDX_GET_MAX(box_current,d))/2.0;
if( center < avgCenter[d] ) if( center < avgCenter[d] )
geography_gist_picksplit_addlist(list[BELOW(d)], &(box_union[BELOW(d)]), box_current, &(pos[BELOW(d)]), i); geography_gist_picksplit_addlist(list[BELOW(d)], &(box_union[BELOW(d)]), box_current, &(pos[BELOW(d)]), i);
else if( FPeq(center, avgCenter[d]) ) else if( FPeq(center, avgCenter[d]) )