IV3MLV677VWS7GLESBQZ4HRFNW5TBFBIGIBWXTCHAER3FQ7VG3GQC
EHF2P5PKVTMAUL5R5QSZ3DS3VLE7Z6SHJTCZAGRBTQ66Y7HZKNYQC
GECUITHDXKCWB7HBCM7EA5Q56JDDWUVUWHMW2K6OM7UW36DFAZ3QC
M5R6KQLXLGYSVKHVAX5AJKD6NYE6IM5Z6WVTR3BTKPJDNNKF3ARAC
BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC
UAAT6NQ2HFOTZZPJX63COUOSD2GLW2L5JMFSAKLFNNFUCGR4XP6AC
BSMJ4V7GV3EOGY4KCSTOJQUOFE2OOCIKQETE4WC2WRNLWBQIBW3QC
BPRNUTY7MHK7LK4EY5MY5OFFG3ABOL7LWXD574L35M74YSQPULFAC
IL5XPFSWQX3OWZHEUSDP3R2IKVWHHOI6MNNBKU3P6MNBT6MVYJ2QC
DECLARE_CCTK_PARAMETERS;
if (!poison_undefined_values)
return;
const valid_t &valid = scalargroupdata.valid.at(tl).at(vi);
if (!valid.valid_int && !valid.valid_bnd)
return;
// scalar have no boundary so we expect it to alway be valid
assert(valid.valid_bnd);
atomic<bool> found_nan{false};
if (valid.valid_int) {
CCTK_REAL *restrict const ptr = scalargroupdata.data.at(tl).at(vi);
if (CCTK_BUILTIN_EXPECT(isnan(*ptr), false)) {
found_nan = true;
}
}
if (CCTK_BUILTIN_EXPECT(found_nan, false)) {
const char *where = valid.valid_int && valid.valid_bnd
? "interior and boundary"
: valid.valid_int ? "interior" : "boundary";