pub fn dot<T: Number, V: VecN<T>>(a: V, b: V) -> T
returns the vector dot product between a . b
a . b