src/libmoocore/README.md

moocore: Core Mathematical Functions for Multi-Objective Optimization

[ [C library]c-moocore-homepage ] [ [GitHub]c-moocore-github ] Build status Testsuite status

Contributors: Manuel López-Ibáñez, Carlos M. Fonseca, Luís Paquete, Andreia P. Guerreiro.

Introduction

This is the C library and associated command-line tools of the moocore project. This README describes just this component. There is also a moocore Python package and a moocore R package.

The moocore project collects fast implementations of core mathematical functions and algorithms for multi-objective optimization and makes them available to different programming languages via similar interfaces. These functions include:

The goal of moocore is to provide an implementation of these functions that is efficient, thoroughly tested, well-documented, multi-platform (Windows, Linux, MacOS), multi-language (C, R, and Python, so far), with minimal dependencies and reusable from other libraries and packages, thus providing an easy-to-use and high-performance building block.

Most critical functionality is implemented in C, with the R and Python packages providing convenient interfaces to the C code.

Keywords: empirical attainment function, summary attainment surfaces, EAF differences, multi-objective optimization, bi-objective optimization, performance measures, performance assessment

Compilation

We recommend that you compile specifically for your architecture using GCC option -march=. The default compilation is done with:

make nondominated

This uses the option "-march=native". If your GCC version does not support "native", you can give an explicit architecture:

make nondominated march=x86-64

See the [GCC manual](https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html** for the names of the architectures supported by your version of GCC.

Command-line executables

TODO: This section is incomplete, please help us to complete it.

nondominated

Obtain information and perform filtering operations on the nondominated sets given as input.

Testsuite

The moocore executables are validated using a comprehensive testsuite. Running the testsuite requires Python >= 3.10 and additional Python packages (see testsuite/requirements.txt). To run the testsuite yourself, follow these steps:

# Download moocore
git clone https://github.com/multi-objective/moocore moocore
# Download the testsuite
git clone https://github.com/multi-objective/testsuite moocore/testsuite
# Testing
make -C moocore/c/ test
# Timing
make -C moocore/c/ time

License

See the LICENSE and COPYRIGHTS files.



Try the moocore package in your browser

Any scripts or data that you put into this service are public.

moocore documentation built on Aug. 8, 2025, 6:12 p.m.