Skip to main content

Python bindings for an implementation of CECs benchmarks in C++23

Project description

cecxx

Implementation of IEEE Congress of Evolutionary (CEC) Bound-constrained Single Objective Numerical Optimization benchmarks in C++23 with available interface bindings to Python and R.

About

The {cecxx} is a novel implementation of IEEE CEC BC-SOP benchmarks in C++23, which compared to the official implementation does not:

  • leak memory
  • involve multiple IO operations during each objective function call.

Solving the above problems results in reliable and fast implementation that is ready to be used in your numerical experiments.

Check the examples directory to see how to use this library.

The {cecxx} includes also free-standing implementations of objective functions utlized by CEC benchmarks, see include/cecxx/functions for details.

[!NOTE] This is not official implementation of CEC BC-SOP benchmarks. However, it can be used as a drop-in replacement. The {cecxx} is extensively tested to be compliant with the official implementations by employing property-based testing. See test/compliance for details.

Installation

To install the {cecxx} with cmake, run below commads:

git clone https://codeberg.org/ewarchul/cecxx.git
cd cecxx
cmake \
  -B build \
  -S . \
  -D CMAKE_CXX_STANDARD=23 \
  -D CECXX_BENCHMARK_DATA_STORAGE_INSTALL_DIR="${HOME}/.local/state/cecxx"
cmake --build build
cmake --install build

If you are using just then you can run:

just install_cxx

to build and install the library. See Justfile for details or inspect CMakeLists.txt for all available options.

[!NOTE] {cecxx} is a passive project. It means, that you have to specify the project configuration. See CMakePresets.json for defined workflows.

Python bindings

See docs/bindings/python.md.

R bindings

See docs/bindings/r.md.

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

cecpy-0.1.5.tar.gz (8.1 MB view details)

Uploaded Source

File details

Details for the file cecpy-0.1.5.tar.gz.

File metadata

  • Download URL: cecpy-0.1.5.tar.gz
  • Upload date:
  • Size: 8.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for cecpy-0.1.5.tar.gz
Algorithm Hash digest
SHA256 92008dff8b933f1644d946e77e83dfced48ac351bf31d0394596bead85577777
MD5 5fcd9b00e4707a545c495cfd21b34b75
BLAKE2b-256 5af97488c0a8e23218db73ce248910b1a55d79de8107f775881f2b40b293b818

See more details on using hashes here.

Supported by

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