multivar_horner
multivar_horner: A Python package for computing Horner factorisations of multivariate polynomials - Published in JOSS (2020)
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, joss.theoj.org, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.2%) to scientific vocabulary
Keywords
evaluation
factorization
horner
horner-scheme
hornerscheme-solver
math
mathematics
multivariate
multivariate-polynomials
polynomial
polynomial-evaluation
polynomials
python
python3
Keywords from Contributors
simulations
mesh
Last synced: 6 months ago
·
JSON representation
Repository
python package implementing a multivariate Horner scheme for efficiently evaluating multivariate polynomials
Basic Info
- Host: GitHub
- Owner: jannikmi
- License: mit
- Language: Python
- Default Branch: master
- Homepage: https://multivar-horner.readthedocs.io/en/latest/
- Size: 5.01 MB
Statistics
- Stars: 29
- Watchers: 1
- Forks: 3
- Open Issues: 15
- Releases: 7
Topics
evaluation
factorization
horner
horner-scheme
hornerscheme-solver
math
mathematics
multivariate
multivariate-polynomials
polynomial
polynomial-evaluation
polynomials
python
python3
Created over 7 years ago
· Last pushed 12 months ago
Metadata Files
Readme
Changelog
Contributing
Funding
License
README.rst
===============
multivar_horner
===============
.. image:: https://github.com/jannikmi/multivar_horner/actions/workflows/build.yml/badge.svg?branch=master
:target: https://github.com/jannikmi/multivar_horner/actions?query=branch%3Amaster
:alt: Build status
.. image:: https://readthedocs.org/projects/multivar_horner/badge/?version=latest
:alt: documentation status
:target: https://multivar_horner.readthedocs.io/en/latest/?badge=latest
.. image:: https://img.shields.io/pypi/wheel/multivar-horner.svg
:target: https://pypi.python.org/pypi/multivar-horner
.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
:target: https://github.com/pre-commit/pre-commit
:alt: pre-commit
.. image:: https://pepy.tech/badge/multivar-horner
:alt: Total PyPI downloads
:target: https://pepy.tech/project/multivar-horner
.. image:: https://img.shields.io/pypi/v/multivar_horner.svg
:alt: latest version on PyPI
:target: https://pypi.python.org/pypi/multivar-horner
.. image:: https://joss.theoj.org/papers/0b514c6894780f3cc81ed88c141631d4/status.svg
:alt: JOSS status
:target: https://joss.theoj.org/papers/0b514c6894780f3cc81ed88c141631d4
.. image:: https://zenodo.org/badge/155578190.svg
:target: https://zenodo.org/badge/latestdoi/155578190
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
``multivar_horner`` is a python package implementing a multivariate
`Horner scheme ("Horner's method", "Horner's rule") `__
for efficiently evaluating multivariate polynomials.
Quick Guide:
.. code-block:: console
pip install multivar_horner
For efficiency this package is compiling the instructions required for polynomial evaluation to C by default.
If you don't have a C compiler (``gcc`` or ``cc``) installed you also need to install numba for using an alternative method:
.. code-block:: console
pip install multivar_horner[numba]
Simple example:
.. code-block:: python
import numpy as np
from multivar_horner import HornerMultivarPolynomial
# input parameters defining the polynomial
# p(x) = 5.0 + 1.0 x_1^3 x_2^1 + 2.0 x_1^2 x_3^1 + 3.0 x_1^1 x_2^1 x_3^1
coefficients = np.array([[5.0], [1.0], [2.0], [3.0]], dtype=np.float64)
exponents = np.array([[0, 0, 0], [3, 1, 0], [2, 0, 1], [1, 1, 1]], dtype=np.uint32)
# [#ops=7] p(x) = x_1 (x_1 (x_1 (1.0 x_2) + 2.0 x_3) + 3.0 x_2 x_3) + 5.0
horner_polynomial = HornerMultivarPolynomial(coefficients, exponents)
x = np.array([-2.0, 3.0, 1.0], dtype=np.float64)
p_x = horner_polynomial(x)
Also see:
- `Documentation `__
- `GitHub `__
- `PyPI `__
- `paper (JOSS) `__
- `paper (arXiv) `__
Owner
- Name: Jannik Kissinger
- Login: jannikmi
- Kind: user
- Location: Heidelberg, Germany
- Company: @svalabs
- Website: https://www.linkedin.com/in/jannik-kissinger-546b7a181/
- Repositories: 11
- Profile: https://github.com/jannikmi
Algorithm Engineering - Machine Learning - Reinforcement Learning
GitHub Events
Total
- Watch event: 3
- Delete event: 1
- Issue comment event: 1
- Push event: 1
- Pull request event: 4
- Create event: 3
Last Year
- Watch event: 3
- Delete event: 1
- Issue comment event: 1
- Push event: 1
- Pull request event: 4
- Create event: 3
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| MrMinimal64 | g****b@m****t | 146 |
| MrMinimal64 | p****n@m****t | 47 |
| dependabot[bot] | 4****] | 9 |
| Steve Schmerler | g****t@e****m | 3 |
| David P. Sanders | d****s@g****m | 2 |
| MrMinimal64 | M****4 | 1 |
Committer Domains (Top 20 + Academic)
michelfe.it: 2
elcorto.com: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 27
- Total pull requests: 40
- Average time to close issues: 6 months
- Average time to close pull requests: about 1 month
- Total issue authors: 9
- Total pull request authors: 4
- Average comments per issue: 1.96
- Average comments per pull request: 0.38
- Merged pull requests: 25
- Bot issues: 0
- Bot pull requests: 22
Past Year
- Issues: 0
- Pull requests: 7
- Average time to close issues: N/A
- Average time to close pull requests: about 2 months
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.29
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 7
Top Authors
Issue Authors
- jannikmi (19)
- Cfather (1)
- johan-girardot (1)
- dpsanders (1)
- pomeroyb (1)
- Dannylee885 (1)
- KPJoshi (1)
- LordThunder333 (1)
- hbarthels (1)
Pull Request Authors
- dependabot[bot] (33)
- jannikmi (17)
- dpsanders (2)
- elcorto (2)
Top Labels
Issue Labels
enhancement (15)
help wanted (4)
good first issue (4)
Pull Request Labels
dependencies (33)
python (21)
Packages
- Total packages: 1
-
Total downloads:
- pypi 104 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 14
- Total maintainers: 1
pypi.org: multivar-horner
python package implementing a multivariate Horner scheme for efficiently evaluating multivariate polynomials
- Homepage: https://multivar-horner.readthedocs.io/en/latest/
- Documentation: https://multivar-horner.readthedocs.io/en/latest/
- License: MIT
-
Latest release: 3.1.0
published about 3 years ago
Rankings
Dependent packages count: 10.1%
Stargazers count: 12.3%
Forks count: 16.9%
Average: 19.8%
Dependent repos count: 21.6%
Downloads: 38.2%
Maintainers (1)
Last synced:
6 months ago
Dependencies
docs/requirements.txt
pypi
- Sphinx *
- numpy *
- sphinx-rtd-theme *
- sphinxcontrib-bibtex *
- toml *
poetry.lock
pypi
- alabaster 0.7.12 develop
- atomicwrites 1.4.1 develop
- attrs 21.4.0 develop
- babel 2.10.3 develop
- bleach 5.0.1 develop
- build 0.8.0 develop
- certifi 2022.6.15 develop
- cffi 1.15.1 develop
- cfgv 3.3.1 develop
- charset-normalizer 2.1.0 develop
- colorama 0.4.5 develop
- coverage 6.4.1 develop
- cryptography 37.0.4 develop
- distlib 0.3.4 develop
- docutils 0.17.1 develop
- filelock 3.7.1 develop
- identify 2.5.1 develop
- idna 3.3 develop
- imagesize 1.4.1 develop
- importlib-metadata 4.12.0 develop
- iniconfig 1.1.1 develop
- jeepney 0.8.0 develop
- jinja2 3.1.2 develop
- keyring 23.6.0 develop
- latexcodec 2.0.1 develop
- markupsafe 2.1.1 develop
- nodeenv 1.7.0 develop
- packaging 21.3 develop
- pep517 0.12.0 develop
- pkginfo 1.8.3 develop
- platformdirs 2.5.2 develop
- pluggy 1.0.0 develop
- pre-commit 2.19.0 develop
- py 1.11.0 develop
- pybtex 0.24.0 develop
- pybtex-docutils 1.0.2 develop
- pycparser 2.21 develop
- pygments 2.12.0 develop
- pyparsing 3.0.9 develop
- pytest 6.2.5 develop
- pytest-cov 3.0.0 develop
- pytz 2022.1 develop
- pywin32-ctypes 0.2.0 develop
- pyyaml 6.0 develop
- readme-renderer 35.0 develop
- requests 2.28.1 develop
- requests-toolbelt 0.9.1 develop
- rfc3986 2.0.0 develop
- rstcheck 3.5.0 develop
- secretstorage 3.3.2 develop
- six 1.16.0 develop
- snowballstemmer 2.2.0 develop
- sphinx 4.5.0 develop
- sphinx-rtd-theme 1.0.0 develop
- sphinxcontrib-applehelp 1.0.2 develop
- sphinxcontrib-bibtex 2.4.2 develop
- sphinxcontrib-devhelp 1.0.2 develop
- sphinxcontrib-htmlhelp 2.0.0 develop
- sphinxcontrib-jsmath 1.0.1 develop
- sphinxcontrib-qthelp 1.0.3 develop
- sphinxcontrib-serializinghtml 1.1.5 develop
- toml 0.10.2 develop
- tomli 2.0.1 develop
- tox 3.25.1 develop
- tqdm 4.64.0 develop
- twine 3.8.0 develop
- urllib3 1.26.10 develop
- virtualenv 20.15.1 develop
- webencodings 0.5.1 develop
- zipp 3.8.0 develop
- llvmlite 0.38.1
- numba 0.55.2
- numpy 1.22.4
pyproject.toml
pypi
- Sphinx ^4.3.1 develop
- build ^0.8.0 develop
- pre-commit ^2.15.0 develop
- pytest ^6.2.5 develop
- pytest-cov ^3.0.0 develop
- rstcheck ^3.3.1 develop
- sphinx-rtd-theme ^1.0.0 develop
- sphinxcontrib-bibtex ^2.4.1 develop
- tox ^3.24.4 develop
- twine ^3.6.0 develop
- numba ^0.55.2
- numpy ^1.22
- python >=3.8,<3.11
.github/workflows/build.yml
actions
- actions/checkout v4 composite
- actions/setup-python v5 composite
- ncipollo/release-action v1 composite
- pre-commit/action v3.0.1 composite
- pypa/gh-action-pypi-publish release/v1 composite