API (C++)

The C++ API provides access to the core optimization algorithms and benchmark functions implemented in Minion.

class CEC2011Functions : public minion::CECBase
#include <cec2011.h>

Class encapsulating the 20 real-world CEC2011 benchmark problems.

Public Functions

CEC2011Functions(int function_number, int dimension)

Construct a new evaluator for a specific CEC2011 problem.

Parameters:
  • function_number – Problem index as defined by the original suite (1-20).

  • dimension – Decision vector dimension for the selected problem.

~CEC2011Functions() = default
class CEC20142017Functions : public minion::CECBase
#include <cec_combine.h>

Combined benchmark suite containing CEC2014 and CEC2017.

Functions F1-F30 are mapped to CEC2014 F1-F30. Functions F31-F60 are mapped to CEC2017 F1-F30.

Public Functions

CEC20142017Functions(int function_number, int dimension)

Constructor for the combined CEC2014/CEC2017 benchmark suite.

Parameters:
  • function_number – Function number (1-60).

  • dimension – Dimension of the problem.

inline ~CEC20142017Functions()

Destructor.

class CEC2014Functions : public minion::CECBase
#include <cec2014.h>

Class encapsulating CEC2014 test functions.

Public Functions

CEC2014Functions(int function_number, int dimension)

Constructor for CEC2014Functions.

Parameters:
  • function_number – Function number (1-30).

  • dimension – Dimension of the problem.

inline ~CEC2014Functions()

Destructor.

class CEC2017Functions : public minion::CECBase
#include <cec2017.h>

Class encapsulating CEC2017 test functions.

Public Functions

CEC2017Functions(int function_number, int dimension)

Constructor for CEC2017Functions.

Parameters:
  • function_number – Function number (1-30).

  • dimension – Dimension of the problem.

inline ~CEC2017Functions()

Destructor.

class CEC2019Functions : public minion::CECBase
#include <cec2019.h>

Class encapsulating CEC2019 test functions.

Public Functions

CEC2019Functions(int function_number, int dimension)

Constructor for CEC2019Functions.

Parameters:
  • function_number – Function number (1-10).

  • dimension – Dimension of the problem.

inline ~CEC2019Functions()

Destructor.

class CEC2020Functions : public minion::CECBase
#include <cec2020.h>

Class encapsulating CEC2020 test functions.

Public Functions

CEC2020Functions(int function_number, int dimension)

Constructor for CEC2020Functions.

Parameters:
  • function_number – Function number (1-10).

  • dimension – Dimension of the problem.

inline ~CEC2020Functions()

Destructor.

class CEC2022Functions : public minion::CECBase
#include <cec2022.h>

Class encapsulating CEC2022 test functions.

Public Functions

CEC2022Functions(int function_number, int dimension)

Constructor for CEC2022Functions.

Parameters:
  • function_number – Function number (1-10).

  • dimension – Dimension of the problem.

inline ~CEC2022Functions()

Destructor.

class CECBase
#include <cec.h>

base class for all CEC functions.

Subclassed by minion::CEC2011Functions, minion::CEC20142017Functions, minion::CEC2014Functions, minion::CEC2017Functions, minion::CEC2019Functions, minion::CEC2020Functions, minion::CEC2022Functions

Public Functions

CECBase(int function_number, int dimension)

Constructor.

Parameters:
  • function_number – Function number (1-10).

  • dimension – Dimension of the problem.

virtual ~CECBase()

destructor

virtual std::vector<double> operator()(const std::vector<std::vector<double>> &X)

Operator to evaluate CEC2020 test functions.

Parameters:

X – Input vectors to evaluate.

Returns:

Vector of function values corresponding to each input vector.

Public Members

size_t Ncalls = 0

Protected Attributes

int dimension_

Dimension of the problem.

int function_number_

Function number.

CECTestFunc testfunc
struct ProblemDefinition

Public Members

int dimension
std::vector<std::pair<double, double>> bounds
namespace minion

Typedefs

using CECTestFunc = void (*)(double*, double*, int, int, int)

Functions

void resetThreadLocalCECState()
std::string getLibraryPath()
std::string getLibraryDirectory()
std::string getResourcePath()

Variables

thread_local double *OShift
thread_local double *M
thread_local double *y
thread_local double *z
thread_local double *x_bound
thread_local int ini_flag = 0
thread_local int n_flag
thread_local int func_flag
thread_local int *SS
thread_local int cec_instance_count = 0
const std::string dirPath = getResourcePath()
namespace CEC2011

Functions

const ProblemDefinition &problemDefinition(int function_number)

Return the special dimension and bounds for a CEC2011 problem.

Parameters:

function_number – Problem number (1-22).

Returns:

Problem definition including the required dimension and bounds.

int problemDimension(int function_number)

Return the required dimension for a CEC2011 problem.

const std::vector<std::pair<double, double>> &problemBounds(int function_number)

Return the required bounds for a CEC2011 problem.

void evaluate(double *x, double *f, int nx, int mx, int func_num)

Evaluate CEC2011 test functions.

Parameters:
  • x – Flattened decision vectors (mx consecutive blocks of nx values).

  • f – Output buffer receiving mx objective values.

  • nx – Decision vector dimension.

  • mx – Number of vectors to evaluate.

  • func_num – Problem number (1-20).

namespace CEC2014

Functions

void cec14_test_func(double *x, double *f, int nx, int mx, int func_num)

All function below are unmodified from the original source : https://github.com/P-N-Suganthan/CEC2014

void sphere_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ellips_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bent_cigar_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void discus_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void dif_powers_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rosenbrock_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schaffer_F7_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ackley_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void weierstrass_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void griewank_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void step_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schwefel_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void katsuura_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bi_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void grie_rosen_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void escaffer6_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void happycat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hgbat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hf01(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf02(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf03(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf04(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf05(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf06(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void cf01(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf02(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf03(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf04(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf05(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf06(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf07(double *x, double *f, int nx, double *Os, double *Mr, int *SS, int r_flag)
void cf08(double *x, double *f, int nx, double *Os, double *Mr, int *SS, int r_flag)
void shiftfunc(double *x, double *xshift, int nx, double *Os)
void rotatefunc(double *x, double *xrot, int nx, double *Mr)
void sr_func(double *x, double *sr_x, int nx, double *Os, double *Mr, double sh_rate, int s_flag, int r_flag)
void asyfunc(double *x, double *xasy, int nx, double beta)
void oszfunc(double *x, double *xosz, int nx)
void cf_cal(double *x, double *f, int nx, double *Os, double *delta, double *bias, double *fit, int cf_num)
namespace CEC20142017

Functions

void cec_combined_test_func(double *x, double *f, int nx, int mx, int func_num)

Combined benchmark evaluator for CEC2014 and CEC2017.

namespace CEC2017

Functions

void cec17_test_func(double *x, double *f, int nx, int mx, int func_num)

All function below are unmodified from the original source : https://github.com/P-N-Suganthan/CEC2017-BoundContrained

void sphere_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ellips_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void sum_diff_pow_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void zakharov_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void levy_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void dixon_price_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bent_cigar_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void discus_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void dif_powers_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rosenbrock_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schaffer_F7_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ackley_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void weierstrass_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void griewank_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void step_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schwefel_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void katsuura_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bi_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void grie_rosen_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void escaffer6_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void happycat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hgbat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hf01(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf02(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf03(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf04(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf05(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf06(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf07(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf08(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf09(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf10(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void cf01(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf02(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf03(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf04(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf05(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf06(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf07(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf08(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf09(double *x, double *f, int nx, double *Os, double *Mr, int *SS, int r_flag)
void cf10(double *x, double *f, int nx, double *Os, double *Mr, int *SS, int r_flag)
void shiftfunc(double *x, double *xshift, int nx, double *Os)
void rotatefunc(double *x, double *xrot, int nx, double *Mr)
void sr_func(double *x, double *sr_x, int nx, double *Os, double *Mr, double sh_rate, int s_flag, int r_flag)
void asyfunc(double *x, double *xasy, int nx, double beta)
void oszfunc(double *x, double *xosz, int nx)
void cf_cal(double *x, double *f, int nx, double *Os, double *delta, double *bias, double *fit, int cf_num)
namespace CEC2019

Functions

void cec19_test_func(double *x, double *f, int nx, int mx, int func_num)
void schaffer_F7_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void griewank_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ackley_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void weierstrass_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void step_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schwefel_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void escaffer6_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void happycat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void shiftfunc(double *x, double *xshift, int nx, double *Os)
void rotatefunc(double *x, double *xrot, int nx, double *Mr)
void sr_func(double *x, double *sr_x, int nx, double *Os, double *Mr, double sh_rate, int s_flag, int r_flag)
void asyfunc(double *x, double *xasy, int nx, double beta)
void oszfunc(double *x, double *xosz, int nx)
void Lennard_Jones(double *x, int D, double *f)

All function below are unmodified from the original source : https://github.com/P-N-Suganthan/CEC2019

void Hilbert(double *x, int D, double *f)
void Chebyshev(double *x, int D, double *f)
namespace CEC2020

Functions

void cec20_test_func(double *x, double *f, int nx, int mx, int func_num0)

All function below are unmodified from the original source : https://github.com/7zaa/IEEE-Congress-on-Evolutionary-Computation-Benchmark-functions-suite

void sphere_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ellips_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void sum_diff_pow_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void zakharov_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void levy_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void dixon_price_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bent_cigar_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void discus_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void dif_powers_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rosenbrock_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schaffer_F7_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ackley_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void weierstrass_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void griewank_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void step_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schwefel_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void katsuura_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bi_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void grie_rosen_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void escaffer6_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void happycat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hgbat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hf01(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf02(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf03(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf04(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf05(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf06(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf07(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf08(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf09(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf10(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void cf01(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf02(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf03(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf04(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf05(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf06(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf07(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf08(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf09(double *x, double *f, int nx, double *Os, double *Mr, int *SS, int r_flag)
void cf10(double *x, double *f, int nx, double *Os, double *Mr, int *SS, int r_flag)
void shiftfunc(double *x, double *xshift, int nx, double *Os)
void rotatefunc(double *x, double *xrot, int nx, double *Mr)
void sr_func(double *x, double *sr_x, int nx, double *Os, double *Mr, double sh_rate, int s_flag, int r_flag)
void asyfunc(double *x, double *xasy, int nx, double beta)
void oszfunc(double *x, double *xosz, int nx)
void cf_cal(double *x, double *f, int nx, double *Os, double *delta, double *bias, double *fit, int cf_num)
namespace CEC2022

Functions

void cec22_test_func(double *x, double *f, int nx, int mx, int func_num)

All function below are unmodified from the original source : https://github.com/P-N-Suganthan/2022-SO-BO

void ellips_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void bent_cigar_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void discus_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rosenbrock_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void ackley_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void griewank_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schwefel_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void grie_rosen_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void escaffer6_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void happycat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hgbat_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void schaffer_F7_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void step_rastrigin_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void levy_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void zakharov_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void katsuura_func(double *x, double *f, int nx, double *Os, double *Mr, int s_flag, int r_flag)
void hf02(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf10(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void hf06(double *x, double *f, int nx, double *Os, double *Mr, int *S, int s_flag, int r_flag)
void cf01(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf02(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf06(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void cf07(double *x, double *f, int nx, double *Os, double *Mr, int r_flag)
void shiftfunc(double *x, double *xshift, int nx, double *Os)
void rotatefunc(double *x, double *xrot, int nx, double *Mr)
void sr_func(double *x, double *sr_x, int nx, double *Os, double *Mr, double sh_rate, int s_flag, int r_flag)
void asyfunc(double *x, double *xasy, int nx, double beta)
void oszfunc(double *x, double *xosz, int nx)
void cf_cal(double *x, double *f, int nx, double *Os, double *delta, double *bias, double *fit, int cf_num)
namespace mgadsm
file cec.cpp
#include “cec.h
#include <string>
#include <vector>
#include “path_utils.h”
#include <dlfcn.h>
#include <limits.h>
#include <sys/stat.h>
#include <unistd.h>
file cec.h
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <exception>

Defines

INF
EPS
E
PI
file cec2011.cpp
#include “cec2011.h
#include <algorithm>
#include <array>
#include <cmath>
#include <unordered_map>
#include <limits>
#include <numeric>
#include <stdexcept>
#include <vector>
#include <Eigen/Dense>
#include “cec2011_f4_reference.inl

Variables

double R1
double R2
double A
double B
double lambda1
double lambda2
double lambda3
double c
double d
double n
double gamma
double h
int from
int to
double reactance
double capacity
double cost
double limit
double lower
double upper
double pmin
double pmax
double a
double b
double e
double f
double upRamp
double downRamp
double initial
std::vector<ProhibitedZone> zones
std::vector<double> B1
std::vector<double> B2
double B3
int units
int hours
std::vector<double> demand
std::vector<UnitData> unitData
LossCoefficients loss
double penaltyBalance
double penaltyCapacity
double penaltyRamp
double penaltyPoz
bool roundLoss
double qmin
double qmax
double phMin
double phMax
double vmin
double vmax
double vInitial
double vFinal
int delay
int upstreamCount
std::array<double, 6> coeffs
std::vector<double> inflow
std::vector<ProhibitedZone> poz
double balance
double hydroCapacity
double thermalCapacity
double discharge
double storage
double reservoir
double ptMin
double ptMax
HydroThermalWeights weights
bool valvePoint
std::vector<int> sequence
MGADSMObjectiveType objective
double rpTarget
double eTarget
Eigen::Vector3d v1
Eigen::Vector3d v2
double semiMajor
double p
Eigen::MatrixXd X
std::array<double, kProblem9Lines.size()> fcWeights = {}
std::array<double, kProblem9GeneratorBuses.size()> btRowSums = {}
std::array<double, kProblem9LoadBuses.size()> btColSums = {}
file cec2011.h
#include “cec.h
#include <Eigen/Dense>
#include <utility>
#include <vector>
file cec2011_f4_reference.inl

Variables

static constexpr std::array<double, 5001> kProblem4Reference
file cec2014.cpp
#include “cec2014.h
file cec2014.h
#include “cec.h
file cec2017.cpp
#include “cec2017.h
file cec2017.h
#include “cec.h
file cec2019.cpp
#include “cec2019.h
file cec2019.h
#include “cec.h
file cec2020.cpp
#include “cec2020.h
file cec2020.h
#include “cec.h
file cec2022.cpp
#include “cec2022.h
file cec2022.h
#include “cec.h
file cec_combine.cpp
#include “cec_combine.h
#include “cec2014.h
#include “cec2017.h
file cec_combine.h
#include “cec.h
dir minion/cec
dir minion