public double dot(Vector x) {
		if (x == null || this.values.length != x.values.length)
			throw new IllegalArgumentException();
		
		double dot = 0;
		for (int i = 0; i < values.length; i++) {
			dot += values[i] * x.values[i];
		}
		
		return dot;
	}