GNU Radio C++ API
cmake/msvc/config.h
Go to the documentation of this file.
1 #ifndef _MSC_VER // [
2 #error "Use this header only with Microsoft Visual C++ compilers!"
3 #endif // _MSC_VER ]
4 
5 #ifndef _MSC_CONFIG_H_ // [
6 #define _MSC_CONFIG_H_
7 
8 ////////////////////////////////////////////////////////////////////////
9 // enable inline functions for C code
10 ////////////////////////////////////////////////////////////////////////
11 #ifndef __cplusplus
12 # define inline __inline
13 #endif
14 
15 ////////////////////////////////////////////////////////////////////////
16 // signed size_t
17 ////////////////////////////////////////////////////////////////////////
18 #include <stddef.h>
19 typedef ptrdiff_t ssize_t;
20 
21 ////////////////////////////////////////////////////////////////////////
22 // rint functions
23 ////////////////////////////////////////////////////////////////////////
24 static inline long lrint(double x){return (long)(x > 0.0 ? x + 0.5 : x - 0.5);}
25 static inline long lrintf(float x){return (long)(x > 0.0f ? x + 0.5f : x - 0.5f);}
26 static inline double rint(double x){return (double)lrint(x);}
27 static inline float rintf(float x){return (float)lrintf(x);}
28 
29 ////////////////////////////////////////////////////////////////////////
30 // math constants
31 ////////////////////////////////////////////////////////////////////////
32 #define INFINITY HUGE_VAL
33 
34 # define M_E 2.7182818284590452354 /* e */
35 # define M_LOG2E 1.4426950408889634074 /* log_2 e */
36 # define M_LOG10E 0.43429448190325182765 /* log_10 e */
37 # define M_LN2 0.69314718055994530942 /* log_e 2 */
38 # define M_LN10 2.30258509299404568402 /* log_e 10 */
39 # define M_PI 3.14159265358979323846 /* pi */
40 # define M_PI_2 1.57079632679489661923 /* pi/2 */
41 # define M_PI_4 0.78539816339744830962 /* pi/4 */
42 # define M_1_PI 0.31830988618379067154 /* 1/pi */
43 # define M_2_PI 0.63661977236758134308 /* 2/pi */
44 # define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
45 # define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
46 # define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
47 
48 ////////////////////////////////////////////////////////////////////////
49 // random and srandom
50 ////////////////////////////////////////////////////////////////////////
51 #include <stdlib.h>
52 static inline long int random (void) { return rand(); }
53 static inline void srandom (unsigned int seed) { srand(seed); }
54 
55 #endif // _MSC_CONFIG_H_ ]