~librecad-dev/librecad/librecad

« back to all changes in this revision

Viewing changes to librecad/src/main/emu_c99.h

  • Committer: Scott Howard
  • Date: 2014-02-21 19:07:55 UTC
  • Revision ID: showard@debian.org-20140221190755-csjax9wb146hgdq4
first commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Workaround: Emulate some C99 <math.h> functions.
 
3
 */
 
4
 
 
5
#ifdef EMU_C99
 
6
#include <assert.h>
 
7
 
 
8
long int lrint(double x);
 
9
double round(double x);
 
10
double remainder(double x, double y);
 
11
 
 
12
#define isfinite(x) \
 
13
    ((sizeof (x) == sizeof (float)) ? _finite((double)(x)) : \
 
14
     (sizeof (x) == sizeof (double)) ? _finite(x) : \
 
15
      (assert(0),-1))
 
16
 
 
17
#define isinf(x) \
 
18
    ((sizeof (x) == sizeof (float)) ? __isinfd((double)(x)) : \
 
19
     (sizeof (x) == sizeof (double)) ? __isinfd(x) : \
 
20
      (assert(0),-1))
 
21
 
 
22
#define isnan(x) \
 
23
    ((sizeof (x) == sizeof (float)) ? __isnand((double)(x)) : \
 
24
     (sizeof (x) == sizeof (double)) ? __isnand(x) : \
 
25
      (assert(0),-1))
 
26
 
 
27
#define isnormal(x) \
 
28
    ((sizeof (x) == sizeof (float)) ? __isnormald((double)(x)) : \
 
29
     (sizeof (x) == sizeof (double)) ? __isnormald(x) : \
 
30
      (assert(0),-1))
 
31
 
 
32
int __isinfd(double);
 
33
int __isnand(double);
 
34
int __isnormald(double);
 
35
 
 
36
#endif