From 1650906f010574e8810c8b0b98334e22fac5894d Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 12 Jan 2020 03:47:14 +0100 Subject: Restructuring --- src/solvers/mod.rs | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) mode change 100755 => 100644 src/solvers/mod.rs (limited to 'src/solvers/mod.rs') diff --git a/src/solvers/mod.rs b/src/solvers/mod.rs old mode 100755 new mode 100644 index 1bdc228..189deca --- a/src/solvers/mod.rs +++ b/src/solvers/mod.rs @@ -1,5 +1,29 @@ //pub mod incremental_block; -pub mod intuitive; -//#[cfg(feature = "gpu")] +pub mod gpu; pub mod gpusolver; -pub mod opencl; +pub mod single; + +use crate::structs::StoneWall; +pub use gpu::*; + +/// 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) -> StoneWall; +} + +pub trait IteratorSolver: Solver { + type IntoIter: Iterator; + fn solve(self) -> Self::IntoIter; +} -- cgit v1.2.3-70-g09d2