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

Uploaded Source

File details

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

File metadata

  • Download URL: cecpy-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 c99b8a8dca77055bd943fd5b996ae00395dfaa058dbadc0929e36b694fe20956
MD5 ef000044b65e9d9920322859bfc18f34
BLAKE2b-256 efda9474f6127914d98606ec9efcfa23ba94037be69a6a8df994620a2584f0ac

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