1177 GISTENTRY *origentry = (GISTENTRY *)PG_GETARG_POINTER(0);
1178 GISTENTRY *newentry = (GISTENTRY *)PG_GETARG_POINTER(1);
1179 float *result = (
float *)PG_GETARG_POINTER(2);
1180 GIDX *gbox_index_orig, *gbox_index_new;
1182 gbox_index_orig = (GIDX *)DatumGetPointer(origentry->key);
1183 gbox_index_new = (GIDX *)DatumGetPointer(newentry->key);
1192 if (gbox_index_orig && gbox_index_new)
1197 float volume_extension = size_union - size_orig;
1200 if (volume_extension > FLT_EPSILON)
1206 float edge_orig =
gidx_edge(gbox_index_orig);
1207 float edge_extension = edge_union - edge_orig;
1208 if (edge_extension > FLT_EPSILON)
1212 PG_RETURN_POINTER(result);
static float gidx_union_volume(GIDX *a, GIDX *b)
static float gidx_union_edge(GIDX *a, GIDX *b)
static float gidx_volume(GIDX *a)
static float gidx_edge(GIDX *a)
static float pack_float(const float value, const uint8_t realm)