Numworks Epsilon  1.4.1
Graphing Calculator Operating System
fpclassify.c
Go to the documentation of this file.
1 #include <math.h>
2 #include <private/ieee754.h>
3 
4 int __fpclassify(double x) {
5  if (ieee754exp64(x) == 0) {
6  if (ieee754man64(x) == 0x0) {
7  return FP_ZERO;
8  } else {
9  return FP_SUBNORMAL;
10  }
11  }
12  if (ieee754exp64(x) == 0x7FF) {
13  if (ieee754man64(x) == 0) {
14  return FP_INFINITE;
15  } else {
16  return FP_NAN;
17  }
18  }
19  return FP_NORMAL;
20 }
uint16_t ieee754exp64(double x)
Definition: ieee754.c:19
#define FP_NORMAL
Definition: math.h:34
uint64_t ieee754man64(double x)
Definition: ieee754.c:14
#define FP_ZERO
Definition: math.h:36
#define FP_INFINITE
Definition: math.h:32
#define x0
Definition: b_tgamma.c:86
#define FP_SUBNORMAL
Definition: math.h:35
#define FP_NAN
Definition: math.h:33
int __fpclassify(double x)
Definition: fpclassify.c:4