63 #define CROSS(u,v,out) \
64 out[0] = u[1] * v[2] - u[2] * v[1];\
65 out[1] = u[2] * v[0] - u[0] * v[2];\
66 out[2] = u[0] * v[1] - u[1] * v[0];
78 (u[0] * v[0] + u[1] * v[1] + u[2] * v[2])
89 float static inline vectors_scalar_product(
const float u[3],
const float v[3])
91 float scp = (u[0] * v[0] + u[1] * v[1] + u[2] * v[2]);
103 void static inline vectors_cross_product(
const float u[3],
const float v[3],
float out[3])
105 out[0] = u[1] * v[2] - u[2] * v[1];
106 out[1] = u[2] * v[0] - u[0] * v[2];
107 out[2] = u[0] * v[1] - u[1] * v[0];
117 float static inline vectors_norm_sqr(
const float u[3])
119 float norm = vectors_scalar_product(u, u);
130 float static inline vectors_norm(
const float u[3])
132 return maths_fast_sqrt(vectors_norm_sqr(u));
142 void static inline vectors_normalize(
const float v[3],
float u[3])
144 float norm = vectors_norm(v);
146 for (int32_t i = 0; i < 3; ++i)