public IPs GetIPsForCell(double min, double max)
        {
            IPs componentResult = component.GetIPsForCell(min, max);
            var coerced         = ThinningUtils.Thinning(componentResult, countConstraint);

            System.Diagnostics.Debug.Assert(Math.Abs(coerced.Weights.Sum() - 1.0) < 1e-12);
            return(coerced);
        }
        public IPs GetTempIPs(ITimeSegment t)
        {
            IPs    componentResult = component.GetTempIPs(t);
            var    coerced         = ThinningUtils.Thinning(componentResult, countConstraint);
            double sum             = coerced.Weights.Sum();

            System.Diagnostics.Debug.Assert(Math.Abs(sum - 1.0) < 1e-7);
            return(coerced);
        }