diff options
Diffstat (limited to 'libraries/ode-0.9/ode/src/fastdot.c')
-rw-r--r-- | libraries/ode-0.9/ode/src/fastdot.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libraries/ode-0.9/ode/src/fastdot.c b/libraries/ode-0.9/ode/src/fastdot.c new file mode 100644 index 0000000..148d2dd --- /dev/null +++ b/libraries/ode-0.9/ode/src/fastdot.c | |||
@@ -0,0 +1,30 @@ | |||
1 | /* generated code, do not edit. */ | ||
2 | |||
3 | #include "ode/matrix.h" | ||
4 | |||
5 | |||
6 | dReal dDot (const dReal *a, const dReal *b, int n) | ||
7 | { | ||
8 | dReal p0,q0,m0,p1,q1,m1,sum; | ||
9 | sum = 0; | ||
10 | n -= 2; | ||
11 | while (n >= 0) { | ||
12 | p0 = a[0]; q0 = b[0]; | ||
13 | m0 = p0 * q0; | ||
14 | p1 = a[1]; q1 = b[1]; | ||
15 | m1 = p1 * q1; | ||
16 | sum += m0; | ||
17 | sum += m1; | ||
18 | a += 2; | ||
19 | b += 2; | ||
20 | n -= 2; | ||
21 | } | ||
22 | n += 2; | ||
23 | while (n > 0) { | ||
24 | sum += (*a) * (*b); | ||
25 | a++; | ||
26 | b++; | ||
27 | n--; | ||
28 | } | ||
29 | return sum; | ||
30 | } | ||