Compare commits

...

2 Commits

Author SHA1 Message Date
b1ek 9af5bc0269
use POWSolver in example 2023-08-02 20:45:06 +10:00
b1ek abe8659823
add POWSolver.solve method 2023-08-02 20:44:57 +10:00
2 changed files with 10 additions and 2 deletions

View File

@ -1,7 +1,7 @@
use std::time::Instant; use std::time::Instant;
use powlib::{self, gen::{POWRange, POWChallenge}, hash::hash_num, num::Num}; use powlib::{self, gen::{POWRange, POWChallenge}, hash::hash_num, num::Num, solver::POWSolver};
fn main() { fn main() {
{ {
@ -13,6 +13,7 @@ fn main() {
{ {
let time = Instant::now(); let time = Instant::now();
let challenge = POWChallenge::make(POWRange::new(0, 20480)); let challenge = POWChallenge::make(POWRange::new(0, 20480));
println!("Solvling {} took {} seconds", challenge.solve_singlethread(), time.elapsed().as_secs_f32()); let mut solver = POWSolver::new(challenge);
println!("Solvling {} took {} seconds", solver.solve_signle().unwrap(), time.elapsed().as_secs_f32());
} }
} }

View File

@ -53,6 +53,13 @@ impl POWSolver {
None None
} }
/**
Solve the challenge using just one thread.
*/
pub fn solve_signle(self: &mut POWSolver) -> Option<u128> {
return self.chunk_solve(self.challenge.range.min, self.challenge.range.max);
}
pub fn new(challenge: POWChallenge) -> POWSolver { pub fn new(challenge: POWChallenge) -> POWSolver {
POWSolver { challenge, result: None } POWSolver { challenge, result: None }
} }