f_lunacek_bi_rastrigin.c File Reference

Implementation of the Lunacek bi-Rastrigin function and problem. More...

#include <assert.h>
#include <math.h>
#include "coco.h"
#include "coco_problem.c"
#include "suite_bbob_legacy_code.c"
#include "transform_obj_shift.c"
#include "f_sphere.c"
#include "transform_vars_x_hat_generic.c"
#include "transform_obj_norm_by_dim.c"
#include "transform_obj_scale.c"

Data Structures

struct  f_lunacek_bi_rastrigin_data_t
 Data type for the Lunacek bi-Rastrigin problem. More...
 

Functions

static double f_lunacek_bi_rastrigin_raw (const double *x, const size_t number_of_variables, f_lunacek_bi_rastrigin_data_t *data)
 Implements the Lunacek bi-Rastrigin function without connections to any COCO structures. More...
 
static void f_lunacek_bi_rastrigin_evaluate (coco_problem_t *problem, const double *x, double *y)
 Uses the raw function to evaluate the COCO problem. More...
 
static void f_lunacek_bi_rastrigin_free (coco_problem_t *problem)
 Frees the Lunacek bi-Rastrigin data object. More...
 
static coco_problem_tf_lunacek_bi_rastrigin_bbob_problem_allocate (const size_t function, const size_t dimension, const size_t instance, const long rseed, const char *problem_id_template, const char *problem_name_template)
 Creates the BBOB Lunacek bi-Rastrigin problem. More...
 
static void f_lunacek_bi_rastrigin_versatile_data_free (coco_problem_t *problem)
 allows to free the versatile_data part of the problem. More...
 
static void f_lunacek_bi_rastrigin_sub_evaluate_core (coco_problem_t *problem, const double *x, double *y)
 Uses the core function to evaluate the sub problem. More...
 
static coco_problem_tf_lunacek_bi_rastrigin_sub_problem_allocate (const size_t number_of_variables)
 Allocates the basic lunacek_bi_rastrigin sub problem. More...
 
static double f_lunacek_bi_rastrigin_core (const double *x, const size_t number_of_variables, f_lunacek_bi_rastrigin_versatile_data_t *f_lunacek_bi_rastrigin_versatile_data)
 Implements the lunacek_bi_rastrigin function without connections to any COCO structures. Wassim: core to not conflict with raw for now. More...
 
static void f_lunacek_bi_rastrigin_evaluate_core (coco_problem_t *problem, const double *x, double *y)
 Uses the core function to evaluate the COCO problem. More...
 
static coco_problem_tf_lunacek_bi_rastrigin_problem_allocate (const size_t number_of_variables)
 Allocates the basic lunacek_bi_rastrigin problem. More...
 
static coco_problem_tf_lunacek_bi_rastrigin_permblockdiag_bbob_problem_allocate (const size_t function, const size_t dimension, const size_t instance, const long rseed, const char *problem_id_template, const char *problem_name_template)
 Creates the BBOB large scale suite Lunacek bi-Rastrigin problem. More...
 

Detailed Description

Implementation of the Lunacek bi-Rastrigin function and problem.

Function Documentation

static coco_problem_t* f_lunacek_bi_rastrigin_bbob_problem_allocate ( const size_t  function,
const size_t  dimension,
const size_t  instance,
const long  rseed,
const char *  problem_id_template,
const char *  problem_name_template 
)
static

Creates the BBOB Lunacek bi-Rastrigin problem.

Note
There is no separate basic allocate function.
static double f_lunacek_bi_rastrigin_core ( const double *  x,
const size_t  number_of_variables,
f_lunacek_bi_rastrigin_versatile_data_t f_lunacek_bi_rastrigin_versatile_data 
)
static

Implements the lunacek_bi_rastrigin function without connections to any COCO structures. Wassim: core to not conflict with raw for now.

static void f_lunacek_bi_rastrigin_evaluate ( coco_problem_t problem,
const double *  x,
double *  y 
)
static

Uses the raw function to evaluate the COCO problem.

static void f_lunacek_bi_rastrigin_evaluate_core ( coco_problem_t problem,
const double *  x,
double *  y 
)
static

Uses the core function to evaluate the COCO problem.

static void f_lunacek_bi_rastrigin_free ( coco_problem_t problem)
static

Frees the Lunacek bi-Rastrigin data object.

static coco_problem_t* f_lunacek_bi_rastrigin_permblockdiag_bbob_problem_allocate ( const size_t  function,
const size_t  dimension,
const size_t  instance,
const long  rseed,
const char *  problem_id_template,
const char *  problem_name_template 
)
static

Creates the BBOB large scale suite Lunacek bi-Rastrigin problem.

static coco_problem_t* f_lunacek_bi_rastrigin_problem_allocate ( const size_t  number_of_variables)
static

Allocates the basic lunacek_bi_rastrigin problem.

static double f_lunacek_bi_rastrigin_raw ( const double *  x,
const size_t  number_of_variables,
f_lunacek_bi_rastrigin_data_t data 
)
static

Implements the Lunacek bi-Rastrigin function without connections to any COCO structures.

static void f_lunacek_bi_rastrigin_sub_evaluate_core ( coco_problem_t problem,
const double *  x,
double *  y 
)
static

Uses the core function to evaluate the sub problem.

static coco_problem_t* f_lunacek_bi_rastrigin_sub_problem_allocate ( const size_t  number_of_variables)
static

Allocates the basic lunacek_bi_rastrigin sub problem.

static void f_lunacek_bi_rastrigin_versatile_data_free ( coco_problem_t problem)
static

allows to free the versatile_data part of the problem.