double dot(Vector v) { assert(v.size == this.size); double result = 0.0; for (int i = 0; i < this.size; i++) { result += this[i] * v[i]; } return result; }