Skip to main content

QPmR Python Package

PyPI License

This Python package consists of:

  1. 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
  2. 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
  3. quasi-polynomial (and transfer function) algebra
  4. 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)

Source distribution for qpmr 0.1.0
File Size Uploaded
qpmr-0.1.0.tar.gz 89.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qpmr 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page