pub fn cross(u: &[f64; 3], v: &[f64; 3]) -> [f64; 3]