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); }
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)); }
public bool Contains(ProcessInterval x) { return((Min <= x.Min) && (x.Max <= Max)); }