#[path = "support/macros.rs"]
#[macro_use]
mod macros;
mod support;
use criterion::{criterion_group, criterion_main, Criterion};
use glam::f32::{TransformRT, TransformSRT, Vec3};
use rand::{Rng, SeedableRng};
use rand_xoshiro::Xoshiro256Plus;
use std::ops::Mul;
use support::*;
fn random_transform_srt<R>(rng: &mut R) -> TransformSRT
where
R: Rng,
{
rng.gen()
}
fn random_transform_rt<R>(rng: &mut R) -> TransformRT
where
R: Rng,
{
rng.gen()
}
bench_unop!(
transform_srt_inverse,
"transform_srt inverse",
op => inverse,
ty => TransformSRT,
from => random_transform_srt
);
bench_binop!(
vec3_mul_transform_srt,
"vec3 * transform_srt",
op => mul,
ty1 => Vec3,
from1 => random_vec3,
ty2 => TransformSRT,
from2 => random_transform_srt
);
bench_binop!(
vec3_mul_transform_rt,
"vec3 * transform_rt",
op => mul,
ty1 => Vec3,
from1 => random_vec3,
ty2 => TransformRT,
from2 => random_transform_rt
);
bench_binop!(
transform_srt_mul_srt,
"transform_srt * transform_srt",
op => mul,
ty => TransformSRT,
from => random_transform_srt
);
bench_binop!(
transform_rt_mul_rt,
"transform_rt * transform_rt",
op => mul,
ty => TransformRT,
from => random_transform_rt
);
criterion_group!(
benches,
transform_srt_inverse,
transform_rt_mul_rt,
transform_srt_mul_srt,
vec3_mul_transform_rt,
vec3_mul_transform_srt,
);
criterion_main!(benches);