QPmR Python Package
This Python package consists of:
- enhanced implementation of quasi-polynomial based rootfinder, algorithm for finding roots of given quasi polynomial in given rectangular region in complex plane [1], [2] enhanced with root-multiplicity heuristic and (in some cases) automatic region selection
- Spectral distribution properties of quasi-polynomials: (i) delay distribution diagram, (ii) exponential asymptotes of root chains, (iii) safe upper bound of neutral spectrum and (iv) spectrum envelope
- quasi-polynomial (and transfer function) algebra
- various functions for quickly visualizing results
For original MATLAB® implementation of old QPmR algorithm from 2012, we refer to this page.
[1] Vyhlidal, T., and Zítek, P. (2009). Mapping based algorithm for large-scale computation of quasi-polynomial zeros. IEEE Transactions on Automatic Control, 54(1), 171-177.
[2] Vyhlidal, T. and Zitek, P. (2014). QPmR-Quasi-polynomial root-finder: Algorithm update and examples Editors: Vyhídal T., Lafay J.F., Sipahi R., Sringer 2014.
Please, keep in mind that thisproject is still under development.
Installation
Installing with pip
Using pipy (check the version as software is being developed)
pip install qpmr
From github
pip install qpmr@git+https://github.com/LockeErasmus/qpmr
Local install
pip install <path-to-qpmr>
Installing from source
Clone repository
git clone https://github.com/LockeErasmus/qpmr.git
install from source with -e
pip install -e qpmr
Citing this work
For now, please cite the following article
@article{vyhlidal2009mapping,
title={Mapping based algorithm for large-scale computation of quasi-polynomial zeros},
author={Vyhlidal, Tomas and Z{\'\i}tek, Pavel},
journal={IEEE Transactions on Automatic Control},
volume={54},
number={1},
pages={171--177},
year={2009},
publisher={IEEE}
}
Or alternatively, this chapter of book
@incollection{vyhlidal2014qpmr,
title={QPmR-Quasi-polynomial root-finder: Algorithm update and examples},
author={Vyhl{\'\i}dal, Tom{\'a}{\v{s}} and Z{\'\i}tek, Pavel},
booktitle={Delay Systems: From Theory to Numerics and Applications},
pages={299--312},
year={2014},
publisher={Springer}
}
Metadata
Title: QPmR Python Package
ID: QPmRpythonPackage
Version: 1.0
Project: Robotics and Advanced Industrial Production
Project No.: CZ.02.01.01/00/22_008/0004590
Project RO: 1.1-Optimal control of interconnected time-delay systems
Date: 20.9.2025
Authors: Adam Peichl; Tomas Vyhlidal
Keywords: rootfinding algorithm, exponential polynomial, quasi-polynomial, time delay system, spectrum
Acknowledgments
This work was supported by the European Union under the project Robotics and Advanced Industrial Production, reg. no. CZ.02.01.01/00/22_008/0004590; by the project 24-10301S of the Czech Science Foundation; and by by the Grant Agency of the Czech Technical University in Prague, grant No. SGS24/125/0HK2/3T/12.
License
This package is available under GNU GPLv3 license.
Metadata
Release files for qpmr 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qpmr-0.1.0.tar.gz | 89.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qpmr-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 174.2 kB
Release files / qpmr-0.1.0.tar.gz
| Download URL | qpmr-0.1.0.tar.gz |
|---|---|
| Size | 89.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e2b6ca408fae9f25c22954bce4ba9bb6c47160905100420c71a02406ff7e46db
|
|
BLAKE2b-256 checksum How to use checksums |
0588fb2bf04bebdb5bf7907de2e00bf6dc6f46f16801e8c1465156632d135f23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / qpmr-0.1.0-py3-none-any.whl
| Download URL | qpmr-0.1.0-py3-none-any.whl |
|---|---|
| Size | 85.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9fc7bbbf88db93fbdeb237b90e1fd43cf74e759e324661f3d2c05fc66c0f5d7f
|
|
BLAKE2b-256 checksum How to use checksums |
320349c8ae1a70bf0e4ed3710088aa259d6f3c4b22c81eddb17542e0e140caef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|