static double signed( double x, double umax, double smin, double smax ){ x = mod( x, umax ); if( x > smax ) return x - umax; if( x < smin ) return x + umax; return x; }