paraxis 0.10.1

A simple to use spatial datastructure crate.
Documentation
use criterion::{Criterion, criterion_group, criterion_main};
use paraxis::prelude::*;
use rand::RngExt;

fn kd_tree(c: &mut Criterion) {
    let mut rng = rand::rng();
    let mut points = Vec::new();
    for _ in 0..1_000_000 {
        points.push((
            [rng.random_range(0.0..=100.0), rng.random_range(0.0..=100.0)],
            (),
        ));
    }
    let tree = KDTree::new(points.clone());
    c.bench_function("nearest_neighbour", |b| {
        b.iter(|| tree.k_nearest_neighbours(&[50.0, 50.0], 1));
    });
    c.bench_function("5_nearest_neighbours", |b| {
        b.iter(|| tree.k_nearest_neighbours(&[50.0, 50.0], 5));
    });
    c.bench_function("100_nearest_neighbours", |b| {
        b.iter(|| tree.k_nearest_neighbours(&[50.0, 50.0], 100));
    });
}

criterion_group!(benches, kd_tree);
criterion_main!(benches);