replaced defined(DOUBLE) by !defined(XDOUBLE)