chiark / gitweb /
added 1d test function
authorstevenj <stevenj@alum.mit.edu>
Sun, 2 Sep 2007 01:53:59 +0000 (21:53 -0400)
committerstevenj <stevenj@alum.mit.edu>
Sun, 2 Sep 2007 01:53:59 +0000 (21:53 -0400)
darcs-hash:20070902015359-c8de0-6debf4722defcdd64dad8ff6eb3770c7002d5f5f.gz

test/testfuncs.c
test/testfuncs.h

index f01cff2a0294f1fb815c43dfe8f7f3b6646d08af..06856f9e24f0514eaf4cee361a32b7d747507c32 100644 (file)
@@ -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" }
 };
index e7ebc41dead31e621a9e0aa3c41bc507739ebf0d..dd3e0f11439d24ea92c4be927510f9239d4929df 100644 (file)
@@ -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;