Metadata-Version: 2.5
Name: pimf
Version: 0.5.0
Summary: Intrinsic multiscale filtering (IMF) for 1-D signals: linear and robust decompositions.
Project-URL: Homepage, https://github.com/mkuziuk/pimf
Project-URL: Documentation, https://mkuziuk.github.io/pimf/
Project-URL: Source, https://github.com/mkuziuk/pimf
Project-URL: Issues, https://github.com/mkuziuk/pimf/issues
Author: Mikhail Kuziuk
License-Expression: MIT
License-File: LICENSE
Keywords: decomposition,m-estimator,robust-statistics,signal-processing,smoothing
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.10
Requires-Dist: numpy>=1.22
Description-Content-Type: text/markdown

# pimf

pimf is a NumPy-only Python library for intrinsic multiscale filtering of
one-dimensional signals. It extracts components from coarse to fine scales
using linear or robust local fits, with optional parallel execution.

```sh
pip install pimf
```

```python
import numpy as np
from pimf import IMF, SmoothAbs

y = np.sin(2 * np.pi * np.arange(256) / 256)
result = IMF(SmoothAbs(H=0.2)).decompose(y, k_max=6)
components = result.imfs
residual = result.residual
```

Gradient descent preserves the research numerics. For robust fits that need
more accurate score roots, use `IMF(SmoothAbs(H=0.2), solver="newton")`.
Unfinished stages emit a warning by default; inspect `result.stages` for details.

See the [documentation and examples](https://mkuziuk.github.io/pimf/) for
kernels, contrasts, solver settings, convergence diagnostics and benchmarks.
[Release notes](https://github.com/mkuziuk/pimf/blob/main/CHANGELOG.md)
