invalid operands to binary have double and double