//pub mod incremental_block; pub mod gpu; pub mod gpusolver; pub mod bwinf; /// calculate h and w pub fn wall_stats(n: u32) -> (u32, u32) { let h = (n >> 1) + 1; (h, (n - 1) * h) } pub trait Solver { fn new(n: u32) -> Self; fn n(&self) -> u32; fn h(&self) -> u32; fn w(&self) -> u32; } pub trait FirstSolver { fn solve(self) -> RowResult; } pub trait IteratorSolver: Solver { type IntoIter: Iterator; fn solve(self) -> Self::IntoIter; }