dotVV method

double dotVV (List<double> vec1, List<double> vec2)

Returns scalar product vec1 dot vec2.

Implementation

double dotVV(List<double> vec1, List<double> vec2) {
  int i, n = vec1.length, i1;
  double ret = vec1[n - 1] * vec2[n - 1];
  for (i = n - 2; i >= 1; i -= 2) {
    i1 = i - 1;
    ret += vec1[i] * vec2[i] + vec1[i1] * vec2[i1];
  }
  if (i == 0) {
    ret += vec1[0] * vec2[0];
  }
  return ret;
}