} auglag_data;
/* the augmented lagrangian objective function */
-static double auglag(int n, const double *x, double *grad, void *data)
+static double auglag(unsigned n, const double *x, double *grad, void *data)
{
auglag_data *d = (auglag_data *) data;
double *gradtmp = grad ? d->gradtmp : NULL;
double rho = d->rho;
const double *lambda = d->lambda, *mu = d->mu;
double L;
- int i, j;
+ int i;
+ unsigned j;
L = d->f(n, x, grad, d->f_data);
int im, ip;
/* find unequal points before (im) and after (ip) to get slope */
- for (im = i-1; im >= 0 && hull[im][0] == hull[i][0]; --im);
- for (ip = i+1; ip < nhull && hull[ip][0] == hull[i][0]; ++ip);
+ for (im = i-1; im >= 0 && hull[im][0] == hull[i][0]; --im) ;
+ for (ip = i+1; ip < nhull && hull[ip][0] == hull[i][0]; ++ip) ;
if (im >= 0)
K1 = (hull[i][1] - hull[im][1]) / (hull[i][0] - hull[im][0]);
coordinates to a unit hypercube ... we do this simply by
wrapping cdirect() around cdirect_unscaled(). */
-double cdirect_uf(int n, const double *xu, double *grad, void *d_)
+double cdirect_uf(unsigned n, const double *xu, double *grad, void *d_)
{
cdirect_uf_data *d = (cdirect_uf_data *) d_;
double f;
- int i;
+ unsigned i;
for (i = 0; i < n; ++i)
d->x[i] = d->lb[i] + xu[i] * (d->ub[i] - d->lb[i]);
f = d->f(n, d->x, grad, d->f_data);
double *x;
const double *lb, *ub;
} cdirect_uf_data;
-extern double cdirect_uf(int n, const double *xu, double *grad, void *d_);
+extern double cdirect_uf(unsigned n, const double *xu, double *grad, void *d_);
#ifdef __cplusplus
} /* extern "C" */
COBYLA_MSG_NONE = 0, /* No messages */
COBYLA_MSG_EXIT = 1, /* Exit reasons */
COBYLA_MSG_ITER = 2, /* Rho and Sigma changes */
- COBYLA_MSG_INFO = 3, /* Informational messages */
+ COBYLA_MSG_INFO = 3 /* Informational messages */
} cobyla_message;
/*
} subspace_data;
/* wrapper around objective function for subspace optimization */
-static double subspace_func(int ns, const double *xs, double *grad, void *data)
+static double subspace_func(unsigned ns, const double *xs, double *grad, void *data)
{
subspace_data *d = (subspace_data *) data;
int i, is = d->is;
double *x = d->x;
(void) grad; /* should always be NULL here */
- for (i = is; i < is + ns; ++i) x[p[i]] = xs[i-is];
+ for (i = is; i < is + ((int) ns); ++i) x[p[i]] = xs[i-is];
return d->f(d->n, x, NULL, d->f_data);
}