Group Group::cyclic(int n) {return Group(Cyclic(n)); }
float cyclicDistance(const Cyclic &x, const float y) { const float range = x.max - x.min; const float diffUp = Cyclic(0, x.max - x.min, y - x); return (diffUp < range / 2) ? diffUp : diffUp - range; }