Lucene.Net.Facet.Range.LongRangeCounter.Split C# (CSharp) Method

Split() private static method

private static Split ( int start, int end, IList elementaryIntervals ) : LongRangeNode
start int
end int
elementaryIntervals IList
return LongRangeNode
        private static LongRangeNode Split(int start, int end, IList<InclusiveRange> elementaryIntervals)
        {
            if (start == end - 1)
            {
                // leaf
                InclusiveRange range = elementaryIntervals[start];
                return new LongRangeNode(range.start, range.end, null, null, start);
            }
            else
            {
                int mid = (int)((uint)(start + end) >> 1);
                LongRangeNode left = Split(start, mid, elementaryIntervals);
                LongRangeNode right = Split(mid, end, elementaryIntervals);
                return new LongRangeNode(left.start, right.end, left, right, -1);
            }
        }