Skip to content

Instantly share code, notes, and snippets.

@ecnelises
Created February 13, 2020 09:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ecnelises/5e440a81dac941ac975c38878bfbc4e7 to your computer and use it in GitHub Desktop.
Save ecnelises/5e440a81dac941ac975c38878bfbc4e7 to your computer and use it in GitHub Desktop.
Test rint impact for sNaN and qNaNs
#include <cstdio>
#include <cmath>
#include <limits>
#include <ctime>
#define __STDC_WANT_IEC_60559_BFP_EXT__
using namespace std;
double qnan, snan, result;
int main(void) {
// Keep it from being propagated
if (clock() / CLOCKS_PER_SEC < 0xFFFFFF00) {
qnan = numeric_limits<double>::quiet_NaN();
snan = numeric_limits<double>::signaling_NaN();
}
result = rint(snan);
printf("%lX %lX %lX\n", qnan, snan, result);
printf("%d %d %d\n", issignaling(qnan), issignaling(snan), issignaling(result));
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment