IEEE 754 Quiet NaN

Overloading double precision numbers can be quite useful for certain magic parameters or dual input. Hence, divERGe provides basic quiet NaN facilities listed below (in inline version, and in compiled/python version):

static inline double qnan_gen(uint64_t payload)
[source]

generate a quiet NaN that has a 51bit unsigned integer payload

static inline int qnan_isnan(double x)
[source]

check whether a double holds a quiet NaN (same as fnan_isnan())

static inline uint64_t qnan_get(double x)
[source]

get the 51bit unsigned integer payload from a quiet NaN

static inline double fnan_gen(double payload)
[source]

generate a quiet NaN that has a 51bit floating point payload (a double truncated in precision)

static inline double fnan_get(double x)
[source]

get the precision truncated double (51bit floating point) payload from a quiet NaN

static inline int fnan_isnan(double x)
[source]

check whether a double holds a quiet NaN (same as qnan_isnan())

static inline float qnanf_gen(uint32_t payload)
[source]

generate a quiet NaNf that has a 22bit unsigned integer payload

static inline int qnanf_isnan(float x)
[source]

check whether a float holds a quiet NaNf (same as fnanf_isnsn())

static inline uint32_t qnanf_get(float x)
[source]

get the 22bit unsigned integer payload from a quiet NaNf

static inline float fnanf_gen(float payload)
[source]

generate a quiet NaNf that has a 22bit floating point payload (a float truncated in precision)

static inline float fnanf_get(float x)
[source]

get the precision truncated float (22bit floating point) payload from a quiet NaN

static inline int fnanf_isnan(float x)
[source]

check whether a float holds a quiet NaNf (same as qnanf_isnsn())

double diverge_qnan_gen(uint64_t payload)
[source]

compiled version of qnan_gen()

uint64_t diverge_qnan_get(double x)
[source]

compiled version of qnan_get()

int diverge_qnan_isnan(double x)
[source]

compiled version of qnan_isnan()

double diverge_fnan_gen(double payload)
[source]

compiled version of fnan_gen()

double diverge_fnan_get(double x)
[source]

compiled version of fnan_get()

int diverge_fnan_isnan(double x)
[source]

compiled version of fnan_isnan()

float diverge_qnanf_gen(uint32_t payload)
[source]

compiled version of qnanf_gen()

uint32_t diverge_qnanf_get(float x)
[source]

compiled version of qnanf_get()

int diverge_qnanf_isnan(float x)
[source]

compiled version of qnanf_isnan()

float diverge_fnanf_gen(float payload)
[source]

compiled version of fnanf_gen()

float diverge_fnanf_get(float x)
[source]

compiled version of fnanf_get()

int diverge_fnanf_isnan(float x)
[source]

compiled version of fnanf_isnan()