Al escribir algunos casos de prueba, y algunas de las pruebas comprobar el resultado de un NaN.¿NaN negativo no es un NaN?
He intentado utilizar std::isnan
pero los failes de aserción:
Assertion `std::isnan(x)' failed.
Después de imprimir el valor de x
, resultó que es NaN negativo (-nan
) que es totalmente aceptable en mi caso.
Después de tratar de usar el hecho de que NaN != NaN
y usando assert(x == x)
, el compilador me hace un 'favor' y optimiza la afirmación de distancia.
Haciendo mi propia función isNaN
se está optimizando lejos también.
¿Cómo puedo verificar la igualdad de NaN y -NaN?
o_O? Negativo NaN * es * NaN. – kennytm
¿Podría mostrar cómo escribe su propio 'isNaN', y quizás el incorporado de su compilador si lo tiene? Una manera de probar ** a ** NaN (hay varios, como habrás notado) es probar el patrón de bits en http://en.wikipedia.org/wiki/NaN (el exponente es 11..11). –
¿Qué compilador estás usando y cómo es tu código de prueba? – jalf