Newer
Older
import numpy as np
def circular_1d(x, c):
"""
Wrap values in circular space to smallest magnitude representation
:param x: n, | values in circular space (eg S^1)
:param c: period of circular space [0, c) (eg 2pi)
:return: n, | distances
"""
b = np.array([-c, 0])
d = np.min(np.abs((x % c) + b[:, np.newaxis]), axis=0)
return d