Esempio n. 1
0
        public Histogram(IEnumerable <double> data, int bucketCount)
        {
            data.ShouldNotBeNull("data");
            bucketCount.ShouldBePositive("bucketCount");

            double lower, upper;

            MathTool.GetMinMax(data, out lower, out upper);
            double width = (upper - lower) / bucketCount;

            // Add buckets for each bin; the smallest bucket's lowerbound must be slightly smaller
            // than the minimal element.
            AddBucket(new Bucket(lower.Decrement(), lower + width));
            for (var i = 1; i < bucketCount; i++)
            {
                var lo = lower + i * width;
                AddBucket(new Bucket(lo, lo + width));
            }

            if (IsDebugEnabled)
            {
                log.Debug("Histogram을 생성했습니다. lower=[{0}], upper=[{1}], bucketCount=[{2}]", lower, upper, bucketCount);
            }

            AddData(data);
        }