PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ nd_stats_value_index()

static int nd_stats_value_index ( const ND_STATS stats,
int *  indexes 
)
static

Given a position in the n-d histogram (i,j,k) return the position in the 1-d values array.

Definition at line 409 of file gserialized_estimate.c.

410{
411 int d;
412 int accum = 1, vdx = 0;
413
414 /* Calculate the index into the 1-d values array that the (i,j,k,l) */
415 /* n-d histogram coordinate implies. */
416 /* index = x + y * sizex + z * sizex * sizey + m * sizex * sizey * sizez */
417 for ( d = 0; d < (int)(stats->ndims); d++ )
418 {
419 int size = (int)(stats->size[d]);
420 if ( indexes[d] < 0 || indexes[d] >= size )
421 {
422 POSTGIS_DEBUGF(3, " bad index at (%d, %d)", indexes[0], indexes[1]);
423 return -1;
424 }
425 vdx += indexes[d] * accum;
426 accum *= size;
427 }
428 return vdx;
429}
float4 size[ND_DIMS]

References ND_STATS_T::ndims, and ND_STATS_T::size.

Referenced by compute_gserialized_stats_mode(), estimate_join_selectivity(), and estimate_selectivity().

Here is the caller graph for this function: