00001
00020
00021
00022 #ifdef _MAIN
00023 #define EXTERNAL
00024 #elif defined(_ALL)
00025 #define EXTERNAL static
00026 #else
00027 #define EXTERNAL extern
00028 #endif
00029
00030 # ifndef _GLOBAL_H
00031 # define _GLOBAL_H
00032
00033 # include <values.h>
00034
00035
00036
00037 # define INF MAXDOUBLE
00038 # define EPS 1.0e-10
00039 # define E 2.7182818284590452353602874713526625
00040 # define PI 3.1415926535897932384626433832795029
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 # define f11
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 EXTERNAL int nreal;
00072 EXTERNAL int nfunc;
00073
00074
00075
00076
00077
00078 EXTERNAL long double C;
00079 EXTERNAL long double global_bias;
00080 EXTERNAL long double *trans_x;
00081 EXTERNAL long double *basic_f;
00082 EXTERNAL long double *temp_x1;
00083 EXTERNAL long double *temp_x2;
00084 EXTERNAL long double *temp_x3;
00085 EXTERNAL long double *temp_x4;
00086 EXTERNAL long double *weight;
00087 EXTERNAL long double *sigma;
00088 EXTERNAL long double *lambda;
00089 EXTERNAL long double *bias;
00090 EXTERNAL long double *norm_x;
00091 EXTERNAL long double *norm_f;
00092 EXTERNAL long double **o;
00093 EXTERNAL long double **g;
00094 EXTERNAL long double ***l;
00095
00096
00097 long double maximum (long double, long double);
00098 long double minimum (long double, long double);
00099 long double modulus (long double*, int);
00100 long double dot (long double*, long double*, int);
00101 long double mean (long double*, int);
00102
00103
00104 long double calc_ackley (long double*);
00105 long double calc_rastrigin (long double*);
00106 long double calc_weierstrass (long double*);
00107 long double calc_griewank (long double*);
00108 long double calc_sphere (long double*);
00109 long double calc_schwefel (long double*);
00110 long double calc_rosenbrock (long double *x);
00111 long double nc_schaffer (long double, long double);
00112 long double nc_rastrigin (long double*);
00113
00114
00115 void allocate_memory();
00116 void initialize();
00117 void transform (long double*, int);
00118 void transform_norm (int);
00119 void calc_weight (long double*, int);
00120 void free_memory();
00121
00122
00123 long double calc_benchmark_func (long double*);
00124 void calc_benchmark_norm();
00125
00126 # endif