From d53e642b5d5beafa29f69fbff690ea410132a819 Mon Sep 17 00:00:00 2001 From: tqchen Date: Mon, 23 Mar 2015 21:17:50 -0700 Subject: [PATCH] add debuglog for quantile --- src/utils/quantile.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/utils/quantile.h b/src/utils/quantile.h index bc76f4017..fe8589ad8 100644 --- a/src/utils/quantile.h +++ b/src/utils/quantile.h @@ -316,7 +316,19 @@ struct WXQSummary : public WQSummary { mrange += src.data[src.size-1].rmax_prev() - src.data[bid].rmin_next(); } } - utils::Assert(nbig < n - 1, "too many large chunk"); + if (nbig >= n - 1) { + // see what was the case + fprintf(stderr, "LOG: check quantile stats, nbig=%lu, n=%lu\n", nbig, n); + fprintf(stderr, "LOG: srcsize=%lu, maxsize=%lu, range=%g, chunk=%g\n", + src.size, maxsize, static_cast(range), + static_cast(chunk)); + for (size_t i = 0; i < src.size; ++i) { + printf("[%lu] rmin=%g, rmax=%g, wmin=%g, isbig=%d\n", i, + src.data[i].rmin, src.data[i].rmax, src.data[i].wmin, + CheckLarge(src.data[i], chunk)); + } + utils::Assert(nbig < n - 1, "quantile: too many large chunk"); + } this->data[0] = src.data[0]; this->size = 1; // use smaller size