예제 #1
0
        public ProcessInterval Range(IDictionary <IProcessRange, ProcessInterval> cache)
        {
            ProcessInterval interval = cache.TryGetValue(this, out interval)
                ? interval
                : cache[this] = new ProcessInterval(m_Start.Range(cache).Max, m_End.Range(cache).Max);

            return(interval);
        }
예제 #2
0
        public ProcessInterval Range(IDictionary <IProcessRange, ProcessInterval> cache)
        {
            ProcessInterval interval;

            if (cache.TryGetValue(this, out interval))
            {
                return(interval);
            }

            int rank = m_InputProcesses
                       .Select(x => x.Range(cache).Max)
                       .Concat(new[] { -1 })
                       .Max();

            return(cache[this] = new ProcessInterval(rank, rank));
        }
예제 #3
0
 public bool Contains(ProcessInterval x)
 {
     return((Min <= x.Min) && (x.Max <= Max));
 }