#![feature(test)] 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_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_ref!(_bench_vec2_dot, Vector2, Vector2, dot); bench_binop_ref!(_bench_vec3_dot, Vector3, Vector3, dot); bench_binop_ref!(_bench_vec4_dot, Vector4, Vector4, dot); bench_binop_ref!(_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);