26 lines
928 B
Plaintext
26 lines
928 B
Plaintext
#define NAN 0.0/0.0 'dot product of different-dimensioned vectors is no more defined than 0/0
|
|
|
|
function dot( a() as double, b() as double ) as double
|
|
if ubound(a)<>ubound(b) then return NAN
|
|
dim as uinteger i
|
|
dim as double dp = 0.0
|
|
for i = 0 to ubound(a)
|
|
dp += a(i)*b(i)
|
|
next i
|
|
return dp
|
|
end function
|
|
|
|
dim as double zero3d(0 to 2) = {0.0, 0.0, 0.0} 'some example vectors
|
|
dim as double zero5d(0 to 4) = {0.0, 0.0, 0.0, 0.0, 0.0}
|
|
dim as double x(0 to 2) = {1.0, 0.0, 0.0}
|
|
dim as double y(0 to 2) = {0.0, 1.0, 0.0}
|
|
dim as double z(0 to 2) = {0.0, 0.0, 1.0}
|
|
dim as double q(0 to 2) = {1.0, 1.0, 3.14159}
|
|
dim as double r(0 to 2) = {-1.0, 2.618033989, 3.0}
|
|
|
|
print " q dot r = ", dot(q(), r())
|
|
print " zero3d dot zero5d = ", dot(zero3d(), zero5d())
|
|
print " zero3d dot x = ", dot(zero3d(), x())
|
|
print " z dot z = ", dot(z(), z())
|
|
print " y dot z = ", dot(y(), z())
|