Skip to main content

A collection of benchmark functions for mathematical optimization algorithms.

Project description

BenchmarkFcns

Benchmarkfcns is an effort to provide a high-perfomant, public and free implementation of well-known benchmark functions for mathematical optimization algorithms in Python. The Python library is implemented in C++ and utilizes the powerful SIMD vector calucluations offered by the Eigen library.

For the documentation of the implemented functions and their features, please visit https://benchmarkfcns.info.

How to install

Python

The library is packaged and available on the PyPI index. To install, simply run pip install benchmarkfcns.

Local development and compilation

The library is built with with pybind11, scikit-build-core and Eigen. To compile the library, you will need to have CMake version 3.15 or above installed and configured. The easiest way to compile and install the package locally is to clone the repository, e.g. BenchmarkFcns, and then run pip install ./BenchmarkFcns. Although optional, it is highly recommended to install the package into a virtual environment.

Contribution

Any suggestions and contributions are welcomed. The best way to contribute to the library is to fork the repository, apply the contributions and create a pull request.

MATLAB

To install and use the MATLAB implementation, it is just required to add the project folders to MATLAB's path. For example, to use the functions in the 'benchmarks/MATLAB' folder, just navigate to this folder with MATLAB's directory explorer or use the command addpath with path to the folder on your PC (e.g. addpath /path/to/benchmarks).

Support

Any bug reports, code contributions, suggestions, feedback and insights are greatly appreciated. If you are using this library in a research publication, please kindly consider citing the repository as "Ardeh, M. A. [2024] BenchmarkFcns [Source Code]. GitHub. https://github.com/mazhar-ansari-ardeh/BenchmarkFcns".

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

benchmarkfcns-2.0.0.tar.gz (2.7 MB view hashes)

Uploaded Source

Built Distributions

benchmarkfcns-2.0.0-pp310-pypy310_pp73-win_amd64.whl (116.9 kB view hashes)

Uploaded PyPy Windows x86-64

benchmarkfcns-2.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

benchmarkfcns-2.0.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (155.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

benchmarkfcns-2.0.0-pp39-pypy39_pp73-win_amd64.whl (117.0 kB view hashes)

Uploaded PyPy Windows x86-64

benchmarkfcns-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

benchmarkfcns-2.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (154.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

benchmarkfcns-2.0.0-cp312-cp312-win_arm64.whl (95.0 kB view hashes)

Uploaded CPython 3.12 Windows ARM64

benchmarkfcns-2.0.0-cp312-cp312-win_amd64.whl (118.0 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

benchmarkfcns-2.0.0-cp312-cp312-win32.whl (104.5 kB view hashes)

Uploaded CPython 3.12 Windows x86

benchmarkfcns-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl (667.1 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

benchmarkfcns-2.0.0-cp312-cp312-musllinux_1_1_i686.whl (718.0 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

benchmarkfcns-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142.6 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

benchmarkfcns-2.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (156.8 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

benchmarkfcns-2.0.0-cp312-cp312-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (265.6 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64 macOS 11.0+ universal2 (ARM64, x86-64)

benchmarkfcns-2.0.0-cp311-cp311-win_arm64.whl (95.3 kB view hashes)

Uploaded CPython 3.11 Windows ARM64

benchmarkfcns-2.0.0-cp311-cp311-win_amd64.whl (117.9 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

benchmarkfcns-2.0.0-cp311-cp311-win32.whl (104.4 kB view hashes)

Uploaded CPython 3.11 Windows x86

benchmarkfcns-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl (667.8 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

benchmarkfcns-2.0.0-cp311-cp311-musllinux_1_1_i686.whl (718.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

benchmarkfcns-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143.4 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

benchmarkfcns-2.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (156.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

benchmarkfcns-2.0.0-cp311-cp311-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (268.6 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64 macOS 11.0+ universal2 (ARM64, x86-64)

benchmarkfcns-2.0.0-cp310-cp310-win_arm64.whl (93.9 kB view hashes)

Uploaded CPython 3.10 Windows ARM64

benchmarkfcns-2.0.0-cp310-cp310-win_amd64.whl (116.8 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

benchmarkfcns-2.0.0-cp310-cp310-win32.whl (103.7 kB view hashes)

Uploaded CPython 3.10 Windows x86

benchmarkfcns-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl (667.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

benchmarkfcns-2.0.0-cp310-cp310-musllinux_1_1_i686.whl (717.2 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

benchmarkfcns-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

benchmarkfcns-2.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (155.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

benchmarkfcns-2.0.0-cp310-cp310-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (266.1 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64 macOS 11.0+ universal2 (ARM64, x86-64)

benchmarkfcns-2.0.0-cp39-cp39-win_arm64.whl (94.1 kB view hashes)

Uploaded CPython 3.9 Windows ARM64

benchmarkfcns-2.0.0-cp39-cp39-win_amd64.whl (117.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

benchmarkfcns-2.0.0-cp39-cp39-win32.whl (103.9 kB view hashes)

Uploaded CPython 3.9 Windows x86

benchmarkfcns-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl (667.1 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

benchmarkfcns-2.0.0-cp39-cp39-musllinux_1_1_i686.whl (717.4 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

benchmarkfcns-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

benchmarkfcns-2.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (155.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

benchmarkfcns-2.0.0-cp39-cp39-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (266.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64 macOS 11.0+ universal2 (ARM64, x86-64)

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page