173 const std::size_t nsamp = 1000;
174 const std::size_t nval = 26;
175 std::vector<NormalSampler> samplers;
177 samplers.emplace_back( 1993 + 42 *
k, 27 + 7 *
k, 1945);
180 const unsigned int replicates = 1e4;
181 const std::vector<Real> levels = {0.05, 0.1, 0.2, 0.8, 0.9, 0.95};
189 auto mean_calc = makeCalculator<std::vector<std::vector<Real>>, std::vector<Real>>(calc[0], po);
190 auto std_calc = makeCalculator<std::vector<std::vector<Real>>, std::vector<Real>>(calc[1], po);
193 MooseEnum boot(
"percentile",
"percentile",
true);
194 auto mean_boot_calc = makeBootstrapCalculator<std::vector<std::vector<Real>>, std::vector<Real>>(
195 boot, po, levels, replicates, 2613, *mean_calc);
196 auto std_boot_calc = makeBootstrapCalculator<std::vector<std::vector<Real>>, std::vector<Real>>(
197 boot, po, levels, replicates, 2613, *std_calc);
200 std::vector<std::vector<Real>> data(nsamp);
201 for (
auto & dt : data)
202 for (
const auto & samp : samplers)
203 dt.push_back(samp.sample());
204 const std::vector<Real> mean_samp = mean_calc->compute(data,
false);
205 const std::vector<Real> std_samp = std_calc->compute(data,
false);
206 const std::vector<std::vector<Real>> mean_ci = mean_boot_calc->compute(data,
false);
207 const std::vector<std::vector<Real>> std_ci = std_boot_calc->compute(data,
false);
214 const Real mean_ref = samplers[
k].meanConfidence(levels[l], nsamp);
215 const Real std_ref = samplers[
k].stdConfidence(levels[l], nsamp);
216 EXPECT_NEAR(mean_ci[l][
k] - mean_samp[
k], mean_ref, std::abs(mean_ref *
tol));
217 EXPECT_NEAR(std_ci[l][
k] - std_samp[
k], std_ref, std::abs(std_ref *
tol));
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
static const std::string k
auto index_range(const T &sizable)