fix as suggested by asmeuer (is_negative implies is_real.)
test