"""Dictionaries storing the generic beat-coefficients for simulating segmented
photoiodes.
Builtin pdtypes:
* SINGLE - single element photodiode
* XSPLIT - measuring horizontal/yaw motions
* YSPLIT - measuring vertical/pitch motions
Use the function `construct_segment_beat_matrix` to convert these dictionary definitions
into a dense or sparse CSR matrix for using in calculations.
"""
import numpy as np
import numbers
from finesse.cymath.sparsemath import CSRMatrix
[docs]def get_pdtype(pdtype: str) -> dict:
"""Returns a pdtype dictionary definition in this module for a given string name."""
return globals()[pdtype.upper()] if isinstance(pdtype, str) else pdtype
[docs]def construct_segment_beat_matrix(
mode_index_map, beats_dict, sparse_output=False, assert_hermitian=True
):
"""Takes a pdtype definition dict and converts it into a matrix suitable to use with
a KnmMatrix.
Parameters
----------
mode_index_map : dict[(n,m), index]
Dictionary of mode indices and index
beats_dict : str, pdtype style dict
A dictionary in the pdtype style describing a particular segmentation
type for a sensor. If a string is given it will try and get a builtin
pdtype dict
sparse_output : bool, optional
Return a sparse CSR matrix object rather than a dense one
assert_hermitian : bool, optional
If true then the generated matrix from the pdtype definition must be Hermitian
Returns
-------
2D Complex matrix of size (N, N) with N=len(mode_index_map) or a
CSRMatrix if requested.
Examples
--------
>>> pdtypes.construct_segment_beat_matrix(model.mode_index_map, pdtype.YSPLIT)
array([[0. +0.j, 0.79788456+0.j, 0. +0.j],
[0.79788456+0.j, 0. +0.j, 0. +0.j],
[0. +0.j, 0. +0.j, 0. +0.j]])
Another example showing how to manually compute the segmented photodiode
beat signal using this matrix output whilst misaligning some optic.
>>> import finesse
>>> import matplotlib.pyplot as plt
>>> finesse.init_plotting()
>>> # Simple laser reflecting from a steering mirror
>>> model = finesse.script.parse('''
... l l1 P=1
... bs bs1 R=1 T=0
... nothing n1
... link(l1, bs1, 10, n1)
... fd E n1.p1.i f=0
... xaxis(bs1.xbeta, lin, 0, 1e-6, 4)
... gauss g1 l1.p1.o w=1m Rc=inf
... modes(maxtem=3)
... ''')
>>> # Run the model and extract the matrix of mode amplitudes
>>> sol = model.run()
>>> E = sol['E']
>>> # Get the beat matrix for a quadrant photodiode
>>> M = finesse.detectors.pdtypes.construct_segment_beat_matrix(
... model.mode_index_map,
... finesse.detectors.pdtypes.XSPLIT
... )
>>> # Compute E^* . M . E over the array
>>> S = (E.conj() * (M @ E.T).T).sum(1)
>>> plt.plot(sol.x1, abs(S))
>>> plt.xlabel("Misalignment [rad]")
>>> plt.ylabel("Signal [W]")
>>> plt.title("QPD alignment signal")
"""
# TODO ddb - don't need to generate the dense matrix first to then
# convert it into a sparse representation, would be more efficient
# to go straight to sparse.
if isinstance(beats_dict, str):
beats_dict = get_pdtype(beats_dict)
N = len(mode_index_map)
_beats = np.zeros((N, N), dtype=complex)
maxtem = max(max(mode_index_map, key=lambda x: max(x)))
for (n1, m1, n2, m2), factor in beats_dict.items():
if all(isinstance(k, numbers.Number) for k in (n1, m1, n2, m2)):
idx = mode_index_map.get((n1, m1), -1)
jdx = mode_index_map.get((n2, m2), -1)
if idx >= 0 and jdx >= 0:
_beats[idx, jdx] = factor
_beats[jdx, idx] = factor
elif all(k in ("x", "y") for k in (m1, m2)) and all(
isinstance(k, numbers.Number) for k in (n1, n2)
):
for m in range(maxtem + 1):
idx = mode_index_map.get((n1, m), -1)
jdx = mode_index_map.get((n2, m), -1)
if idx >= 0 and jdx >= 0:
_beats[idx, jdx] = factor
_beats[jdx, idx] = factor
elif all(k in ("x", "y") for k in (n1, n2)) and all(
isinstance(k, numbers.Number) for k in (m1, m2)
):
for n in range(maxtem + 1):
idx = mode_index_map.get((n, m1), -1)
jdx = mode_index_map.get((n, m2), -1)
if idx >= 0 and jdx >= 0:
_beats[idx, jdx] = factor
_beats[jdx, idx] = factor
elif n1 == n2 and m1 == m2:
for n in range(maxtem + 1):
for m in range(maxtem + 1):
idx = mode_index_map.get((n, m), -1)
jdx = mode_index_map.get((n, m), -1)
if idx >= 0 and jdx >= 0:
_beats[idx, jdx] = factor
_beats[jdx, idx] = factor
elif n1 == m2 and m1 == n2:
for n in range(maxtem + 1):
for m in range(maxtem + 1):
idx = mode_index_map.get((n, m), -1)
jdx = mode_index_map.get((m, n), -1)
if idx >= 0 and jdx >= 0:
_beats[idx, jdx] = factor
_beats[jdx, idx] = factor
else:
raise NotImplementedError()
if assert_hermitian:
if np.all(_beats - _beats.T.conj() != 0):
raise Exception(f"Matrix generated by pdtype was not Hermitian:\n{_beats}")
if sparse_output:
return CSRMatrix(_beats)
else:
return _beats
SINGLE = {
("x", "y", "x", "y"): 1,
}
# split detector in x-direction, for up to TEM-order 40
XSPLIT = {
(0, "x", 1, "x"): 0.797884560802865,
(0, "x", 3, "x"): -0.32573500793528,
(0, "x", 5, "x"): 0.218509686118416,
(0, "x", 7, "x"): -0.168583882836184,
(0, "x", 9, "x"): 0.139074607877595,
(0, "x", 11, "x"): -0.119342192152758,
(0, "x", 13, "x"): 0.105105246952602,
(0, "x", 15, "x"): -0.0942883643366128,
(0, "x", 17, "x"): 0.085756077667627,
(0, "x", 19, "x"): -0.0788316791424408,
(0, "x", 21, "x"): 0.0730852493544752,
(0, "x", 23, "x"): -0.0682297483293215,
(0, "x", 25, "x"): 0.0640657596627177,
(0, "x", 27, "x"): -0.0604501569509354,
(0, "x", 29, "x"): 0.0572773850389327,
(0, "x", 31, "x"): -0.0544677839262821,
(0, "x", 33, "x"): 0.051960035687153,
(0, "x", 35, "x"): -0.0497061241097501,
(0, "x", 37, "x"): 0.0476678793880178,
(0, "x", 39, "x"): -0.0458145530435871,
(2, "x", 1, "x"): 0.564189583547756,
(2, "x", 3, "x"): 0.690988298942671,
(2, "x", 5, "x"): -0.257516134682126,
(2, "x", 7, "x"): 0.166889529453114,
(2, "x", 9, "x"): -0.126437912127138,
(2, "x", 11, "x"): 0.103140489653524,
(2, "x", 13, "x"): -0.0878334751963756,
(2, "x", 15, "x"): 0.0769291636262386,
(2, "x", 17, "x"): -0.0687238645863045,
(2, "x", 19, "x"): 0.0623003460579352,
(2, "x", 21, "x"): -0.0571189780993917,
(2, "x", 23, "x"): 0.0528405479815828,
(2, "x", 25, "x"): -0.0492405794558427,
(2, "x", 27, "x"): 0.0461642931761014,
(2, "x", 29, "x"): -0.0435013182859334,
(2, "x", 31, "x"): 0.0411707144994762,
(2, "x", 33, "x"): -0.0391116996228281,
(2, "x", 35, "x"): 0.0372776912078078,
(2, "x", 37, "x"): -0.0356323539463384,
(2, "x", 39, "x"): 0.0341469044387,
(4, "x", 1, "x"): -0.16286750396764,
(4, "x", 3, "x"): 0.598413420602149,
(4, "x", 5, "x"): 0.669046543557289,
(4, "x", 7, "x"): -0.240884286886713,
(4, "x", 9, "x"): 0.153297821464992,
(4, "x", 11, "x"): -0.114842936826923,
(4, "x", 13, "x"): 0.092969581005561,
(4, "x", 15, "x"): -0.0787358118089783,
(4, "x", 17, "x"): 0.0686730145130556,
(4, "x", 19, "x"): -0.0611475066641648,
(4, "x", 21, "x"): 0.0552860726690191,
(4, "x", 23, "x"): -0.0505782313126719,
(4, "x", 25, "x"): 0.0467048872492379,
(4, "x", 27, "x"): -0.0434559246068004,
(4, "x", 29, "x"): 0.0406871064724294,
(4, "x", 31, "x"): -0.0382959872150584,
(4, "x", 33, "x"): 0.0362077065246626,
(4, "x", 35, "x"): -0.0343662293597736,
(4, "x", 37, "x"): 0.0327287372726021,
(4, "x", 39, "x"): -0.031261920230486,
(6, "x", 1, "x"): 0.0892062058076385,
(6, "x", 3, "x"): -0.18209140509868,
(6, "x", 5, "x"): 0.61075313987865,
(6, "x", 7, "x"): 0.659688788381993,
(6, "x", 9, "x"): -0.233235207868822,
(6, "x", 11, "x"): 0.146771489830575,
(6, "x", 13, "x"): -0.109117578596892,
(6, "x", 15, "x"): 0.0878479967266388,
(6, "x", 17, "x"): -0.0740877073983095,
(6, "x", 19, "x"): 0.0644074398753087,
(6, "x", 21, "x"): -0.0571982549981952,
(6, "x", 23, "x"): 0.0516033260749633,
(6, "x", 25, "x"): -0.0471234847486845,
(6, "x", 27, "x"): 0.043447712204836,
(6, "x", 29, "x"): -0.0403718224901522,
(6, "x", 31, "x"): 0.0377560369073105,
(6, "x", 33, "x"): -0.0355013303057689,
(6, "x", 35, "x"): 0.0335355132263835,
(6, "x", 37, "x"): -0.031804668469598,
(6, "x", 39, "x"): 0.0302676798757954,
(8, "x", 1, "x"): -0.059603403376112,
(8, "x", 3, "x"): 0.102198547643328,
(8, "x", 5, "x"): -0.190435749776861,
(8, "x", 7, "x"): 0.617082357005358,
(8, "x", 9, "x"): 0.6545146787836,
(8, "x", 11, "x"): -0.228820262121828,
(8, "x", 13, "x"): 0.142898207894381,
(8, "x", 15, "x"): -0.10565264117106,
(8, "x", 17, "x"): 0.0847033053948983,
(8, "x", 19, "x"): -0.0712017602555549,
(8, "x", 21, "x"): 0.0617354634590125,
(8, "x", 23, "x"): -0.0547065570873058,
(8, "x", 25, "x"): 0.0492658641354183,
(8, "x", 27, "x"): -0.0449196778881935,
(8, "x", 29, "x"): 0.0413609897651131,
(8, "x", 31, "x"): -0.0383886289102033,
(8, "x", 33, "x"): 0.0358651299902981,
(8, "x", 35, "x"): -0.0336932742842578,
(8, "x", 37, "x"): 0.0318023047767947,
(8, "x", 39, "x"): -0.030139455674167,
(10, "x", 1, "x"): 0.0439792525587995,
(10, "x", 3, "x"): -0.0692528965958894,
(10, "x", 5, "x"): 0.108397929099021,
(10, "x", 7, "x"): -0.195138575204209,
(10, "x", 9, "x"): 0.620927144090899,
(10, "x", 11, "x"): 0.651233882791557,
(10, "x", 13, "x"): -0.225941905251249,
(10, "x", 15, "x"): 0.140323254503473,
(10, "x", 17, "x"): -0.103315642865758,
(10, "x", 19, "x"): 0.0825585698009622,
(10, "x", 21, "x"): -0.0692160218229681,
(10, "x", 23, "x"): 0.0598836888491238,
(10, "x", 25, "x"): -0.0529693961318701,
(10, "x", 27, "x"): 0.0476280244212015,
(10, "x", 29, "x"): -0.0433688465158433,
(10, "x", 31, "x"): 0.0398870940423755,
(10, "x", 33, "x"): -0.0369833150045722,
(10, "x", 35, "x"): 0.0345213862957191,
(10, "x", 37, "x"): -0.0324051535576467,
(10, "x", 39, "x"): 0.0305647153283757,
(12, "x", 1, "x"): -0.0344511233825375,
(12, "x", 3, "x"): 0.051570244826762,
(12, "x", 5, "x"): -0.0741307969600372,
(12, "x", 7, "x"): 0.112098577001675,
(12, "x", 9, "x"): -0.198164159898117,
(12, "x", 11, "x"): 0.623508972874051,
(12, "x", 13, "x"): 0.648968714596981,
(12, "x", 15, "x"): -0.223915479517027,
(12, "x", 17, "x"): 0.13848407598893,
(12, "x", 19, "x"): -0.101627759192188,
(12, "x", 21, "x"): 0.0809958057142225,
(12, "x", 23, "x"): -0.0677586792014329,
(12, "x", 25, "x"): 0.058516541236311,
(12, "x", 27, "x"): -0.0516804098923711,
(12, "x", 29, "x"): 0.0464075103789091,
(12, "x", 31, "x"): -0.0422088782527226,
(12, "x", 33, "x"): 0.0387810976838852,
(12, "x", 35, "x"): -0.0359257728661409,
(12, "x", 37, "x"): 0.0335076182428655,
(12, "x", 39, "x"): -0.031431152699668,
(14, "x", 1, "x"): 0.0280905588320645,
(14, "x", 3, "x"): -0.0406589983848392,
(14, "x", 5, "x"): 0.0555599515078389,
(14, "x", 7, "x"): -0.0771577797725184,
(14, "x", 9, "x"): 0.114573457526737,
(14, "x", 11, "x"): -0.200276093365814,
(14, "x", 13, "x"): 0.625361901098279,
(14, "x", 15, "x"): 0.647311065109173,
(14, "x", 17, "x"): -0.222410991173016,
(14, "x", 19, "x"): 0.137103342840115,
(14, "x", 21, "x"): -0.100349371709367,
(14, "x", 23, "x"): 0.0798036519532965,
(14, "x", 25, "x"): -0.0666403046237177,
(14, "x", 27, "x"): 0.0574621027762285,
(14, "x", 29, "x"): -0.0506819820916291,
(14, "x", 31, "x"): 0.0454586096116469,
(14, "x", 33, "x"): -0.041304127205318,
(14, "x", 35, "x"): 0.0379159829603672,
(14, "x", 37, "x"): -0.0350964661555485,
(14, "x", 39, "x"): 0.0327108419265415,
(16, "x", 1, "x"): -0.0235720910841532,
(16, "x", 3, "x"): 0.0333113049961062,
(16, "x", 5, "x"): -0.0440146568671265,
(16, "x", 7, "x"): 0.0581059881284756,
(16, "x", 9, "x"): -0.0792394808782953,
(16, "x", 11, "x"): 0.116349896137392,
(16, "x", 13, "x"): -0.201834685692187,
(16, "x", 15, "x"): 0.626756243745903,
(16, "x", 17, "x"): 0.646045548619932,
(16, "x", 19, "x"): -0.221249568137138,
(16, "x", 21, "x"): 0.136028005901464,
(16, "x", 23, "x"): -0.0993465691012448,
(16, "x", 25, "x"): 0.0788629080536757,
(16, "x", 27, "x"): -0.0657533402767068,
(16, "x", 29, "x"): 0.0566222517097102,
(16, "x", 31, "x"): -0.0498837907575016,
(16, "x", 33, "x"): 0.04469755498707,
(16, "x", 35, "x"): -0.0405764129180567,
(16, "x", 37, "x"): 0.0372183888740113,
(16, "x", 39, "x"): -0.034426235332043,
(18, "x", 1, "x"): 0.0202129013489131,
(18, "x", 3, "x"): -0.0280564002314289,
(18, "x", 5, "x"): 0.0361938566085091,
(18, "x", 7, "x"): -0.0462018029426718,
(18, "x", 9, "x"): 0.0598942816336477,
(18, "x", 11, "x"): -0.0807655532556404,
(18, "x", 13, "x"): 0.117688834298236,
(18, "x", 15, "x"): -0.203032528170905,
(18, "x", 17, "x"): 0.627843419313627,
(18, "x", 19, "x"): 0.645047794281474,
(18, "x", 21, "x"): -0.220325766323103,
(18, "x", 23, "x"): 0.135166515247699,
(18, "x", 25, "x"): -0.0985383906746981,
(18, "x", 27, "x"): 0.07810092971977,
(18, "x", 29, "x"): -0.0650318354039826,
(18, "x", 31, "x"): 0.055936535430677,
(18, "x", 33, "x"): -0.0492299775566192,
(18, "x", 35, "x"): 0.0440723835688313,
(18, "x", 37, "x"): -0.0399771169972641,
(18, "x", 39, "x"): 0.0366426000734971,
(20, "x", 1, "x"): -0.017627299334295,
(20, "x", 3, "x"): 0.0241288202745342,
(20, "x", 5, "x"): -0.0305737533320824,
(20, "x", 7, "x"): 0.0381039552927518,
(20, "x", 9, "x"): -0.047763592814719,
(20, "x", 11, "x"): 0.0612270740454677,
(20, "x", 13, "x"): -0.0819349188989436,
(20, "x", 15, "x"): 0.118734977843307,
(20, "x", 17, "x"): -0.203982022959719,
(20, "x", 19, "x"): 0.628714819343417,
(20, "x", 21, "x"): 0.644240979964118,
(20, "x", 23, "x"): -0.219573371070635,
(20, "x", 25, "x"): 0.134460680056461,
(20, "x", 27, "x"): -0.0978729043007541,
(20, "x", 29, "x"): 0.0774707909003214,
(20, "x", 31, "x"): -0.0644329526695553,
(20, "x", 33, "x"): 0.0553655154050687,
(20, "x", 35, "x"): -0.0486839720121728,
(20, "x", 37, "x"): 0.0435489765855488,
(20, "x", 39, "x"): -0.039474240161498,
(22, "x", 1, "x"): 0.0155818275174025,
(22, "x", 3, "x"): -0.0210925805324099,
(22, "x", 5, "x"): 0.0263566009981115,
(22, "x", 7, "x"): -0.0322641671658076,
(22, "x", 9, "x"): 0.0394861351020212,
(22, "x", 11, "x"): -0.0489431183977767,
(22, "x", 13, "x"): 0.0622619711245261,
(22, "x", 15, "x"): -0.082860766578907,
(22, "x", 17, "x"): 0.119575292488569,
(22, "x", 19, "x"): -0.204753224284902,
(22, "x", 21, "x"): 0.629428862525661,
(22, "x", 23, "x"): 0.643575097636349,
(22, "x", 25, "x"): -0.218948694495961,
(22, "x", 27, "x"): 0.133871712354208,
(22, "x", 29, "x"): -0.0973152193947713,
(22, "x", 31, "x"): 0.0769407678634122,
(22, "x", 33, "x"): -0.0639275883754644,
(22, "x", 35, "x"): 0.0548822891765173,
(22, "x", 37, "x"): -0.0482207457593204,
(22, "x", 39, "x"): 0.0431039197585667,
(24, "x", 1, "x"): -0.0139273390571125,
(24, "x", 3, "x"): 0.0186819548996952,
(24, "x", 5, "x"): -0.0230856985072204,
(24, "x", 7, "x"): 0.0278689812889355,
(24, "x", 9, "x"): -0.0335007876120844,
(24, "x", 11, "x"): 0.040541449001796,
(24, "x", 13, "x"): -0.0498690376104398,
(24, "x", 15, "x"): 0.0630903264429405,
(24, "x", 17, "x"): -0.0836125971039459,
(24, "x", 19, "x"): 0.120265288362839,
(24, "x", 21, "x"): -0.205392081451324,
(24, "x", 23, "x"): 0.630024630631138,
(24, "x", 25, "x"): 0.643016196013222,
(24, "x", 27, "x"): -0.218421741398637,
(24, "x", 29, "x"): 0.133372747843751,
(24, "x", 31, "x"): -0.0968410038781554,
(24, "x", 33, "x"): 0.0764886144798256,
(24, "x", 35, "x"): -0.0634952419012075,
(24, "x", 37, "x"): 0.054467836681766,
(24, "x", 39, "x"): -0.0478225494651678,
(26, "x", 1, "x"): 0.012564329179744,
(26, "x", 3, "x"): -0.0167261931797469,
(26, "x", 5, "x"): 0.0204814479513874,
(26, "x", 7, "x"): -0.0244511756080565,
(26, "x", 9, "x"): 0.0289854926054433,
(26, "x", 11, "x"): -0.0344536065949141,
(26, "x", 13, "x"): 0.0413774431197777,
(26, "x", 15, "x"): -0.0506169449451649,
(26, "x", 17, "x"): 0.0637691420834689,
(26, "x", 19, "x"): -0.0842355840892829,
(26, "x", 21, "x"): 0.120842103606662,
(26, "x", 23, "x"): -0.205929992668735,
(26, "x", 25, "x"): 0.63052925596685,
(26, "x", 27, "x"): 0.64254041629879,
(26, "x", 29, "x"): -0.217971231998968,
(26, "x", 31, "x"): 0.1329445838244,
(26, "x", 33, "x"): -0.0964327593462296,
(26, "x", 35, "x"): 0.0760982532525654,
(26, "x", 37, "x"): -0.0631210368417068,
(26, "x", 39, "x"): 0.0541083090782501,
(28, "x", 1, "x"): -0.0114240058576427,
(28, "x", 3, "x"): 0.015110811991687,
(28, "x", 5, "x"): -0.0183634797872995,
(28, "x", 7, "x"): 0.021723856102418,
(28, "x", 9, "x"): -0.025467063571133,
(28, "x", 11, "x"): 0.0298524441527061,
(28, "x", 13, "x"): -0.0352142635297349,
(28, "x", 15, "x"): 0.0420579527183231,
(28, "x", 17, "x"): -0.0512345899753054,
(28, "x", 19, "x"): 0.0643359900496595,
(28, "x", 21, "x"): -0.0847604214666164,
(28, "x", 23, "x"): 0.121331543048508,
(28, "x", 25, "x"): -0.206389145953734,
(28, "x", 27, "x"): 0.630962163162352,
(28, "x", 29, "x"): 0.642130502115889,
(28, "x", 31, "x"): -0.21758164950347,
(28, "x", 33, "x"): 0.132573125753267,
(28, "x", 35, "x"): -0.0960775730220675,
(28, "x", 37, "x"): 0.0757577671900808,
(28, "x", 39, "x"): -0.0627939055909658,
(30, "x", 1, "x"): 0.0104573719402441,
(30, "x", 3, "x"): -0.0137563247003482,
(30, "x", 5, "x"): 0.0166104416612905,
(30, "x", 7, "x"): -0.019501442987836,
(30, "x", 9, "x"): 0.0226543470950928,
(30, "x", 11, "x"): -0.0262611407020985,
(30, "x", 13, "x"): 0.0305491632478923,
(30, "x", 15, "x"): -0.0358375732209661,
(30, "x", 17, "x"): 0.0426236826218798,
(30, "x", 19, "x"): -0.0517537930024467,
(30, "x", 21, "x"): 0.0648167139702787,
(30, "x", 23, "x"): -0.0852087230070191,
(30, "x", 25, "x"): 0.121752104250785,
(30, "x", 27, "x"): -0.206785667252914,
(30, "x", 29, "x"): 0.63133762416741,
(30, "x", 31, "x"): 0.641773663798743,
(30, "x", 33, "x"): -0.217241412157705,
(30, "x", 35, "x"): 0.132247792438937,
(30, "x", 37, "x"): -0.0957657043526452,
(30, "x", 39, "x"): 0.0754581308127959,
(32, "x", 1, "x"): -0.00962863484261943,
(32, "x", 3, "x"): 0.0126059053586902,
(32, "x", 5, "x"): -0.0151378181055341,
(32, "x", 7, "x"): 0.0176587692986935,
(32, "x", 9, "x"): -0.020358644867144,
(32, "x", 11, "x"): 0.0233858818137396,
(32, "x", 13, "x"): -0.0269029867321868,
(32, "x", 15, "x"): 0.0311233823964002,
(32, "x", 17, "x"): -0.0363587480299401,
(32, "x", 19, "x"): 0.0431019952858045,
(32, "x", 21, "x"): -0.0521966573355218,
(32, "x", 23, "x"): 0.0652297096005878,
(32, "x", 25, "x"): -0.0855961631739456,
(32, "x", 27, "x"): 0.122117397913667,
(32, "x", 29, "x"): -0.207131559327254,
(32, "x", 31, "x"): 0.631666360260589,
(32, "x", 33, "x"): 0.641460221209205,
(32, "x", 35, "x"): -0.216941699788514,
(32, "x", 37, "x"): 0.131960484273278,
(32, "x", 39, "x"): -0.0954896651000627,
(34, "x", 1, "x"): 0.00891107260430101,
(34, "x", 3, "x"): -0.0116179059849555,
(34, "x", 5, "x"): 0.0138850216154384,
(34, "x", 7, "x"): -0.0161084661466783,
(34, "x", 9, "x"): 0.0184524571478648,
(34, "x", 11, "x"): -0.0210359786164796,
(34, "x", 13, "x"): 0.0239801731757788,
(34, "x", 15, "x"): -0.0274346624154534,
(34, "x", 17, "x"): 0.0316059442338158,
(34, "x", 19, "x"): -0.0368016236511537,
(34, "x", 21, "x"): 0.0435120491147015,
(34, "x", 23, "x"): -0.0525790555417618,
(34, "x", 25, "x"): 0.0655884458140045,
(34, "x", 27, "x"): -0.0859343937562171,
(34, "x", 29, "x"): 0.122437664390516,
(34, "x", 31, "x"): -0.207435940915892,
(34, "x", 33, "x"): 0.631956581438438,
(34, "x", 35, "x"): 0.641182712988902,
(34, "x", 37, "x"): -0.216675676757992,
(34, "x", 39, "x"): 0.131704895258842,
(36, "x", 1, "x"): -0.00828435401829169,
(36, "x", 3, "x"): 0.0107611425267978,
(36, "x", 5, "x"): -0.0128075374964671,
(36, "x", 7, "x"): 0.0147877713476547,
(36, "x", 9, "x"): -0.0168466371421289,
(36, "x", 11, "x"): 0.0190824142643028,
(36, "x", 13, "x"): -0.0215887026965906,
(36, "x", 15, "x"): 0.0244746617600977,
(36, "x", 17, "x"): -0.0278834727283041,
(36, "x", 19, "x"): 0.0320178443629164,
(36, "x", 21, "x"): -0.0371829978128156,
(36, "x", 23, "x"): 0.043867702084051,
(36, "x", 25, "x"): -0.0529127015843396,
(36, "x", 27, "x"): 0.0659030205003435,
(36, "x", 29, "x"): -0.0862322608322223,
(36, "x", 31, "x"): 0.122720757634075,
(36, "x", 33, "x"): -0.20770586418026,
(36, "x", 35, "x"): 0.632214680931101,
(36, "x", 37, "x"): 0.640935295378691,
(36, "x", 39, "x"): -0.216437963382246,
(38, "x", 1, "x"): 0.00773275113661403,
(38, "x", 3, "x"): -0.0100118271418192,
(38, "x", 5, "x"): 0.0118719607936816,
(38, "x", 7, "x"): -0.0136504853925913,
(38, "x", 9, "x"): 0.0154770452283758,
(38, "x", 11, "x"): -0.017434866570091,
(38, "x", 13, "x"): 0.019598527229861,
(38, "x", 15, "x"): -0.022050438024718,
(38, "x", 17, "x"): 0.0248937447207395,
(38, "x", 19, "x"): -0.0282680905210534,
(38, "x", 21, "x"): 0.0323739582618915,
(38, "x", 23, "x"): -0.0375150942942534,
(38, "x", 25, "x"): 0.0441792493621718,
(38, "x", 27, "x"): -0.0532064407664412,
(38, "x", 29, "x"): 0.0661811587512815,
(38, "x", 31, "x"): -0.0864966038327677,
(38, "x", 33, "x"): 0.122972802996398,
(38, "x", 35, "x"): -0.207946868938393,
(38, "x", 37, "x"): 0.632445711335645,
(38, "x", 39, "x"): 0.64071332643857,
(40, "x", 1, "x"): -0.00724391688001674,
(40, "x", 3, "x"): 0.00935151491502463,
(40, "x", 5, "x"): -0.0110527578939448,
(40, "x", 7, "x"): 0.012661878924004,
(40, "x", 9, "x"): -0.014296399105208,
(40, "x", 11, "x"): 0.0160282719391012,
(40, "x", 13, "x"): -0.0179185139453499,
(40, "x", 15, "x"): 0.0200312179442163,
(40, "x", 17, "x"): -0.0224431596178727,
(40, "x", 19, "x"): 0.0252541692908214,
(40, "x", 21, "x"): -0.0286018042974914,
(40, "x", 23, "x"): 0.0326851654679604,
(40, "x", 25, "x"): -0.0378070449564994,
(40, "x", 27, "x"): 0.0444545121459287,
(40, "x", 29, "x"): -0.0534670839867032,
(40, "x", 31, "x"): 0.0664288744972003,
(40, "x", 33, "x"): -0.0867327955058567,
(40, "x", 35, "x"): 0.123198648554883,
(40, "x", 37, "x"): -0.208163367559173,
(40, "x", 39, "x"): 0.632653718481981,
}
# split detector in y-direction, for up to TEM-order 40
YSPLIT = {
("x", 0, "x", 1): 0.797884560802865,
("x", 0, "x", 3): -0.32573500793528,
("x", 0, "x", 5): 0.218509686118416,
("x", 0, "x", 7): -0.168583882836184,
("x", 0, "x", 9): 0.139074607877595,
("x", 0, "x", 11): -0.119342192152758,
("x", 0, "x", 13): 0.105105246952602,
("x", 0, "x", 15): -0.0942883643366128,
("x", 0, "x", 17): 0.085756077667627,
("x", 0, "x", 19): -0.0788316791424408,
("x", 0, "x", 21): 0.0730852493544752,
("x", 0, "x", 23): -0.0682297483293215,
("x", 0, "x", 25): 0.0640657596627177,
("x", 0, "x", 27): -0.0604501569509354,
("x", 0, "x", 29): 0.0572773850389327,
("x", 0, "x", 31): -0.0544677839262821,
("x", 0, "x", 33): 0.051960035687153,
("x", 0, "x", 35): -0.0497061241097501,
("x", 0, "x", 37): 0.0476678793880178,
("x", 0, "x", 39): -0.0458145530435871,
("x", 2, "x", 1): 0.564189583547756,
("x", 2, "x", 3): 0.690988298942671,
("x", 2, "x", 5): -0.257516134682126,
("x", 2, "x", 7): 0.166889529453114,
("x", 2, "x", 9): -0.126437912127138,
("x", 2, "x", 11): 0.103140489653524,
("x", 2, "x", 13): -0.0878334751963756,
("x", 2, "x", 15): 0.0769291636262386,
("x", 2, "x", 17): -0.0687238645863045,
("x", 2, "x", 19): 0.0623003460579352,
("x", 2, "x", 21): -0.0571189780993917,
("x", 2, "x", 23): 0.0528405479815828,
("x", 2, "x", 25): -0.0492405794558427,
("x", 2, "x", 27): 0.0461642931761014,
("x", 2, "x", 29): -0.0435013182859334,
("x", 2, "x", 31): 0.0411707144994762,
("x", 2, "x", 33): -0.0391116996228281,
("x", 2, "x", 35): 0.0372776912078078,
("x", 2, "x", 37): -0.0356323539463384,
("x", 2, "x", 39): 0.0341469044387,
("x", 4, "x", 1): -0.16286750396764,
("x", 4, "x", 3): 0.598413420602149,
("x", 4, "x", 5): 0.669046543557289,
("x", 4, "x", 7): -0.240884286886713,
("x", 4, "x", 9): 0.153297821464992,
("x", 4, "x", 11): -0.114842936826923,
("x", 4, "x", 13): 0.092969581005561,
("x", 4, "x", 15): -0.0787358118089783,
("x", 4, "x", 17): 0.0686730145130556,
("x", 4, "x", 19): -0.0611475066641648,
("x", 4, "x", 21): 0.0552860726690191,
("x", 4, "x", 23): -0.0505782313126719,
("x", 4, "x", 25): 0.0467048872492379,
("x", 4, "x", 27): -0.0434559246068004,
("x", 4, "x", 29): 0.0406871064724294,
("x", 4, "x", 31): -0.0382959872150584,
("x", 4, "x", 33): 0.0362077065246626,
("x", 4, "x", 35): -0.0343662293597736,
("x", 4, "x", 37): 0.0327287372726021,
("x", 4, "x", 39): -0.031261920230486,
("x", 6, "x", 1): 0.0892062058076385,
("x", 6, "x", 3): -0.18209140509868,
("x", 6, "x", 5): 0.61075313987865,
("x", 6, "x", 7): 0.659688788381993,
("x", 6, "x", 9): -0.233235207868822,
("x", 6, "x", 11): 0.146771489830575,
("x", 6, "x", 13): -0.109117578596892,
("x", 6, "x", 15): 0.0878479967266388,
("x", 6, "x", 17): -0.0740877073983095,
("x", 6, "x", 19): 0.0644074398753087,
("x", 6, "x", 21): -0.0571982549981952,
("x", 6, "x", 23): 0.0516033260749633,
("x", 6, "x", 25): -0.0471234847486845,
("x", 6, "x", 27): 0.043447712204836,
("x", 6, "x", 29): -0.0403718224901522,
("x", 6, "x", 31): 0.0377560369073105,
("x", 6, "x", 33): -0.0355013303057689,
("x", 6, "x", 35): 0.0335355132263835,
("x", 6, "x", 37): -0.031804668469598,
("x", 6, "x", 39): 0.0302676798757954,
("x", 8, "x", 1): -0.059603403376112,
("x", 8, "x", 3): 0.102198547643328,
("x", 8, "x", 5): -0.190435749776861,
("x", 8, "x", 7): 0.617082357005358,
("x", 8, "x", 9): 0.6545146787836,
("x", 8, "x", 11): -0.228820262121828,
("x", 8, "x", 13): 0.142898207894381,
("x", 8, "x", 15): -0.10565264117106,
("x", 8, "x", 17): 0.0847033053948983,
("x", 8, "x", 19): -0.0712017602555549,
("x", 8, "x", 21): 0.0617354634590125,
("x", 8, "x", 23): -0.0547065570873058,
("x", 8, "x", 25): 0.0492658641354183,
("x", 8, "x", 27): -0.0449196778881935,
("x", 8, "x", 29): 0.0413609897651131,
("x", 8, "x", 31): -0.0383886289102033,
("x", 8, "x", 33): 0.0358651299902981,
("x", 8, "x", 35): -0.0336932742842578,
("x", 8, "x", 37): 0.0318023047767947,
("x", 8, "x", 39): -0.030139455674167,
("x", 10, "x", 1): 0.0439792525587995,
("x", 10, "x", 3): -0.0692528965958894,
("x", 10, "x", 5): 0.108397929099021,
("x", 10, "x", 7): -0.195138575204209,
("x", 10, "x", 9): 0.620927144090899,
("x", 10, "x", 11): 0.651233882791557,
("x", 10, "x", 13): -0.225941905251249,
("x", 10, "x", 15): 0.140323254503473,
("x", 10, "x", 17): -0.103315642865758,
("x", 10, "x", 19): 0.0825585698009622,
("x", 10, "x", 21): -0.0692160218229681,
("x", 10, "x", 23): 0.0598836888491238,
("x", 10, "x", 25): -0.0529693961318701,
("x", 10, "x", 27): 0.0476280244212015,
("x", 10, "x", 29): -0.0433688465158433,
("x", 10, "x", 31): 0.0398870940423755,
("x", 10, "x", 33): -0.0369833150045722,
("x", 10, "x", 35): 0.0345213862957191,
("x", 10, "x", 37): -0.0324051535576467,
("x", 10, "x", 39): 0.0305647153283757,
("x", 12, "x", 1): -0.0344511233825375,
("x", 12, "x", 3): 0.051570244826762,
("x", 12, "x", 5): -0.0741307969600372,
("x", 12, "x", 7): 0.112098577001675,
("x", 12, "x", 9): -0.198164159898117,
("x", 12, "x", 11): 0.623508972874051,
("x", 12, "x", 13): 0.648968714596981,
("x", 12, "x", 15): -0.223915479517027,
("x", 12, "x", 17): 0.13848407598893,
("x", 12, "x", 19): -0.101627759192188,
("x", 12, "x", 21): 0.0809958057142225,
("x", 12, "x", 23): -0.0677586792014329,
("x", 12, "x", 25): 0.058516541236311,
("x", 12, "x", 27): -0.0516804098923711,
("x", 12, "x", 29): 0.0464075103789091,
("x", 12, "x", 31): -0.0422088782527226,
("x", 12, "x", 33): 0.0387810976838852,
("x", 12, "x", 35): -0.0359257728661409,
("x", 12, "x", 37): 0.0335076182428655,
("x", 12, "x", 39): -0.031431152699668,
("x", 14, "x", 1): 0.0280905588320645,
("x", 14, "x", 3): -0.0406589983848392,
("x", 14, "x", 5): 0.0555599515078389,
("x", 14, "x", 7): -0.0771577797725184,
("x", 14, "x", 9): 0.114573457526737,
("x", 14, "x", 11): -0.200276093365814,
("x", 14, "x", 13): 0.625361901098279,
("x", 14, "x", 15): 0.647311065109173,
("x", 14, "x", 17): -0.222410991173016,
("x", 14, "x", 19): 0.137103342840115,
("x", 14, "x", 21): -0.100349371709367,
("x", 14, "x", 23): 0.0798036519532965,
("x", 14, "x", 25): -0.0666403046237177,
("x", 14, "x", 27): 0.0574621027762285,
("x", 14, "x", 29): -0.0506819820916291,
("x", 14, "x", 31): 0.0454586096116469,
("x", 14, "x", 33): -0.041304127205318,
("x", 14, "x", 35): 0.0379159829603672,
("x", 14, "x", 37): -0.0350964661555485,
("x", 14, "x", 39): 0.0327108419265415,
("x", 16, "x", 1): -0.0235720910841532,
("x", 16, "x", 3): 0.0333113049961062,
("x", 16, "x", 5): -0.0440146568671265,
("x", 16, "x", 7): 0.0581059881284756,
("x", 16, "x", 9): -0.0792394808782953,
("x", 16, "x", 11): 0.116349896137392,
("x", 16, "x", 13): -0.201834685692187,
("x", 16, "x", 15): 0.626756243745903,
("x", 16, "x", 17): 0.646045548619932,
("x", 16, "x", 19): -0.221249568137138,
("x", 16, "x", 21): 0.136028005901464,
("x", 16, "x", 23): -0.0993465691012448,
("x", 16, "x", 25): 0.0788629080536757,
("x", 16, "x", 27): -0.0657533402767068,
("x", 16, "x", 29): 0.0566222517097102,
("x", 16, "x", 31): -0.0498837907575016,
("x", 16, "x", 33): 0.04469755498707,
("x", 16, "x", 35): -0.0405764129180567,
("x", 16, "x", 37): 0.0372183888740113,
("x", 16, "x", 39): -0.034426235332043,
("x", 18, "x", 1): 0.0202129013489131,
("x", 18, "x", 3): -0.0280564002314289,
("x", 18, "x", 5): 0.0361938566085091,
("x", 18, "x", 7): -0.0462018029426718,
("x", 18, "x", 9): 0.0598942816336477,
("x", 18, "x", 11): -0.0807655532556404,
("x", 18, "x", 13): 0.117688834298236,
("x", 18, "x", 15): -0.203032528170905,
("x", 18, "x", 17): 0.627843419313627,
("x", 18, "x", 19): 0.645047794281474,
("x", 18, "x", 21): -0.220325766323103,
("x", 18, "x", 23): 0.135166515247699,
("x", 18, "x", 25): -0.0985383906746981,
("x", 18, "x", 27): 0.07810092971977,
("x", 18, "x", 29): -0.0650318354039826,
("x", 18, "x", 31): 0.055936535430677,
("x", 18, "x", 33): -0.0492299775566192,
("x", 18, "x", 35): 0.0440723835688313,
("x", 18, "x", 37): -0.0399771169972641,
("x", 18, "x", 39): 0.0366426000734971,
("x", 20, "x", 1): -0.017627299334295,
("x", 20, "x", 3): 0.0241288202745342,
("x", 20, "x", 5): -0.0305737533320824,
("x", 20, "x", 7): 0.0381039552927518,
("x", 20, "x", 9): -0.047763592814719,
("x", 20, "x", 11): 0.0612270740454677,
("x", 20, "x", 13): -0.0819349188989436,
("x", 20, "x", 15): 0.118734977843307,
("x", 20, "x", 17): -0.203982022959719,
("x", 20, "x", 19): 0.628714819343417,
("x", 20, "x", 21): 0.644240979964118,
("x", 20, "x", 23): -0.219573371070635,
("x", 20, "x", 25): 0.134460680056461,
("x", 20, "x", 27): -0.0978729043007541,
("x", 20, "x", 29): 0.0774707909003214,
("x", 20, "x", 31): -0.0644329526695553,
("x", 20, "x", 33): 0.0553655154050687,
("x", 20, "x", 35): -0.0486839720121728,
("x", 20, "x", 37): 0.0435489765855488,
("x", 20, "x", 39): -0.039474240161498,
("x", 22, "x", 1): 0.0155818275174025,
("x", 22, "x", 3): -0.0210925805324099,
("x", 22, "x", 5): 0.0263566009981115,
("x", 22, "x", 7): -0.0322641671658076,
("x", 22, "x", 9): 0.0394861351020212,
("x", 22, "x", 11): -0.0489431183977767,
("x", 22, "x", 13): 0.0622619711245261,
("x", 22, "x", 15): -0.082860766578907,
("x", 22, "x", 17): 0.119575292488569,
("x", 22, "x", 19): -0.204753224284902,
("x", 22, "x", 21): 0.629428862525661,
("x", 22, "x", 23): 0.643575097636349,
("x", 22, "x", 25): -0.218948694495961,
("x", 22, "x", 27): 0.133871712354208,
("x", 22, "x", 29): -0.0973152193947713,
("x", 22, "x", 31): 0.0769407678634122,
("x", 22, "x", 33): -0.0639275883754644,
("x", 22, "x", 35): 0.0548822891765173,
("x", 22, "x", 37): -0.0482207457593204,
("x", 22, "x", 39): 0.0431039197585667,
("x", 24, "x", 1): -0.0139273390571125,
("x", 24, "x", 3): 0.0186819548996952,
("x", 24, "x", 5): -0.0230856985072204,
("x", 24, "x", 7): 0.0278689812889355,
("x", 24, "x", 9): -0.0335007876120844,
("x", 24, "x", 11): 0.040541449001796,
("x", 24, "x", 13): -0.0498690376104398,
("x", 24, "x", 15): 0.0630903264429405,
("x", 24, "x", 17): -0.0836125971039459,
("x", 24, "x", 19): 0.120265288362839,
("x", 24, "x", 21): -0.205392081451324,
("x", 24, "x", 23): 0.630024630631138,
("x", 24, "x", 25): 0.643016196013222,
("x", 24, "x", 27): -0.218421741398637,
("x", 24, "x", 29): 0.133372747843751,
("x", 24, "x", 31): -0.0968410038781554,
("x", 24, "x", 33): 0.0764886144798256,
("x", 24, "x", 35): -0.0634952419012075,
("x", 24, "x", 37): 0.054467836681766,
("x", 24, "x", 39): -0.0478225494651678,
("x", 26, "x", 1): 0.012564329179744,
("x", 26, "x", 3): -0.0167261931797469,
("x", 26, "x", 5): 0.0204814479513874,
("x", 26, "x", 7): -0.0244511756080565,
("x", 26, "x", 9): 0.0289854926054433,
("x", 26, "x", 11): -0.0344536065949141,
("x", 26, "x", 13): 0.0413774431197777,
("x", 26, "x", 15): -0.0506169449451649,
("x", 26, "x", 17): 0.0637691420834689,
("x", 26, "x", 19): -0.0842355840892829,
("x", 26, "x", 21): 0.120842103606662,
("x", 26, "x", 23): -0.205929992668735,
("x", 26, "x", 25): 0.63052925596685,
("x", 26, "x", 27): 0.64254041629879,
("x", 26, "x", 29): -0.217971231998968,
("x", 26, "x", 31): 0.1329445838244,
("x", 26, "x", 33): -0.0964327593462296,
("x", 26, "x", 35): 0.0760982532525654,
("x", 26, "x", 37): -0.0631210368417068,
("x", 26, "x", 39): 0.0541083090782501,
("x", 28, "x", 1): -0.0114240058576427,
("x", 28, "x", 3): 0.015110811991687,
("x", 28, "x", 5): -0.0183634797872995,
("x", 28, "x", 7): 0.021723856102418,
("x", 28, "x", 9): -0.025467063571133,
("x", 28, "x", 11): 0.0298524441527061,
("x", 28, "x", 13): -0.0352142635297349,
("x", 28, "x", 15): 0.0420579527183231,
("x", 28, "x", 17): -0.0512345899753054,
("x", 28, "x", 19): 0.0643359900496595,
("x", 28, "x", 21): -0.0847604214666164,
("x", 28, "x", 23): 0.121331543048508,
("x", 28, "x", 25): -0.206389145953734,
("x", 28, "x", 27): 0.630962163162352,
("x", 28, "x", 29): 0.642130502115889,
("x", 28, "x", 31): -0.21758164950347,
("x", 28, "x", 33): 0.132573125753267,
("x", 28, "x", 35): -0.0960775730220675,
("x", 28, "x", 37): 0.0757577671900808,
("x", 28, "x", 39): -0.0627939055909658,
("x", 30, "x", 1): 0.0104573719402441,
("x", 30, "x", 3): -0.0137563247003482,
("x", 30, "x", 5): 0.0166104416612905,
("x", 30, "x", 7): -0.019501442987836,
("x", 30, "x", 9): 0.0226543470950928,
("x", 30, "x", 11): -0.0262611407020985,
("x", 30, "x", 13): 0.0305491632478923,
("x", 30, "x", 15): -0.0358375732209661,
("x", 30, "x", 17): 0.0426236826218798,
("x", 30, "x", 19): -0.0517537930024467,
("x", 30, "x", 21): 0.0648167139702787,
("x", 30, "x", 23): -0.0852087230070191,
("x", 30, "x", 25): 0.121752104250785,
("x", 30, "x", 27): -0.206785667252914,
("x", 30, "x", 29): 0.63133762416741,
("x", 30, "x", 31): 0.641773663798743,
("x", 30, "x", 33): -0.217241412157705,
("x", 30, "x", 35): 0.132247792438937,
("x", 30, "x", 37): -0.0957657043526452,
("x", 30, "x", 39): 0.0754581308127959,
("x", 32, "x", 1): -0.00962863484261943,
("x", 32, "x", 3): 0.0126059053586902,
("x", 32, "x", 5): -0.0151378181055341,
("x", 32, "x", 7): 0.0176587692986935,
("x", 32, "x", 9): -0.020358644867144,
("x", 32, "x", 11): 0.0233858818137396,
("x", 32, "x", 13): -0.0269029867321868,
("x", 32, "x", 15): 0.0311233823964002,
("x", 32, "x", 17): -0.0363587480299401,
("x", 32, "x", 19): 0.0431019952858045,
("x", 32, "x", 21): -0.0521966573355218,
("x", 32, "x", 23): 0.0652297096005878,
("x", 32, "x", 25): -0.0855961631739456,
("x", 32, "x", 27): 0.122117397913667,
("x", 32, "x", 29): -0.207131559327254,
("x", 32, "x", 31): 0.631666360260589,
("x", 32, "x", 33): 0.641460221209205,
("x", 32, "x", 35): -0.216941699788514,
("x", 32, "x", 37): 0.131960484273278,
("x", 32, "x", 39): -0.0954896651000627,
("x", 34, "x", 1): 0.00891107260430101,
("x", 34, "x", 3): -0.0116179059849555,
("x", 34, "x", 5): 0.0138850216154384,
("x", 34, "x", 7): -0.0161084661466783,
("x", 34, "x", 9): 0.0184524571478648,
("x", 34, "x", 11): -0.0210359786164796,
("x", 34, "x", 13): 0.0239801731757788,
("x", 34, "x", 15): -0.0274346624154534,
("x", 34, "x", 17): 0.0316059442338158,
("x", 34, "x", 19): -0.0368016236511537,
("x", 34, "x", 21): 0.0435120491147015,
("x", 34, "x", 23): -0.0525790555417618,
("x", 34, "x", 25): 0.0655884458140045,
("x", 34, "x", 27): -0.0859343937562171,
("x", 34, "x", 29): 0.122437664390516,
("x", 34, "x", 31): -0.207435940915892,
("x", 34, "x", 33): 0.631956581438438,
("x", 34, "x", 35): 0.641182712988902,
("x", 34, "x", 37): -0.216675676757992,
("x", 34, "x", 39): 0.131704895258842,
("x", 36, "x", 1): -0.00828435401829169,
("x", 36, "x", 3): 0.0107611425267978,
("x", 36, "x", 5): -0.0128075374964671,
("x", 36, "x", 7): 0.0147877713476547,
("x", 36, "x", 9): -0.0168466371421289,
("x", 36, "x", 11): 0.0190824142643028,
("x", 36, "x", 13): -0.0215887026965906,
("x", 36, "x", 15): 0.0244746617600977,
("x", 36, "x", 17): -0.0278834727283041,
("x", 36, "x", 19): 0.0320178443629164,
("x", 36, "x", 21): -0.0371829978128156,
("x", 36, "x", 23): 0.043867702084051,
("x", 36, "x", 25): -0.0529127015843396,
("x", 36, "x", 27): 0.0659030205003435,
("x", 36, "x", 29): -0.0862322608322223,
("x", 36, "x", 31): 0.122720757634075,
("x", 36, "x", 33): -0.20770586418026,
("x", 36, "x", 35): 0.632214680931101,
("x", 36, "x", 37): 0.640935295378691,
("x", 36, "x", 39): -0.216437963382246,
("x", 38, "x", 1): 0.00773275113661403,
("x", 38, "x", 3): -0.0100118271418192,
("x", 38, "x", 5): 0.0118719607936816,
("x", 38, "x", 7): -0.0136504853925913,
("x", 38, "x", 9): 0.0154770452283758,
("x", 38, "x", 11): -0.017434866570091,
("x", 38, "x", 13): 0.019598527229861,
("x", 38, "x", 15): -0.022050438024718,
("x", 38, "x", 17): 0.0248937447207395,
("x", 38, "x", 19): -0.0282680905210534,
("x", 38, "x", 21): 0.0323739582618915,
("x", 38, "x", 23): -0.0375150942942534,
("x", 38, "x", 25): 0.0441792493621718,
("x", 38, "x", 27): -0.0532064407664412,
("x", 38, "x", 29): 0.0661811587512815,
("x", 38, "x", 31): -0.0864966038327677,
("x", 38, "x", 33): 0.122972802996398,
("x", 38, "x", 35): -0.207946868938393,
("x", 38, "x", 37): 0.632445711335645,
("x", 38, "x", 39): 0.64071332643857,
("x", 40, "x", 1): -0.00724391688001674,
("x", 40, "x", 3): 0.00935151491502463,
("x", 40, "x", 5): -0.0110527578939448,
("x", 40, "x", 7): 0.012661878924004,
("x", 40, "x", 9): -0.014296399105208,
("x", 40, "x", 11): 0.0160282719391012,
("x", 40, "x", 13): -0.0179185139453499,
("x", 40, "x", 15): 0.0200312179442163,
("x", 40, "x", 17): -0.0224431596178727,
("x", 40, "x", 19): 0.0252541692908214,
("x", 40, "x", 21): -0.0286018042974914,
("x", 40, "x", 23): 0.0326851654679604,
("x", 40, "x", 25): -0.0378070449564994,
("x", 40, "x", 27): 0.0444545121459287,
("x", 40, "x", 29): -0.0534670839867032,
("x", 40, "x", 31): 0.0664288744972003,
("x", 40, "x", 33): -0.0867327955058567,
("x", 40, "x", 35): 0.123198648554883,
("x", 40, "x", 37): -0.208163367559173,
("x", 40, "x", 39): 0.632653718481981,
}