Depth check no longer checks depth but counts upstream nodes
Dependencies
- [2]
5OUVESUQAttempt to reduce additional manual comparison upon resume
Change contents
- edit in src/depth_check.rs at line 1
use std::collections::HashSet;use std::iter::once; - replacement in src/depth_check.rs at line 7
let mut workspace = Vec::new();let mut result = Vec::new();let mut dag = Vec::new();let mut descent = Vec::new(); - replacement in src/depth_check.rs at line 10
while workspace.len() <= worse {workspace.push(Vec::new());result.push(0);while dag.len() <= worse {dag.push(Vec::new());descent.push(HashSet::new()); - replacement in src/depth_check.rs at line 14
workspace[worse].push(better);dag[worse].push(better); - replacement in src/depth_check.rs at line 17
(0..workspace.len()).rev().map(|x| (x, None)).collect();(0..dag.len()).rev().map(|x| (x, None)).collect(); - replacement in src/depth_check.rs at line 19
let d = std::mem::take(&mut workspace[i]);let d = std::mem::take(&mut dag[i]); - replacement in src/depth_check.rs at line 26
result[s] = result[s].max(result[i] + 1);let e: HashSet<_> =once(i).chain(descent[i].iter().copied()).collect();descent[s].extend(e); - replacement in src/depth_check.rs at line 31
resultdescent.into_iter().map(|d| d.len()).collect()