29 inline double unfold(
double x,
int nx,
double A)
31 if (nx % 2 == 0)
return (nx * A + x);
32 else return (nx * A - x);
42 inline double unfold(
double kx,
int nx)
44 if (nx % 2 == 0)
return kx;
57 inline void fold(
double xu,
double A,
double& x,
double& kx,
int& nx)
76 inline double clip(
double x,
int Nx,
double A,
double xmi,
double xma)
79 x = std::max(std::min(x, xma), xmi) - Nx * A;
80 if (Nx % 2 != 0) x = -x;
92 return (j2 - j1 + 1 - abs(j1) % 2) / 2;
102 angle = fmod(angle, 2 * M_PI);
103 if (angle < 0) angle += 2 * M_PI;
double unfold(double x, int nx, double A)
unfold a coordinate.
double clip(double x, int Nx, double A, double xmi, double xma)
Performs a clip on x w.r.t xmi and xma.
void fold(double xu, double A, double &x, double &kx, int &nx)
fold a coordinate (inverse of unfold).
int getNumOfEven(int j1, int j2)
Returns number of even numbers in the range given by arguments.
double within2PI(double angle)
Returns angle within 0 and 2PI.
Abstract base class for different kinds of events.