pub fn dot_values<T>(ax: &T, ay: &T, bx: &T, by: &T) -> Twhere T: Add<T, Output = T>, for<'a, 'b> &'a T: Mul<&'b T, Output = T>,
assert_eq!(vec2::dot_values(&1_f32, &1_f32, &1_f32, &1_f32), 2_f32);