FUNCTION dot (a(), b()) IF UBOUND(a) <> UBOUND(b) THEN LET dot = 0 LET dp = 0.0 FOR i = LBOUND(a) TO UBOUND(a) LET dp = dp + (a(i) * b(i)) NEXT i LET dot = dp END FUNCTION DIM zero3d(3) LET zero3d(1) = 0.0 LET zero3d(2) = 0.0 LET zero3d(3) = 0.0 DIM zero5d(5) LET zero5d(1) = 0.0 LET zero5d(2) = 0.0 LET zero5d(3) = 0.0 LET zero5d(4) = 0.0 LET zero5d(5) = 0.0 DIM x(3) LET x(1) = 1.0 LET x(2) = 0.0 LET x(3) = 0.0 DIM y(3) LET y(1) = 0.0 LET y(2) = 1.0 LET y(3) = 0.0 DIM z(3) LET z(1) = 0.0 LET z(2) = 0.0 LET z(3) = 1.0 DIM q(3) LET q(1) = 1.0 LET q(2) = 1.0 LET q(3) = 3.14159 DIM r(3) LET r(1) = -1.0 LET r(2) = 2.618033989 LET r(3) = 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()) END