33 double root = b * b - 4 * a *
c;
38 results[0] = ( -b + root ) / ( 2 * a );
39 results[1] = ( -b - root ) / ( 2 * a );
46double max3(
double v1,
double v2,
double v3 )
48 double max = ( v1 > v2 ) ? v1 : v2;
49 max = ( max > v3 ) ? max : v3;
56double min3(
double v1,
double v2,
double v3 )
59 min = ( v1 < v2 ) ? v1 : v2;
60 min = ( min < v3 ) ? min : v3;
72 void *tmp = array[--n];
91int rectOverlap(
double x,
double y,
double w,
double h,
double x2,
double y2,
92 double w2,
double h2 )
95 if ( ( x + w < x2 ) || ( y + h < y2 ) || ( x > x2 + w2 ) || ( y > y2 + h2 ) )
106 return 0.5 * ( 1. - cos( x * M_PI ) );
116 return -2. * x * x + 4 * x - 1.;
125 return 4. * x * x * x;
126 double y = 2. * x - 2.;
127 return 0.5 * y * y * y + 1.;
Provides macros to work with dynamic arrays.
static ALWAYS_INLINE int array_size(const void *array)
Returns number of elements in the array.
Header file with generic functions and naev-specifics.
double ease_SineInOut(double x)
Simple symmetric sine-based easing.
double min3(double v1, double v2, double v3)
Returns the minimum of 3 values.
void arrayShuffle(void **array)
Randomly sorts an array (array.h) of pointers in place with the Fisher-Yates shuffle.
double max3(double v1, double v2, double v3)
Returns the maximum of 3 values.
int nmath_solve2Eq(double results[2], double a, double b, double c)
Solves the equation: a * x^2 + b * x + c = 0.
double ease_CubicInOut(double x)
Simple symmetric cubic easing.
int rectOverlap(double x, double y, double w, double h, double x2, double y2, double w2, double h2)
Checks whether two rectangles overlap at any point.
double ease_QuadraticInOut(double x)
Simple symmetric quadratic easing.