42 #define PI 3.14159265358979323846264338
45 #define to_radians(x) ( (x) * (PI / 180.0 ))
46 #define to_degrees(x) ( (x) * (180.0 / M_PI ))
48 static inline double sq(
double v)
53 static inline double sgn(
double v)
55 return (v>=0) ? 1 : -1;
61 return ((
float) rand()) / (RAND_MAX + 1.0);
70 static inline int irand(
int bound)
72 int v = (int) (
randf()*bound);
78 #define TWOPI_INV (0.5/PI)
87 return vin - qi*
TWOPI;
91 static inline double mod2pi(
double vin)
102 return ref +
mod2pi(vin - ref);
108 int v = (int) (theta / ( 2 *
PI ) * max);
113 assert (v >= 0 && v < max);
118 static inline int imin(
int a,
int b)
120 return (a < b) ? a : b;
123 static inline int imax(
int a,
int b)
125 return (a > b) ? a : b;
128 static inline int64_t
imin64(int64_t a, int64_t b)
130 return (a < b) ? a : b;
133 static inline int64_t
imax64(int64_t a, int64_t b)
135 return (a > b) ? a : b;
138 static inline int iclamp(
int v,
int minv,
int maxv)
143 static inline double fclamp(
double v,
double minv,
double maxv)
145 return fmax(minv, fmin(v, maxv));
static int iclamp(int v, int minv, int maxv)
static double fclamp(double v, double minv, double maxv)
static int irand(int bound)
static int imax(int a, int b)
static double sgn(double v)
static double mod2pi(double vin)
static double sq(double v)
static int imin(int a, int b)
static float signed_randf()
static int64_t imin64(int64_t a, int64_t b)
static double mod2pi_ref(double ref, double vin)
static int64_t imax64(int64_t a, int64_t b)
static int theta_to_int(double theta, int max)
static double mod2pi_positive(double vin)