GNU Radio 3.7.0 C++ API
config.h
Go to the documentation of this file.
00001 #ifndef _MSC_VER // [
00002 #error "Use this header only with Microsoft Visual C++ compilers!"
00003 #endif // _MSC_VER ]
00004 
00005 #ifndef _MSC_CONFIG_H_ // [
00006 #define _MSC_CONFIG_H_
00007 
00008 ////////////////////////////////////////////////////////////////////////
00009 // enable inline functions for C code
00010 ////////////////////////////////////////////////////////////////////////
00011 #ifndef __cplusplus
00012 #  define inline __inline
00013 #endif
00014 
00015 ////////////////////////////////////////////////////////////////////////
00016 // signed size_t
00017 ////////////////////////////////////////////////////////////////////////
00018 #include <stddef.h>
00019 typedef ptrdiff_t ssize_t;
00020 
00021 ////////////////////////////////////////////////////////////////////////
00022 // rint functions
00023 ////////////////////////////////////////////////////////////////////////
00024 #include <math.h>
00025 static inline long lrint(double x){return (long)(x > 0.0 ? x + 0.5 : x - 0.5);}
00026 static inline long lrintf(float x){return (long)(x > 0.0f ? x + 0.5f : x - 0.5f);}
00027 static inline long long llrint(double x){return (long long)(x > 0.0 ? x + 0.5 : x - 0.5);}
00028 static inline long long llrintf(float x){return (long long)(x > 0.0f ? x + 0.5f : x - 0.5f);}
00029 static inline double rint(double x){return (x > 0.0)? floor(x + 0.5) : ceil(x - 0.5);}
00030 static inline float rintf(float x){return (x > 0.0f)? floorf(x + 0.5f) : ceilf(x - 0.5f);}
00031 
00032 ////////////////////////////////////////////////////////////////////////
00033 // math constants
00034 ////////////////////////////////////////////////////////////////////////
00035 #define INFINITY HUGE_VAL
00036 
00037 # define M_E            2.7182818284590452354   /* e */
00038 # define M_LOG2E        1.4426950408889634074   /* log_2 e */
00039 # define M_LOG10E       0.43429448190325182765  /* log_10 e */
00040 # define M_LN2          0.69314718055994530942  /* log_e 2 */
00041 # define M_LN10         2.30258509299404568402  /* log_e 10 */
00042 # define M_PI           3.14159265358979323846  /* pi */
00043 # define M_PI_2         1.57079632679489661923  /* pi/2 */
00044 # define M_PI_4         0.78539816339744830962  /* pi/4 */
00045 # define M_1_PI         0.31830988618379067154  /* 1/pi */
00046 # define M_2_PI         0.63661977236758134308  /* 2/pi */
00047 # define M_2_SQRTPI     1.12837916709551257390  /* 2/sqrt(pi) */
00048 # define M_SQRT2        1.41421356237309504880  /* sqrt(2) */
00049 # define M_SQRT1_2      0.70710678118654752440  /* 1/sqrt(2) */
00050 
00051 ////////////////////////////////////////////////////////////////////////
00052 // random and srandom
00053 ////////////////////////////////////////////////////////////////////////
00054 #include <stdlib.h>
00055 static inline long int random (void) { return rand(); }
00056 static inline void srandom (unsigned int seed) { srand(seed); }
00057 
00058 #endif // _MSC_CONFIG_H_ ]