CanvasClean.LoessInterpolator.computeIntervals C# (CSharp) Method

computeIntervals() private static method

private static computeIntervals ( double xvals, double xStep, int bandwidthInPoints ) : List
xvals double
xStep double
bandwidthInPoints int
return List
        private static List<LoessInterval> computeIntervals(double[] xvals, double xStep, int bandwidthInPoints)
        {
            List<LoessInterval> intervals = new List<LoessInterval>();

            int[] bandwidthInterval = new int[] { 0, bandwidthInPoints - 1 };
            double xMin = double.NegativeInfinity;

            for (double x = xvals[0]; x <= xvals[xvals.Length - 1]; x += xStep)
            {
                var newBandwidthInterval = updateBandwidthInterval(x, xvals, bandwidthInterval);
                if (newBandwidthInterval != null)
                {
                    intervals.Add(new LoessInterval(xMin, x, bandwidthInterval));
                    xMin = x;
                    bandwidthInterval = newBandwidthInterval;
                }
            }
            intervals.Add(new LoessInterval(xMin, double.PositiveInfinity, bandwidthInterval));

            return intervals;
        }