src/iterate.rs

branch
dev
changeset 87
72968cf30033
parent 51
92ef745ec8db
equal deleted inserted replaced
76:99ad55974e62 87:72968cf30033
449 /// $b$ is indicated logarithmic base. So, with $b=10$, 449 /// $b$ is indicated logarithmic base. So, with $b=10$,
450 /// * every iteration for first 10 iterations, 450 /// * every iteration for first 10 iterations,
451 /// * every 10 iterations from there on until 100 iterations, 451 /// * every 10 iterations from there on until 100 iterations,
452 /// * every 100 iteartinos frmo there on until 1000 iterations, etc. 452 /// * every 100 iteartinos frmo there on until 1000 iterations, etc.
453 Logarithmic(usize), 453 Logarithmic(usize),
454 /// Same as `Logarithmic`, but $\log_b(n)$ is replaced by $min\{c, \log_b(n)\}$ where $c$
455 /// is the given `cap`. For example, with `base=10` and `cap=2`, the first ten iterations
456 /// will be output, then every tenth iteration, and after 100 iterations, every 100th iteration,
457 /// without further logarithmic progression.
458 LogarithmicCap{ base : usize, cap : u32 },
454 } 459 }
455 460
456 impl Verbose { 461 impl Verbose {
457 /// Indicates whether given iteration number is verbose 462 /// Indicates whether given iteration number is verbose
458 pub fn is_verbose(&self, iter : usize) -> bool { 463 pub fn is_verbose(&self, iter : usize) -> bool {
463 &Verbose::EveryAndInitial{ every, initial } => { 468 &Verbose::EveryAndInitial{ every, initial } => {
464 iter <= initial || (every != 0 && iter % every == 0) 469 iter <= initial || (every != 0 && iter % every == 0)
465 }, 470 },
466 &Verbose::Logarithmic(base) => { 471 &Verbose::Logarithmic(base) => {
467 let every = base.pow((iter as float).log(base as float).floor() as u32); 472 let every = base.pow((iter as float).log(base as float).floor() as u32);
473 iter % every == 0
474 }
475 &Verbose::LogarithmicCap{base, cap} => {
476 let every = base.pow(((iter as float).log(base as float).floor() as u32).min(cap));
468 iter % every == 0 477 iter % every == 0
469 } 478 }
470 } 479 }
471 } 480 }
472 } 481 }

mercurial