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.7.tar.gz (8.1 MB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: cecpy-0.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 6aa9f34489b908e1a0535372a4cf9f2f910b03fc7541290db4ec47f9a8a64065
MD5 096817be65a9bb2dfe9e9963ae1ca194
BLAKE2b-256 f620b9ada9d2f8445b3f7746361f9de74eae2f1289e69d4a32431694ee75ba52

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