Task

Create a function/use an in-built function, to compute the   dot product,   also known as the   scalar product   of two vectors.

If possible, make the vectors of arbitrary length.



As an example, compute the dot product of the vectors:

     [1,  3, -5]       and 
     [4, -2, -1]   


If implementing the dot product of two vectors directly:

   each vector must be the same length
   multiply corresponding terms from each vector
   sum the products   (to produce the answer)


Related task

   Vector products


/* NetRexx */
options replace format comments java crossref savelog symbols binary
 
whatsTheVectorVictor = [[double 1.0, 3.0, -5.0], [double 4.0, -2.0, -1.0]]
dotProduct = Rexx dotProduct(whatsTheVectorVictor)
say dotProduct.format(null, 2)
 
return
 
method dotProduct(vec1 = double[], vec2 = double[]) public constant returns double signals IllegalArgumentException
  if vec1.length \= vec2.length then signal IllegalArgumentException('Vectors must be the same length')
 
  scalarProduct = double 0.0
  loop e_ = 0 to vec1.length - 1
    scalarProduct = vec1[e_] * vec2[e_] + scalarProduct
    end e_
 
  return scalarProduct
 
method dotProduct(vecs = double[,]) public constant returns double signals IllegalArgumentException
  return dotProduct(vecs[0], vecs[1])