42 # define M_TWOPI 6.2831853071795862319959 46 # define M_PI 3.141592653589793238462643383279502884196 49 #define to_radians(x) ( (x) * (M_PI / 180.0 )) 50 #define to_degrees(x) ( (x) * (180.0 / M_PI )) 52 #define max(A, B) (A < B ? B : A) 53 #define min(A, B) (A < B ? A : B) 63 static inline int dequals_mag(
double a,
double b,
double thresh)
65 return (fabs(a-b) < thresh);
68 static inline int isq(
int v)
73 static inline float fsq(
float v)
78 static inline double sq(
double v)
83 static inline double sgn(
double v)
85 return (v>=0) ? 1 : -1;
91 return (
float)(rand() / (RAND_MAX + 1.0));
103 int v = (int) (
randf()*bound);
126 return ref +
mod2pi(vin - ref);
132 return vin - 360 * floor(vin / 360);
142 return (vin % mod + mod) % mod;
148 int v = (int) (theta /
M_TWOPI * max);
153 assert (v >= 0 && v < max);
158 static inline int imin(
int a,
int b)
160 return (a < b) ? a : b;
163 static inline int imax(
int a,
int b)
165 return (a > b) ? a : b;
168 static inline int64_t
imin64(int64_t a, int64_t b)
170 return (a < b) ? a : b;
173 static inline int64_t
imax64(int64_t a, int64_t b)
175 return (a > b) ? a : b;
178 static inline int iclamp(
int v,
int minv,
int maxv)
192 static inline int fltcmp (
float f1,
float f2)
194 float epsilon = f1-f2;
197 else if (epsilon > 0.0)
203 static inline int dblcmp (
double d1,
double d2)
205 double epsilon = d1-d2;
208 else if (epsilon > 0.0)
static int iclamp(int v, int minv, int maxv)
static int dblcmp(double d1, double d2)
static double mod360_positive(double vin)
static int irand(int bound)
static int imax(int a, int b)
static double sgn(double v)
static double mod2pi(double vin)
static int fltcmp(float f1, float f2)
static double sq(double v)
static int imin(int a, int b)
static float fsq(float v)
static double mod360(double vin)
static float signed_randf()
static int64_t imin64(int64_t a, int64_t b)
static double mod2pi_ref(double ref, double vin)
static double dclamp(double a, double min, double max)
static int mod_positive(int vin, int mod)
static int64_t imax64(int64_t a, int64_t b)
static int theta_to_int(double theta, int max)
static int dequals_mag(double a, double b, double thresh)
static double mod2pi_positive(double vin)