A vector is defined as having three dimensions as being represented by an ordered collection of three numbers:   (X, Y, Z).

If you imagine a graph with the   x   and   y   axis being at right angles to each other and having a third,   z   axis coming out of the page, then a triplet of numbers,   (X, Y, Z)   would represent a point in the region,   and a vector from the origin to the point.

Given the vectors:

        A = (a1,  a2,  a3) 
        B = (b1,  b2,  b3) 
        C = (c1,  c2,  c3) 

then the following common vector products are defined:

 The dot product       (a scalar quantity)
  A • B = a1b1   +   a2b2   +   a3b3  
 The cross product       (a vector quantity)
  A x B = (a2b3  -   a3b2,     a3b1   -   a1b3,     a1b2   -   a2b1)  
 The scalar triple product       (a scalar quantity)
  A • (B x C) 
 The vector triple product       (a vector quantity)
  A x (B x C) 


Task

Given the three vectors:

        a = ( 3,    4,    5)
        b = ( 4,    3,    5)
        c = (-5,  -12,  -13)

 Create a named function/subroutine/method to compute the dot product of two vectors.
 Create a function to compute the cross product of two vectors.
 Optionally create a function to compute the scalar triple product of three vectors.
 Optionally create a function to compute the vector triple product of three vectors.
 Compute and display: a • b
 Compute and display: a x b
 Compute and display: a • (b x c), the scalar triple product.
 Compute and display: a x (b x c), the vector triple product.


References

   A starting page on Wolfram MathWorld is   Vector Multiplication .
   Wikipedia   dot product. 
   Wikipedia   cross product. 
   Wikipedia   triple product.


Related tasks

   Dot product
   Quaternion type


    print "Vector products of 3-D vectors"
 
    print "Dot   product of 3,4,5 and 4,3,5 is "
    print DotProduct(   "3,4,5", "4,3,5")
    print "Cross product of 3,4,5 and 4,3,5 is "
    print CrossProduct$( "3,4,5", "4,3,5")
    print "Scalar triple product of 3,4,5,    4,3,5    -5, -12, -13 is "
    print ScalarTripleProduct( "3,4,5", "4,3,5", "-5, -12, -13")
    print "Vector triple product of 3,4,5,    4,3,5    -5, -12, -13 is "
    print VectorTripleProduct$( "3,4,5", "4,3,5", "-5, -12, -13")
 
 
    end
 
    function DotProduct( i$, j$)
        ix =val( word$( i$, 1, ","))
        iy =val( word$( i$, 2, ","))
        iz =val( word$( i$, 3, ","))
        jx =val( word$( j$, 1, ","))
        jy =val( word$( j$, 2, ","))
        jz =val( word$( j$, 3, ","))
        DotProduct = ix *jx +iy *jy + iz *jz
    end function
 
    function CrossProduct$( i$, j$)
        ix =val( word$( i$, 1, ","))
        iy =val( word$( i$, 2, ","))
        iz =val( word$( i$, 3, ","))
        jx =val( word$( j$, 1, ","))
        jy =val( word$( j$, 2, ","))
        jz =val( word$( j$, 3, ","))
        cpx =iy *jz -iz *jy
        cpy =iz *jx -ix *jz
        cpz =ix *jy -iy *jx
        CrossProduct$ =str$( cpx); ","; str$( cpy); ","; str$( cpz)
    end function
 
    function ScalarTripleProduct( i$, j$, k$))
        ScalarTripleProduct =DotProduct( i$, CrossProduct$( j$, k$))
    end function
 
    function VectorTripleProduct$( i$, j$, k$))
        VectorTripleProduct$ =CrossProduct$( i$, CrossProduct$( j$, k$))
    end function
 END SUB