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.