f_weierstrass.c File Reference

Implementation of the Weierstrass function and problem. More...

#include <stdio.h>
#include <assert.h>
#include <math.h>
#include "coco.h"
#include "coco_problem.c"
#include "suite_bbob_legacy_code.c"
#include "transform_obj_penalize.c"
#include "transform_obj_shift.c"
#include "transform_vars_affine.c"
#include "transform_vars_oscillate.c"
#include "transform_vars_shift.c"
#include "transform_vars_permutation.c"
#include "transform_vars_blockrotation.c"
#include "transform_obj_norm_by_dim.c"

Data Structures

struct  f_weierstrass_data_t
 Data type for the Weierstrass problem. More...
 

Macros

#define F_WEIERSTRASS_SUMMANDS   12
 Number of summands in the Weierstrass problem. More...
 

Functions

static double f_weierstrass_raw (const double *x, const size_t number_of_variables, f_weierstrass_data_t *data)
 Implements the Weierstrass function without connections to any COCO structures. More...
 
static void f_weierstrass_evaluate (coco_problem_t *problem, const double *x, double *y)
 Uses the raw function to evaluate the COCO problem. More...
 
static coco_problem_tf_weierstrass_allocate (const size_t number_of_variables)
 Allocates the basic Weierstrass problem. More...
 
static coco_problem_tf_weierstrass_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 Weierstrass problem. More...
 
static coco_problem_tf_weierstrass_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 permuted block-rotated Weierstrass problem. More...
 

Detailed Description

Implementation of the Weierstrass function and problem.

Macro Definition Documentation

#define F_WEIERSTRASS_SUMMANDS   12

Number of summands in the Weierstrass problem.

Function Documentation

static coco_problem_t* f_weierstrass_allocate ( const size_t  number_of_variables)
static

Allocates the basic Weierstrass problem.

static coco_problem_t* f_weierstrass_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 Weierstrass problem.

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

Uses the raw function to evaluate the COCO problem.

static coco_problem_t* f_weierstrass_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 permuted block-rotated Weierstrass problem.

static double f_weierstrass_raw ( const double *  x,
const size_t  number_of_variables,
f_weierstrass_data_t data 
)
static

Implements the Weierstrass function without connections to any COCO structures.