Highly efficient computation of fully normalized associated Legendre functions using the Belikov algorithm.
Project description
pybelikov
A Python module for the high-precision computation of Fully Normalized Associated Legendre Functions (fnALFs) using the Belikov recurrence algorithm.
Why pybelikov?
Standard recursive algorithms for Legendre functions often suffer from numerical instability (underflow/overflow) at high degrees ($n > 2000$) and can be computationally slow.
pybelikov implements the stable recurrence methods originally derived by Belikov, using the formulation and evaluation presented by Lei & Li (2016). This implementation is optimized for modern Python environments and offers two execution modes:
- JIT Mode (Default): Uses
numbato compile the recursion into machine code.- ~38x faster than standard iterative loop implementations.
- ~25% faster than optimized vectorized NumPy code.
- Vectorized Mode: A pure NumPy implementation that utilizes array broadcasting.
- ~30x faster than standard iterative loop implementations.
Benchmarks performed on N=2190 (EGM2008 standard).
Installation
pip install pybelikov
Usage
import numpy as np
from pybelikov import compute_fnALF
# Define parameters
degree = 2190
colat_rad = np.deg2rad(45.0) # Colatitude in radians
# Compute using the fastest method (JIT)
P_nm = compute_fnALF(N=degree, theta=colat_rad, method='jit')
# Access a specific value P(n=2, m=2)
print(f"P_2,2 = {P_nm[2, 2]}")
References
The algorithm implemented in this package is based on the evaluation and formulation described in:
Lei, W., & Li, K. (2016). Evaluating Applicability of Four Recursive Algorithms for Computation of the Fully Normalized Associated Legendre Functions. Journal of Applied Geodesy, 10(4). https://doi.org/10.1515/jag-2016-0032
Citing pybelikov
If you use pybelikov in your research, please credit the software.
A CITATION.cff file is included in this repository for compatibility with reference managers.
Software Citation:
Kellmayer, B. (2025). pybelikov: High-precision computation of fully normalized associated Legendre functions. https://github.com/bkellmayer6/pybelikov
Algorithm Citation:
Lei, W., & Li, K. (2016). Evaluating Applicability of Four Recursive Algorithms for Computation of the Fully Normalized Associated Legendre Functions. Journal of Applied Geodesy, 10(4).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pybelikov-0.1.0.tar.gz.
File metadata
- Download URL: pybelikov-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a682b2e8c1280559773588598ea29272d73108a3e098db5c02b1efab5f526333
|
|
| MD5 |
c1b9dacc0aeb6561aa13fde40b457865
|
|
| BLAKE2b-256 |
d73db5104c5c395e06c775c258ad55dde362eddbc798cce56f5e48d130b1d62d
|
File details
Details for the file pybelikov-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pybelikov-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9225a8a02d1a9c5a0b12969719392ee7b104fedec945fd700df1069b5565630
|
|
| MD5 |
c70ae956f8b03a6d5edb633fd6bf474d
|
|
| BLAKE2b-256 |
15b57a5c21e99fa64956e1c52b81b9e630f2eca1becce2e8d2c92614ee30b3cc
|