Metadata-Version: 2.1
Name: polybench
Version: 0.1.0rc1
Summary: Multivariate polynomial arithmetic benchmark tests.
Home-page: https://github.com/tueda/polybench
License: MIT
Keywords: benchmark,mathematics,multivariate-polynomials
Author: Takahiro Ueda
Author-email: tueda@st.seikei.ac.jp
Requires-Python: >=3.6.1,<4.0.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: System :: Benchmark
Requires-Dist: colorama (>=0.4.4,<0.5.0)
Requires-Dist: colorlog (>=4.6.2,<5.0.0)
Requires-Dist: importlib-metadata (>=3.3.0,<4.0.0)
Requires-Dist: importlib-resources (>=4.1.1,<5.0.0)
Requires-Dist: matplotlib (>=3.3.3,<4.0.0)
Requires-Dist: pandas (>=1.1.5,<2.0.0)
Requires-Dist: pretty-errors (>=1.2.19,<2.0.0)
Requires-Dist: psutil (>=5.8.0,<6.0.0)
Requires-Dist: py-cpuinfo (>=7.0.0,<8.0.0)
Requires-Dist: symengine (>=0.6.1,<0.7.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Requires-Dist: typing-extensions (>=3.7.4,<4.0.0)
Project-URL: Repository, https://github.com/tueda/polybench
Description-Content-Type: text/markdown

polybench
=========

[![Test](https://github.com/tueda/polybench/workflows/Test/badge.svg?branch=master)](https://github.com/tueda/polybench/actions?query=branch:master)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/tueda/polybench.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/tueda/polybench/context:python)

Multivariate polynomial arithmetic benchmark tests.

Many scientific and engineering applications utilise multivariate polynomial
arithmetic in their algorithms and solutions. Here we provide a set of
benchmark tests for often-used operations in multivariate polynomial
arithmetic:

- Greatest common divisor
- Factorisation


Requirements
------------

- [Python](https://www.python.org/) >= 3.6.1

You also need at least one or more tools to be benchmarked.
They are (in alphabetical order):

- [Fermat](https://home.bway.net/lewis/)
- [FORM](https://www.nikhef.nl/~form/):
  if not available in the system, then
  a [release binary](https://github.com/vermaseren/form/releases)
  will be automatically downloaded.
- [Mathematica](https://www.wolfram.com/mathematica/)
- [reFORM](https://reform.readthedocs.io/en/latest/):
  automatically downloaded
  (requires [Rust](https://www.rust-lang.org/) >= 1.36).
- [Rings](https://ringsalgebra.io/):
  automatically downloaded
  (requires [JDK](https://www.oracle.com/technetwork/java/) >= 8).
- [Singular](https://www.singular.uni-kl.de/)


Get started
-----------

Clone this repository and try to run the `run.sh` script:

```sh
git clone https://github.com/tueda/polybench.git
cd polybench
./run.sh --all
```

When starting the script for the first time, it automatically sets up
a virtual environment for required Python packages so that it will not dirty
your environment. Some of the tools are provided as libraries registered in
public package registries, so the first run takes some time to download,
compile and link them with test binaries. After testing, a CSV file and
comparison plots will be generated.

For practical benchmarking, configuration parameters should be set
adequately. See the help message shown by

```sh
./run.sh --help
```

You can also use [Poetry](https://python-poetry.org/)
or [Docker](https://www.docker.com/) with this repository.


License
-------

[MIT](https://github.com/tueda/polybench/blob/master/LICENSE)

