1 #[path = "support/macros.rs"] 2 #[macro_use] 3 mod macros; 4 mod support; 5 6 use criterion::{criterion_group, criterion_main, Criterion}; 7 use glam::Quat; 8 use std::ops::Mul; 9 use support::*; 10 11 bench_unop!( 12 quat_conjugate, 13 "quat conjugate", 14 op => conjugate, 15 from => random_quat 16 ); 17 18 bench_binop!( 19 quat_mul_vec3, 20 "quat mul vec3", 21 op => mul, 22 from1 => random_quat, 23 from2 => random_vec3 24 ); 25 26 bench_binop!( 27 quat_mul_vec3a, 28 "quat mul vec3a", 29 op => mul, 30 from1 => random_quat, 31 from2 => random_vec3a 32 ); 33 34 bench_binop!( 35 quat_mul_quat, 36 "quat mul quat", 37 op => mul, 38 from => random_quat 39 ); 40 41 bench_binop!( 42 quat_dot, 43 "quat dot", 44 op => dot, 45 from => random_quat 46 ); 47 48 bench_trinop!( 49 quat_lerp, 50 "quat lerp", 51 op => lerp, 52 from1 => random_quat, 53 from2 => random_quat, 54 from3 => random_f32 55 ); 56 57 bench_trinop!( 58 quat_slerp, 59 "quat slerp", 60 op => slerp, 61 from1 => random_quat, 62 from2 => random_quat, 63 from3 => random_f32 64 ); 65 66 bench_from_ypr!(quat_from_ypr, "quat from ypr", ty => Quat); 67 68 criterion_group!( 69 benches, 70 quat_conjugate, 71 quat_dot, 72 quat_lerp, 73 quat_slerp, 74 quat_mul_quat, 75 quat_mul_vec3, 76 quat_mul_vec3a, 77 quat_from_ypr 78 ); 79 80 criterion_main!(benches); 81