classif 0.0.2

Library for one-dimensional data classification and basic statistics
Documentation
#![feature(test)]

extern crate test;
extern crate classif;

use test::black_box;
use classif::*;

#[bench]
fn mean_value(bench: &mut test::Bencher) {
    let a = get_test_values();
    let a = black_box(a);
    bench.iter(|| { let mean = stats::mean(&a); });
}

#[bench]
fn kurtosis_value(bench: &mut test::Bencher) {
    let a = get_test_values();
    let a = black_box(a);
    bench.iter(|| { let mean = stats::kurtosis(&a); });
}

#[bench]
fn variance(bench: &mut test::Bencher) {
    let a = get_test_values();
    let a = black_box(a);
    bench.iter(|| { let mean = stats::variance(&a); });
}

#[bench]
fn head_tail_raw(bench: &mut test::Bencher) {
    let a = get_test_values();
    let mut a = black_box(a);
    bench.iter(|| {
                   a.sort_by(|i, j| i.partial_cmp(j).unwrap());
                   let b = get_head_tail_breaks(&a);
               });
}

#[bench]
fn head_tail(bench: &mut test::Bencher) {
    let a = get_test_values();
    let a = black_box(a);
    bench.iter(|| { let b = BoundsInfo::new(5, &a, Classification::HeadTail).unwrap(); });
}

#[bench]
fn jenks_breaks_sorted(bench: &mut test::Bencher) {
    let mut a = get_test_values();
    a.sort_by(|i, j| i.partial_cmp(j).unwrap());
    let a = black_box(a);
    bench.iter(|| { let b = get_jenks_breaks(&a, 5); });
}

#[bench]
fn jenks_breaks_raw(bench: &mut test::Bencher) {
    let a = get_test_values();
    let mut a = black_box(a);
    bench.iter(|| {
                   a.sort_by(|i, j| i.partial_cmp(j).unwrap());
                   let b = get_jenks_breaks(&a, 5);
               });
}

#[bench]
fn jenks_breaks(bench: &mut test::Bencher) {
    let a = get_test_values();
    let a = black_box(a);
    bench.iter(|| { let b = BoundsInfo::new(5, &a, Classification::JenksNaturalBreaks).unwrap(); });
}

fn get_test_values() -> [f64; 150] {
    [124.11953296196037,
     103.92697087010856,
     5.0622357064592896,
     118.13809013028434,
     95.22750103402414,
     98.22403958076912,
     4.444393054909623,
     5.284051229789105,
     27.49663799351298,
     115.87267322653307,
     44.471654327407165,
     110.85189399783523,
     104.11275847684895,
     22.889698922180784,
     84.1098800907737,
     115.70620182326988,
     40.13931812393115,
     102.76100964817884,
     134.40920388755774,
     79.3317450345255,
     59.245519050105436,
     97.19669224510231,
     19.969910977415513,
     48.6986267325206,
     5.165934913361192,
     145.5750427848921,
     43.18436616590445,
     111.13191221254777,
     103.77426520501247,
     147.47620633517116,
     18.193088180473353,
     63.967292459098836,
     77.97996568357644,
     23.028916049882763,
     94.42315402664828,
     75.68040572966866,
     67.65056713176767,
     42.93476159287684,
     140.66306787947354,
     69.67215661335376,
     52.77089969651371,
     8.57768507869386,
     75.87134387761282,
     70.91818167490672,
     89.75654257076619,
     120.7616716324539,
     85.35570846164444,
     143.50158727433018,
     11.372025937876023,
     135.25988986503268,
     137.04587743764435,
     68.01196111488656,
     121.25335488179616,
     113.27114335651787,
     72.65153613799845,
     111.45123489876481,
     78.94546311890548,
     115.00007182667323,
     139.51998134820184,
     84.8024989074621,
     14.065370121350485,
     100.2219357568402,
     125.86974757509077,
     80.42714745093431,
     79.18014822784704,
     7.704464475158746,
     18.071981022134327,
     43.13480224046353,
     45.651017655351104,
     95.70719919135406,
     106.39579851884123,
     43.86197992690892,
     69.9681848738559,
     49.15249665049527,
     22.683316601635596,
     131.87938192861773,
     42.43988577061869,
     87.19992795732614,
     115.36373636613784,
     26.55399136866134,
     53.854525533949165,
     67.63192590166629,
     103.74525707376472,
     18.737424980412428,
     85.74378646974968,
     141.83485047254064,
     90.21657860158919,
     58.23906658609738,
     5.833907646704156,
     115.43549018930858,
     63.50626471744455,
     123.20712755640525,
     117.50886097385894,
     16.88747537329786,
     22.611184208505563,
     85.87374722846786,
     73.10689468558701,
     120.1927316653708,
     66.65620341890923,
     121.69108889954472,
     144.18070028720138,
     113.96037838849544,
     85.82363422513735,
     50.14759915455048,
     88.60788510217486,
     105.33007189922465,
     120.35666069414617,
     144.29812503661668,
     107.30779975215874,
     92.51676926989137,
     60.493202563046225,
     34.788698921112655,
     17.700157636532875,
     70.62329574517808,
     147.5006501343314,
     37.08704541897557,
     44.2190330387979,
     21.567337806030086,
     38.07874405878746,
     26.78293552546471,
     70.89759619639838,
     98.70377093443567,
     58.33146608447851,
     109.11563212528586,
     68.40548963145368,
     95.46529167541085,
     55.01854128514142,
     6.66121567710623,
     133.83679352123215,
     112.52009878968043,
     144.19066197014348,
     32.59342159678386,
     78.90950386250051,
     93.08502342632364,
     143.63509253785557,
     1.584320207632528,
     50.78690328860014,
     143.30327464291966,
     145.98245316995263,
     15.329020265262239,
     149.2103889422507,
     57.136606376433406,
     77.49207673248564,
     60.76571706479743,
     146.69519831318323,
     141.1883591719943,
     48.759400187570236,
     37.28632513634756,
     80.57736459821275,
     87.78774178945444]
}