#![feature(test)] #[cfg(feature = "generic_sizes")] extern crate typenum; extern crate test; extern crate rand; extern crate nalgebra as na; use rand::{IsaacRng, Rng}; use test::Bencher; use na::{Vector2, Vector3, Vector4}; use std::ops::{Add, Sub, Mul, Div}; #[path="common/macros.rs"] mod macros; bench_binop!(_bench_vec2_add_v, Vector2, Vector2, add); bench_binop!(_bench_vec3_add_v, Vector3, Vector3, add); bench_binop!(_bench_vec4_add_v, Vector4, Vector4, add); bench_binop!(_bench_vec2_sub_v, Vector2, Vector2, sub); bench_binop!(_bench_vec3_sub_v, Vector3, Vector3, sub); bench_binop!(_bench_vec4_sub_v, Vector4, Vector4, sub); bench_binop!(_bench_vec2_mul_v, Vector2, Vector2, mul); bench_binop!(_bench_vec3_mul_v, Vector3, Vector3, mul); bench_binop!(_bench_vec4_mul_v, Vector4, Vector4, mul); bench_binop!(_bench_vec2_div_v, Vector2, Vector2, div); bench_binop!(_bench_vec3_div_v, Vector3, Vector3, div); bench_binop!(_bench_vec4_div_v, Vector4, Vector4, div); bench_binop!(_bench_vec2_add_s, Vector2, f32, add); bench_binop!(_bench_vec3_add_s, Vector3, f32, add); bench_binop!(_bench_vec4_add_s, Vector4, f32, add); bench_binop!(_bench_vec2_sub_s, Vector2, f32, sub); bench_binop!(_bench_vec3_sub_s, Vector3, f32, sub); bench_binop!(_bench_vec4_sub_s, Vector4, f32, sub); bench_binop!(_bench_vec2_mul_s, Vector2, f32, mul); bench_binop!(_bench_vec3_mul_s, Vector3, f32, mul); bench_binop!(_bench_vec4_mul_s, Vector4, f32, mul); bench_binop!(_bench_vec2_div_s, Vector2, f32, div); bench_binop!(_bench_vec3_div_s, Vector3, f32, div); bench_binop!(_bench_vec4_div_s, Vector4, f32, div); bench_binop_na!(_bench_vec2_dot, Vector2, Vector2, dot); bench_binop_na!(_bench_vec3_dot, Vector3, Vector3, dot); bench_binop_na!(_bench_vec4_dot, Vector4, Vector4, dot); bench_binop_na!(_bench_vec3_cross, Vector3, Vector3, cross); bench_unop!(_bench_vec2_norm, Vector2, norm); bench_unop!(_bench_vec3_norm, Vector3, norm); bench_unop!(_bench_vec4_norm, Vector4, norm); bench_unop!(_bench_vec2_normalize, Vector2, normalize); bench_unop!(_bench_vec3_normalize, Vector3, normalize); bench_unop!(_bench_vec4_normalize, Vector4, normalize); #[cfg(feature = "generic_sizes")] mod bench_vecn { extern crate test; extern crate rand; extern crate nalgebra as na; use rand::{IsaacRng, Rng}; use test::Bencher; use std::ops::{Add, Sub, Mul, Div}; use typenum::{U2, U3, U4}; use na::VectorN; bench_binop!(_bench_vecn2_add_v, VectorN, VectorN, add); bench_binop!(_bench_vecn3_add_v, VectorN, VectorN, add); bench_binop!(_bench_vecn4_add_v, VectorN, VectorN, add); bench_binop!(_bench_vecn2_sub_v, VectorN, VectorN, sub); bench_binop!(_bench_vecn3_sub_v, VectorN, VectorN, sub); bench_binop!(_bench_vecn4_sub_v, VectorN, VectorN, sub); bench_binop!(_bench_vecn2_mul_v, VectorN, VectorN, mul); bench_binop!(_bench_vecn3_mul_v, VectorN, VectorN, mul); bench_binop!(_bench_vecn4_mul_v, VectorN, VectorN, mul); bench_binop!(_bench_vecn2_div_v, VectorN, VectorN, div); bench_binop!(_bench_vecn3_div_v, VectorN, VectorN, div); bench_binop!(_bench_vecn4_div_v, VectorN, VectorN, div); bench_binop!(_bench_vecn2_add_s, VectorN, f32, add); bench_binop!(_bench_vecn3_add_s, VectorN, f32, add); bench_binop!(_bench_vecn4_add_s, VectorN, f32, add); bench_binop!(_bench_vecn2_sub_s, VectorN, f32, sub); bench_binop!(_bench_vecn3_sub_s, VectorN, f32, sub); bench_binop!(_bench_vecn4_sub_s, VectorN, f32, sub); bench_binop!(_bench_vecn2_mul_s, VectorN, f32, mul); bench_binop!(_bench_vecn3_mul_s, VectorN, f32, mul); bench_binop!(_bench_vecn4_mul_s, VectorN, f32, mul); bench_binop!(_bench_vecn2_div_s, VectorN, f32, div); bench_binop!(_bench_vecn3_div_s, VectorN, f32, div); bench_binop!(_bench_vecn4_div_s, VectorN, f32, div); bench_binop_na!(_bench_vecn2_dot, VectorN, VectorN, dot); bench_binop_na!(_bench_vecn3_dot, VectorN, VectorN, dot); bench_binop_na!(_bench_vecn4_dot, VectorN, VectorN, dot); bench_unop!(_bench_vecn2_norm, VectorN, norm); bench_unop!(_bench_vecn3_norm, VectorN, norm); bench_unop!(_bench_vecn4_norm, VectorN, norm); bench_unop!(_bench_vecn2_normalize, VectorN, normalize); bench_unop!(_bench_vecn3_normalize, VectorN, normalize); bench_unop!(_bench_vecn4_normalize, VectorN, normalize); }