From: stevenj Date: Sun, 2 Sep 2007 01:53:59 +0000 (-0400) Subject: added 1d test function X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a75f93ba80789e0f53f89ed008ca92fe42206d97;p=nlopt.git added 1d test function darcs-hash:20070902015359-c8de0-6debf4722defcdd64dad8ff6eb3770c7002d5f5f.gz --- diff --git a/test/testfuncs.c b/test/testfuncs.c index f01cff2..06856f9 100644 --- a/test/testfuncs.c +++ b/test/testfuncs.c @@ -357,6 +357,19 @@ static const double hansen_lb[2] = {-10,-10}; static const double hansen_ub[2] = {10,10}; static const double hansen_xmin[2] = {-1.306708,-1.425128}; +/****************************************************************************/ +static double osc1d_f(int n, const double *x, double *grad, void *data) +{ + double y = *x - 1.23456789; + UNUSED(data); + if (grad) grad[0] = y*0.02 - sin(y - 2*sin(3*y)) * (1 - 6*cos(3*y)); + RETURN(sqr(y*0.1) - cos(y - 2*sin(3*y))); +} + +static const double osc1d_lb[1] = {-5}; +static const double osc1d_ub[1] = {5}; +static const double osc1d_xmin[1] = {1.23456789}; + /****************************************************************************/ /****************************************************************************/ @@ -417,5 +430,8 @@ const testfunc testfuncs[NTESTFUNCS] = { -24.062499, "Shubert function" }, { hansen_f, NULL, 1, 2, hansen_lb, hansen_ub, hansen_xmin, - -176.541793, "Hansen function" } + -176.541793, "Hansen function" }, + { osc1d_f, NULL, 1, 1, + osc1d_lb, osc1d_ub, osc1d_xmin, + -1.0, "1d oscillating function with a single minimum" } }; diff --git a/test/testfuncs.h b/test/testfuncs.h index e7ebc41..dd3e0f1 100644 --- a/test/testfuncs.h +++ b/test/testfuncs.h @@ -18,7 +18,7 @@ typedef struct { const char *name; } testfunc; -#define NTESTFUNCS 19 +#define NTESTFUNCS 20 extern const testfunc testfuncs[NTESTFUNCS]; extern int testfuncs_verbose;