Float Quaternoinish Cross
From OpenLuna
int vcrossvq(float *p,float *q, float *r) /* Cross product (r) of qutonian */ /* vectors p and q (q[0]=0) */ /* ges 050209 */ { r[0]=0.0; /* just in case */ r[1]=p[2]*q[3]-p[3]*q[2]; r[2]=p[3]*q[1]-p[1]*q[3]; r[3]=p[1]*q[2]-p[2]*q[1]; } /* End vcrossvq */