MCPcopy Index your code
hub / github.com/mne-tools/mne-python / _tabular_legendre

Function _tabular_legendre

mne/preprocessing/maxwell.py:1878–1901  ·  view source on GitHub ↗

Compute associated Legendre polynomials.

(r, nind)

Source from the content-addressed store, hash-verified

1876
1877
1878def _tabular_legendre(r, nind):
1879 """Compute associated Legendre polynomials."""
1880 r_n = np.sqrt(np.sum(r * r, axis=1))
1881 x = r[:, 2] / r_n # cos(theta)
1882 L = list()
1883 for degree in range(nind + 1):
1884 L.append(np.zeros((degree + 2, len(r))))
1885 L[0][0] = 1.0
1886 pnn = np.ones(x.shape)
1887 fact = 1.0
1888 sx2 = np.sqrt((1.0 - x) * (1.0 + x))
1889 for degree in range(nind + 1):
1890 L[degree][degree] = pnn
1891 pnn *= -fact * sx2
1892 fact += 2.0
1893 if degree < nind:
1894 L[degree + 1][degree] = x * (2 * degree + 1) * L[degree][degree]
1895 if degree >= 2:
1896 for order in range(degree - 1):
1897 L[degree][order] = (
1898 x * (2 * degree - 1) * L[degree - 1][order]
1899 - (degree + order - 1) * L[degree - 2][order]
1900 ) / (degree - order)
1901 return L
1902
1903
1904def _sp_to_cart(cos_az, sin_az, cos_pol, sin_pol, b_r, b_az, b_pol):

Callers 1

_sss_basisFunction · 0.85

Calls 3

sqrtMethod · 0.80
sumMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected