Purpose of this document

This document analyses the subregions generated by the parallel CUHRE algorithm.

The integrand chosen is: \[ | \cos(4 v +5 w + 6 x +7 y + 8 z)/k |\] with \(k = 0s .6371054\). For this integrand, the normalization is approximate (meaning that the true value of the integrand is close to, but not exactly, 1.0).

The data recorded

df5 <- readRDS("df5.rds") %>%
  as_tibble() %>%
  mutate(vol = dim0 * dim1 * dim2 * dim3 * dim4)
df5
## # A tibble: 60,463,662 x 9
##       value    error   dim0   dim1   dim2   dim3   dim4   div           vol
##       <dbl>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl> <int>         <dbl>
##  1 5.26e- 9 7.24e-11 0.0312 0.0312 0.0312 0.0312 0.0156    11 0.0000000149 
##  2 1.70e-10 6.99e-11 0.0312 0.0156 0.0156 0.0156 0.0156    14 0.00000000186
##  3 1.19e- 8 1.09e-10 0.0312 0.0312 0.0312 0.0312 0.0312    10 0.0000000298 
##  4 5.09e-10 1.37e-10 0.0312 0.0312 0.0156 0.0156 0.0156    13 0.00000000373
##  5 4.59e- 9 1.28e-10 0.0312 0.0312 0.0312 0.0312 0.0156    11 0.0000000149 
##  6 1.52e- 9 1.35e-10 0.0312 0.0312 0.0312 0.0156 0.0156    12 0.00000000745
##  7 1.60e- 8 6.34e-12 0.0312 0.0312 0.0312 0.0312 0.0312    10 0.0000000298 
##  8 4.53e-10 5.12e-11 0.0312 0.0312 0.0156 0.0156 0.0156    13 0.00000000373
##  9 4.56e-10 8.09e-11 0.0312 0.0312 0.0156 0.0156 0.0156    13 0.00000000373
## 10 1.69e-10 8.32e-11 0.0312 0.0156 0.0156 0.0156 0.0156    14 0.00000000186
## # … with 60,463,652 more rows
summary(df5)
##      value               error                dim0               dim1         
##  Min.   :0.000e+00   Min.   :0.000e+00   Min.   :0.003906   Min.   :0.003906  
##  1st Qu.:4.000e-11   1st Qu.:1.641e-12   1st Qu.:0.015625   1st Qu.:0.015625  
##  Median :2.100e-10   Median :1.219e-11   Median :0.031250   Median :0.015625  
##  Mean   :1.653e-08   Mean   :2.799e-11   Mean   :0.024985   Mean   :0.021813  
##  3rd Qu.:8.100e-10   3rd Qu.:4.131e-11   3rd Qu.:0.031250   3rd Qu.:0.031250  
##  Max.   :4.227e-05   Max.   :8.140e-10   Max.   :0.125000   Max.   :0.125000  
##       dim2               dim3               dim4               div      
##  Min.   :0.003906   Min.   :0.003906   Min.   :0.003906   Min.   : 0.0  
##  1st Qu.:0.015625   1st Qu.:0.015625   1st Qu.:0.007812   1st Qu.:13.0  
##  Median :0.015625   Median :0.015625   Median :0.015625   Median :14.0  
##  Mean   :0.017782   Mean   :0.015785   Mean   :0.014392   Mean   :14.5  
##  3rd Qu.:0.015625   3rd Qu.:0.015625   3rd Qu.:0.015625   3rd Qu.:16.0  
##  Max.   :0.125000   Max.   :0.125000   Max.   :0.125000   Max.   :24.0  
##       vol           
##  Min.   :2.000e-12  
##  1st Qu.:4.660e-10  
##  Median :1.863e-09  
##  Mean   :1.654e-08  
##  3rd Qu.:3.725e-09  
##  Max.   :3.052e-05

Variations with div

div is the number of divisions this volume has been subject to (since the start of Phase 2).

For this integrand, the estimated value of the integral over the subregion decreases with the number of divisions:

ggplot(df5, aes(div, value, group = div)) +
  geom_boxplot() +
  scale_y_log10()

ggplot(df5, aes(div, error, group = div)) +
  geom_boxplot() +
  scale_y_log10()

How “stretched” are the subregions?

We define the quantity stretch to be the ratio of the maximum subregion extent to the minimum subregion extent. A hypercube would have a stretch of 1.

df5 <- mutate(df5, mind = pmin(dim0, dim1, dim2, dim3, dim4),
            maxd = pmax(dim0, dim1, dim2, dim3, dim4),
            stretch = maxd/mind)
ggplot(df5, aes(stretch)) +
  geom_histogram(bins = 50, binwidth = 1, center = 0)