multivar_horner

multivar_horner: A Python package for computing Horner factorisations of multivariate polynomials - Published in JOSS (2020)

https://github.com/jannikmi/multivar_horner

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
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

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

All Time
  • Total Commits: 208
  • Total Committers: 6
  • Avg Commits per committer: 34.667
  • Development Distribution Score (DDS): 0.298
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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)

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

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 104 Last month
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