cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> #include <paircw.h> extern void psnanf (float_pair result, const char * tag); extern void psnan (double_pair result, const char * tag); extern void psnanl (long_double_pair result, const char * tag); extern void psnanw (__float80_pair result, const char * tag); extern void psnanq (__float128_pair result, const char * tag); extern void psnanll (long_long_double_pair result, const char * tag); extern void psnandf (decimal_float_pair result, const char * tag); extern void psnand (decimal_double_pair result, const char * tag); extern void psnandl (decimal_long_double_pair result, const char * tag); extern void psnandll (decimal_long_long_double_pair result, const char * tag);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
In the mathcw library, the tag argument is expected to be string containing an unsigned hexadecimal integer, with an optional 0x prefix. Its low-order bits are installed in the low-order significand bits.
If the tag argument string is empty, or is NULL pointer, an internal counter is incremented on each call and installed in the low-order significand bits.
The generated signaling NaN is copied to both high and low parts of the function result.
On systems that lack support for both quiet and signaling NaNs, but provide just one kind of NaN, such as older versions of the Intel IA-32 architecture, and the Java Virtual Machine, this function generates a NaN that behaves like a quiet NaN. In particular, on such systems, moving a signaling NaN between registers and memory can turn it into a quiet NaN. A similar mutation happens on Motorola 68K systems, but only for psnanl().
None. The function result is stored in the first argument, result.