#include <stdio.h>
#include <math.h>
const char *run_fpclassify(double n);
int main(int argc, char **argv)
{
printf("fpclassify(0.0 / 0.0) = %s\n", run_fpclassify(0.0 / 0.0));
printf("fpclassify(1.0 / 0.0) = %s\n", run_fpclassify(1.0 / 0.0));
printf("fpclassify(1.0) = %s\n", run_fpclassify(1.0));
printf("fpclassify(-0.0) = %s\n", run_fpclassify(-0.0));
return 0;
}
const char *run_fpclassify(double n)
{
switch(fpclassify(n))
{
case FP_INFINITE: return "Infinite";
case FP_NAN: return "NaN";
case FP_ZERO: return "zero";
case FP_NORMAL: return "normal";
case FP_SUBNORMAL: return "subnormal";
default: return "unknown";
}
}
/*
run:
fpclassify(0.0 / 0.0) = NaN
fpclassify(1.0 / 0.0) = Infinite
fpclassify(1.0) = normal
fpclassify(-0.0) = zero
*/