2015-02-17 21:10:08 +08:00
|
|
|
#![feature(test)]
|
2014-09-29 01:20:22 +08:00
|
|
|
|
|
|
|
extern crate test;
|
2015-02-17 21:10:08 +08:00
|
|
|
extern crate rand;
|
2015-03-29 19:32:14 +08:00
|
|
|
extern crate nalgebra as na;
|
2014-09-29 01:20:22 +08:00
|
|
|
|
2015-02-17 21:10:08 +08:00
|
|
|
use rand::{IsaacRng, Rng};
|
2014-04-13 16:24:17 +08:00
|
|
|
use test::Bencher;
|
2016-04-17 23:26:58 +08:00
|
|
|
use na::{Vector2, Vector3, Vector4, Matrix2, Matrix3, Matrix4};
|
2015-01-04 05:48:10 +08:00
|
|
|
use std::ops::{Add, Sub, Mul, Div};
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2014-11-07 23:15:56 +08:00
|
|
|
#[path="common/macros.rs"]
|
|
|
|
mod macros;
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_binop!(_bench_mat2_mul_m, Matrix2<f32>, Matrix2<f32>, mul);
|
|
|
|
bench_binop!(_bench_mat3_mul_m, Matrix3<f32>, Matrix3<f32>, mul);
|
|
|
|
bench_binop!(_bench_mat4_mul_m, Matrix4<f32>, Matrix4<f32>, mul);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-12-05 05:44:42 +08:00
|
|
|
bench_binop_ref!(_bench_mat2_tr_mul_m, Matrix2<f32>, Matrix2<f32>, tr_mul);
|
|
|
|
bench_binop_ref!(_bench_mat3_tr_mul_m, Matrix3<f32>, Matrix3<f32>, tr_mul);
|
|
|
|
bench_binop_ref!(_bench_mat4_tr_mul_m, Matrix4<f32>, Matrix4<f32>, tr_mul);
|
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_binop!(_bench_mat2_add_m, Matrix2<f32>, Matrix2<f32>, add);
|
|
|
|
bench_binop!(_bench_mat3_add_m, Matrix3<f32>, Matrix3<f32>, add);
|
|
|
|
bench_binop!(_bench_mat4_add_m, Matrix4<f32>, Matrix4<f32>, add);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_binop!(_bench_mat2_sub_m, Matrix2<f32>, Matrix2<f32>, sub);
|
|
|
|
bench_binop!(_bench_mat3_sub_m, Matrix3<f32>, Matrix3<f32>, sub);
|
|
|
|
bench_binop!(_bench_mat4_sub_m, Matrix4<f32>, Matrix4<f32>, sub);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_binop!(_bench_mat2_mul_v, Matrix2<f32>, Vector2<f32>, mul);
|
|
|
|
bench_binop!(_bench_mat3_mul_v, Matrix3<f32>, Vector3<f32>, mul);
|
|
|
|
bench_binop!(_bench_mat4_mul_v, Matrix4<f32>, Vector4<f32>, mul);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-12-05 05:44:42 +08:00
|
|
|
bench_binop_ref!(_bench_mat2_tr_mul_v, Matrix2<f32>, Vector2<f32>, tr_mul);
|
|
|
|
bench_binop_ref!(_bench_mat3_tr_mul_v, Matrix3<f32>, Vector3<f32>, tr_mul);
|
|
|
|
bench_binop_ref!(_bench_mat4_tr_mul_v, Matrix4<f32>, Vector4<f32>, tr_mul);
|
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_binop!(_bench_mat2_mul_s, Matrix2<f32>, f32, mul);
|
|
|
|
bench_binop!(_bench_mat3_mul_s, Matrix3<f32>, f32, mul);
|
|
|
|
bench_binop!(_bench_mat4_mul_s, Matrix4<f32>, f32, mul);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_binop!(_bench_mat2_div_s, Matrix2<f32>, f32, div);
|
|
|
|
bench_binop!(_bench_mat3_div_s, Matrix3<f32>, f32, div);
|
|
|
|
bench_binop!(_bench_mat4_div_s, Matrix4<f32>, f32, div);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-12-05 05:44:42 +08:00
|
|
|
bench_unop!(_bench_mat2_inv, Matrix2<f32>, try_inverse);
|
|
|
|
bench_unop!(_bench_mat3_inv, Matrix3<f32>, try_inverse);
|
|
|
|
bench_unop!(_bench_mat4_inv, Matrix4<f32>, try_inverse);
|
2013-09-13 19:21:42 +08:00
|
|
|
|
2016-04-17 23:26:58 +08:00
|
|
|
bench_unop!(_bench_mat2_transpose, Matrix2<f32>, transpose);
|
|
|
|
bench_unop!(_bench_mat3_transpose, Matrix3<f32>, transpose);
|
|
|
|
bench_unop!(_bench_mat4_transpose, Matrix4<f32>, transpose);
|