43void parallel_quantiles(
const std::size_t n,
const std::vector<Stat_*>& in,
const double quantile, Output_*
const out,
const bool skip_nan) {
44 const auto nblocks = in.size();
46 std::fill_n(out, n, std::numeric_limits<Output_>::quiet_NaN());
48 }
else if (nblocks == 1) {
49 std::copy_n(in[0], n, out);
53 std::vector<Stat_> tmp_buffer;
54 tmp_buffer.reserve(nblocks);
57 quickstats::SingleQuantileVariableNumber<Output_, I<
decltype(nblocks)> > calcs(nblocks, quantile);
58 for (std::size_t g = 0; g < n; ++g) {
60 for (I<
decltype(nblocks)> b = 0; b < nblocks; ++b) {
61 const auto val = in[b][g];
62 if (!std::isnan(val)) {
63 tmp_buffer.push_back(val);
66 out[g] = calcs(tmp_buffer.size(), tmp_buffer.data());
70 quickstats::SingleQuantileFixedNumber<Output_, I<
decltype(nblocks)> > calc(nblocks, quantile);
71 for (std::size_t g = 0; g < n; ++g) {
73 for (I<
decltype(nblocks)> b = 0; b < nblocks; ++b) {
74 tmp_buffer.push_back(in[b][g]);
76 out[g] = calc(tmp_buffer.data());
void parallel_quantiles(const std::size_t n, const std::vector< Stat_ * > &in, const double quantile, Output_ *const out, const bool skip_nan)
Definition parallel_quantiles.hpp:43