lather 0.0.0

A Rust crate and Python extension for modeling starspot effects on radial velocity and photometric observations, inspired by complaints about the SOAP project of similar goals.
#[macro_use]
extern crate bencher;
use bencher::Bencher;
extern crate lather;
use lather::{Simulation, linspace};

fn create_sim(b: &mut Bencher) {
    b.iter(|| Simulation::new("sun.cfg"));
}

fn observe_flux(b: &mut Bencher) {
    let mut sim = Simulation::new("sun.cfg");
    let time: Vec<f64> = linspace(0.0, 25.05, 100).collect();

    b.iter(|| sim.observe_flux(&time, 4000e-10, 5000e-10));
}

fn observe_rv(b: &mut Bencher) {
    let mut sim = Simulation::new("sun.cfg");
    let time: Vec<f64> = linspace(0.0, 25.05, 100).collect();

    b.iter(|| sim.observe_rv(&time, 4000e-10, 5000e-10));
}

fn draw_star(b: &mut Bencher) {
    let sim = Simulation::new("sun.cfg");
    let mut image = vec![0; 1000 * 1000 * 4];
    b.iter(|| sim.star.draw_rgba(&mut image));
}

fn draw_simulation(b: &mut Bencher) {
    let mut sim = Simulation::new("sun.cfg");
    let mut image = vec![0; 1000 * 1000 * 4];
    b.iter(|| sim.draw_rgba(10.0, &mut image));
}

benchmark_group!(
    benches,
    create_sim,
    observe_flux,
    observe_rv,
    draw_star,
    draw_simulation
);
benchmark_main!(benches);