diff options
author | Dennis Kobert <dennis@kobert.dev> | 2019-12-22 13:41:35 +0100 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2019-12-22 13:41:35 +0100 |
commit | a8e1517fd1ad2fa30b9fc68d3e7b58cf9b680e1f (patch) | |
tree | 8096361c29055471884b183d07dd7f75c784ee3c /src/solvers.rs | |
parent | c22cbdc401d067cd6cc55c5194255ccc8bd3c71b (diff) |
Remove ordering for SaveState
Diffstat (limited to 'src/solvers.rs')
-rw-r--r-- | src/solvers.rs | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/src/solvers.rs b/src/solvers.rs index a0845a1..e8cefb3 100644 --- a/src/solvers.rs +++ b/src/solvers.rs @@ -71,7 +71,7 @@ pub struct Solver<T: num::PrimInt> { static mut COUNT: u32 = 0; /// Save the current state for each row -#[derive(Clone, Eq, Copy)] +#[derive(Clone, Copy)] pub struct SaveState<T: num::PrimInt> { /// Mask of all currently used stones pub bitmask: T, @@ -81,22 +81,6 @@ pub struct SaveState<T: num::PrimInt> { pub row: u32, } -impl<T: num::PrimInt> std::cmp::Ord for SaveState<T> { - fn cmp(&self, other: &Self) -> std::cmp::Ordering { - self.sum.cmp(&other.sum) - } -} -impl<T: num::PrimInt> std::cmp::PartialOrd for SaveState<T> { - fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> { - Some(self.sum.cmp(&other.sum)) - } -} -impl<T: num::PrimInt> std::cmp::PartialEq for SaveState<T> { - fn eq(&self, other: &Self) -> bool { - self.sum.eq(&other.sum) - } -} - impl<T: num::PrimInt> SaveState<T> { pub fn new() -> Self { Self { @@ -141,6 +125,7 @@ impl<T: num::PrimInt> Solver<T> { let heap = permutohedron::Heap::new(&mut heap); let n_f = permutohedron::factorial(n as usize); let mut permutations = Vec::with_capacity(n_f); + println!("Generating permutations"); for data in heap { permutations.push(data.clone()); } @@ -157,7 +142,7 @@ impl<T: num::PrimInt> Solver<T> { //for (n, i) in self.permutations.iter().enumerate() { // println!("perm {}: {:?}", n, i); //} - self.check_perm(&[3, 16, 23]); + println!("calculate results"); self.permute( permutohedron::factorial(self.n as usize), 0, |