SO3Fun.compactify edit page

compute the compactification of an given function on the Rotation Group. That means, we try to find a in some sense optimal set of orientations, that describes the given density function reasonable well. This is similar to the so called halftoning problem.

Therefore, we solve a minimization problem by gradient descent method to find a set of orientations, such that the corresponding worst case quadrature error with respect to all rotational polynomials (SO3FunHarmonics) up to some specified bandwidth is minimal.

For more details, see

Gräf, Manuel; Potts, Daniel; Steidl, Gabriele (2012). Quadrature Errors, Discrepancies, and Their Relations to Halftoning on the Torus and the Sphere. SIAM Journal on Scientific Computing, 34(5), A2760–A2791. doi:10.1137/100814731

Syntax

v = compactify(f)
v = compactify(f,'points',v,'bandwidth',32)
v = compactify(f,'points',5000,'maxIter',1000,'tol',0.05*degree)

Input

f SO3Fun
ori rotation (starting nodes)

Output

ori rotation

Options

points specify number of output points (default = 100)
bandwidth harmonic degree to approximate (default = 32)
maxIter for gradient descent (default = 100)
tol for gradient descent (default = 0.01*degree)
weights weights of points