GNU Radio Manual and C++ API Reference  3.7.4
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
gnuradio/volk/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 #include <math.h>
25 static inline long lrint(double x){return (long)(x > 0.0 ? x + 0.5 : x - 0.5);}
26 static inline long lrintf(float x){return (long)(x > 0.0f ? x + 0.5f : x - 0.5f);}
27 static inline long long llrint(double x){return (long long)(x > 0.0 ? x + 0.5 : x - 0.5);}
28 static inline long long llrintf(float x){return (long long)(x > 0.0f ? x + 0.5f : x - 0.5f);}
29 static inline double rint(double x){return (x > 0.0)? floor(x + 0.5) : ceil(x - 0.5);}
30 static inline float rintf(float x){return (x > 0.0f)? floorf(x + 0.5f) : ceilf(x - 0.5f);}
31 
32 ////////////////////////////////////////////////////////////////////////
33 // math constants
34 ////////////////////////////////////////////////////////////////////////
35 #define INFINITY HUGE_VAL
36 
37 # define M_E 2.7182818284590452354 /* e */
38 # define M_LOG2E 1.4426950408889634074 /* log_2 e */
39 # define M_LOG10E 0.43429448190325182765 /* log_10 e */
40 # define M_LN2 0.69314718055994530942 /* log_e 2 */
41 # define M_LN10 2.30258509299404568402 /* log_e 10 */
42 # define M_PI 3.14159265358979323846 /* pi */
43 # define M_PI_2 1.57079632679489661923 /* pi/2 */
44 # define M_PI_4 0.78539816339744830962 /* pi/4 */
45 # define M_1_PI 0.31830988618379067154 /* 1/pi */
46 # define M_2_PI 0.63661977236758134308 /* 2/pi */
47 # define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
48 # define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
49 # define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
50 
51 ////////////////////////////////////////////////////////////////////////
52 // random and srandom
53 ////////////////////////////////////////////////////////////////////////
54 #include <stdlib.h>
55 static inline long int random (void) { return rand(); }
56 static inline void srandom (unsigned int seed) { srand(seed); }
57 
58 #endif // _MSC_CONFIG_H_ ]
static long long llrint(double x)
Definition: gnuradio/volk/cmake/msvc/config.h:27
ptrdiff_t ssize_t
Definition: gnuradio/volk/cmake/msvc/config.h:19
static long int random(void)
Definition: gnuradio/volk/cmake/msvc/config.h:55
static double rint(double x)
Definition: gnuradio/volk/cmake/msvc/config.h:29
static void srandom(unsigned int seed)
Definition: gnuradio/volk/cmake/msvc/config.h:56
static float rintf(float x)
Definition: gnuradio/volk/cmake/msvc/config.h:30
static long lrintf(float x)
Definition: gnuradio/volk/cmake/msvc/config.h:26
static long long llrintf(float x)
Definition: gnuradio/volk/cmake/msvc/config.h:28
static long lrint(double x)
Definition: gnuradio/volk/cmake/msvc/config.h:25