the discrepancy between two measures on SO(3), densities or weighted orientation sets in any pairing: D_2, D_ball or a bandlimited L2 norm; MATLAB’s SO3Fun/discrepancy and rotation/discrepancy

Syntax

d = rotationalDiscrepancy(ori1, ori2)

D_2 of two orientation sets.

d = rotationalDiscrepancy(odf, ori, weights=c)

Of a density and a weighted sample.

d = rotationalDiscrepancy(ori1, ori2, 'L2', bandwidth=16, squared=True)

The squared bandlimited norm.

d, info = rotationalDiscrepancy(odf, ori, 'D_ball', numCenters=4097, info=True)

The largest ball difference and its ball.

Description

With B(C, r) = {R : angle(C, R) <= r} the balls of SO(3) and nu = mu - eta the difference of the two measures, the metric is one of:

  • ‘D_2’, the default: the root of the mean of |nu(B(C, r))|^2 over the centres (Haar measure) and the radii (sin(r) dr), by Stolarsky’s identity nu(SO3)^2 / 2 - 1/(2 sqrt(2) pi) int int |R - S|_F dnu dnu. Samples are taken exactly, functions through their harmonic expansion.
  • ‘D_ball’: the largest |nu(B(C, r))|, found by a finite search over centres and radii. It is a lower bound; raise numCenters and numRadii until it settles.
  • ‘L2’, also ‘E_L’: the root of the weighted sum of the squared Wigner coefficients of nu up to the bandwidth.

All three count a difference in total mass: an ODF of mean one (integral 8 pi^2) and the probability density of the same texture differ. Point weights are normalised to sum one, and a sample compared with a function takes its integral (one if that vanishes). An orientation stands for all its symmetrically equivalent rotations, a rotation for one.

MATLAB’s metric ‘kernel’, the objective of optimalSample, is taken by discrepancy, not here.

Input

a, b SO3Fun, a real scalar density, or rotation and orientation, a sample
metric ‘D_2’, ‘D_ball’ or ‘L2’ (also ‘E_L’)

Keywords

keyword default description
weights None the non negative weights of the orientations of a
weights2 None the weights of the orientations of b
bandwidth None the harmonic degree of the projection of the functions and of the L2 moments; by default the largest bandwidth of the functions, 64 for two samples
degreeWeights None the L2 weights of the degrees 0..L, an array or a function of the degree; ones by default, degree zero weighting the difference in total mass
numCenters 2049 the number of ball centres D_ball searches, besides the identity and the atoms
numRadii 257 the number of radii D_ball searches, besides the jumps at the atoms
centers None rotation, the ball centres D_ball searches instead
squared False return the square of D_2 and L2
info False return the details too, as a second output

Output

d the discrepancy, its square with squared=True
info with info=True: method, isExact, bandwidth, and for D_ball the ball found, center, radius, closed (False for the limit of open balls), signedDifference

See also

discrepancy, sphericalDiscrepancy, optimalSample

MATLAB’s rotationalDiscrepancy

source

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/rotationalDiscrepancy_py.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.