Difference between revisions of "Float Quaternion Multiply"
From OpenLuna
(New page: <nowiki> #include <math.h> int qdotq(float *p,float *q, float *r) /* product (r) of qutonians p and q */ - →0 = real, 1=i, 2=j, 3=k: /* ges 042709 *...) |
|||
Line 1: | Line 1: | ||
− | < | + | #include <math.h> |
− | + | int qdotq(float *p,float *q, float *r) | |
− | + | /* product (r) of qutonians p and q */ | |
− | + | /* 0 = real, 1=i, 2=j, 3=k */ | |
− | + | /* ges 042709 */ | |
− | int qdotq(float *p,float *q, float *r) | + | { |
− | + | r[0]=p[0]*q[0]-p[1]*q[1]-p[2]*q[2]-p[3]*q[3]; | |
− | /* product (r) of qutonians p and q */ | + | r[1]=p[1]*q[0]+p[0]*q[1]-p[3]*q[2]+p[2]*q[3]; |
− | + | r[2]=p[2]*q[0]+p[3]*q[1]+p[0]*q[2]-p[1]*q[3]; | |
− | /* 0 = real, 1=i, 2=j, 3=k */ | + | r[3]=p[3]*q[0]-p[2]*q[1]+p[1]*q[2]+p[0]*q[3]; |
− | + | } /* End qdotq */ | |
− | /* ges 042709 */ | + | |
− | + | ||
− | + | ||
− | { | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | } /* End qdotq */ | + | |
− | + | ||
− | + | ||
− | + |
Latest revision as of 15:43, 29 April 2009
#include <math.h>
int qdotq(float *p,float *q, float *r) /* product (r) of qutonians p and q */ /* 0 = real, 1=i, 2=j, 3=k */ /* ges 042709 */ { r[0]=p[0]*q[0]-p[1]*q[1]-p[2]*q[2]-p[3]*q[3]; r[1]=p[1]*q[0]+p[0]*q[1]-p[3]*q[2]+p[2]*q[3]; r[2]=p[2]*q[0]+p[3]*q[1]+p[0]*q[2]-p[1]*q[3]; r[3]=p[3]*q[0]-p[2]*q[1]+p[1]*q[2]+p[0]*q[3]; } /* End qdotq */