Make jackknife TU-local to stats.cpp

This commit is contained in:
Martin Hořeňovský 2023-09-16 21:29:47 +02:00
parent 56fcd584c1
commit 92672591c1
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
2 changed files with 18 additions and 23 deletions

View File

@ -197,6 +197,24 @@ namespace Catch {
# pragma GCC diagnostic pop
#endif
static sample jackknife( double ( *estimator )( double const*,
double const* ),
double* first,
double* last ) {
const auto second = first + 1;
sample results;
results.reserve( static_cast<size_t>( last - first ) );
for ( auto it = first; it != last; ++it ) {
std::iter_swap( it, first );
results.push_back( estimator( second, last ) );
}
return results;
}
} // namespace
} // namespace Detail
} // namespace Benchmark
@ -263,24 +281,6 @@ namespace Catch {
return sum / static_cast<double>(count);
}
sample jackknife( double ( *estimator )( double const*,
double const* ),
double* first,
double* last ) {
auto n = static_cast<size_t>( last - first );
auto second = first;
++second;
sample results;
results.reserve( n );
for ( auto it = first; it != last; ++it ) {
std::iter_swap( it, first );
results.push_back( estimator( second, last ) );
}
return results;
}
double normal_cdf( double x ) {
return std::erfc( -x / std::sqrt( 2.0 ) ) / 2.0;
}

View File

@ -30,11 +30,6 @@ namespace Catch {
double mean( double const* first, double const* last );
sample jackknife( double ( *estimator )( double const*,
double const* ),
double* first,
double* last );
double normal_cdf( double x );
double erfc_inv(double x);