- printf("Starting guess x = [");
- for (i = 0; i < func.n; ++i) {
- if (center_start)
- x[i] = (ub[i] + lb[i]) * 0.5;
- else if (xinit_tol < 0) { /* random starting point near center of box */
- double dx = (ub[i] - lb[i]) * 0.25;
- double xm = 0.5 * (ub[i] + lb[i]);
- x[i] = nlopt_urand(xm - dx, xm + dx);
- }
- else {
- x[i] = nlopt_urand(-xinit_tol, xinit_tol)
- + (1 + nlopt_urand(-xinit_tol, xinit_tol)) * func.xmin[i];
- if (x[i] > ub[i]) x[i] = ub[i];
- else if (x[i] < lb[i]) x[i] = lb[i];
- }
- printf(" %g", x[i]);
- }
- printf("]\n");
- f0 = func.f(func.n, x, x + func.n, func.f_data);
- printf("Starting function value = %g\n", f0);
-
- if (testfuncs_verbose && func.has_gradient) {
- printf("checking gradient:\n");