27 #ifndef PALLAS_TEST_FUNCTIONS_H 28 #define PALLAS_TEST_FUNCTIONS_H 30 #include "pallas/types.h" 34 #define PI 3.14159265358979323846 44 static const double pow_LUT[2] = { 1.0, -1.0 };
61 double schwefel(
const Vector &x)
63 unsigned int num = x.size();
65 for (
unsigned int i = 0; i < num; ++i)
67 s += -x(i) * sin(sqrt(abs(x(i))));
69 return 418.9829 * num + s;
88 double rosenbrock(
const Vector &x)
90 unsigned int num = x.size();
92 for (
unsigned int i = 0; i < (num - 1); ++i)
94 s += (x(i+1) - x(i)*x(i))*(x(i+1) - x(i)*x(i)) + (1-x(i)) * (1-x(i));
113 double easom(
const Vector &x)
115 unsigned int num = x.size();
118 for (
unsigned int i = 0; i < num; ++i)
120 sm += (x(i) - PI)*(x(i) - PI);
121 tm *= cos(x(i))*cos(x(i));
123 return -(pow_LUT[num % 2]) * tm * exp(-sm) + 1.0;
141 double xsy02(
const Vector &x)
143 unsigned int num = x.size();
146 for (
unsigned int i = 0; i < num; ++i)
149 sm2 += sin(x(i)*x(i));
151 return sm1 / exp(sm2);
156 #endif // PALLAS_TEST_FUNCTIONS_H Definition: basinhopping.h:51