1 const size_t kirby2_N = 151;
2 const size_t kirby2_P = 5;
4 /* double kirby2_x0[5] = { 2, -0.1, 0.003, -0.001, 0.00001 }; */
6 double kirby2_x0[5] = { 1.5, -0.15, 0.0025, -0.0015, 0.00002 };
16 double kirby2_sumsq = 3.9050739624E+00;
18 double kirby2_sigma[5] = {
26 double kirby2_F1[151] = {
181 double kirby2_F0[151] = {
337 kirby2_f (const gsl_vector * x, void *params, gsl_vector * f)
342 for (i = 0; i < 5; i++)
344 b[i] = gsl_vector_get(x, i);
347 for (i = 0; i < 151; i++)
349 double x = kirby2_F0[i];
350 double y = ((b[0] + x* (b[1] + x * b[2]))
351 / (1 + x*(b[3] + x *b[4])));
352 gsl_vector_set (f, i, kirby2_F1[i] - y);
359 kirby2_df (const gsl_vector * x, void *params, gsl_matrix * df)
364 for (i = 0; i < 5; i++)
366 b[i] = gsl_vector_get(x, i);
369 for (i = 0; i < 151; i++)
371 double x = kirby2_F0[i];
372 double u = (b[0] + x*(b[1] + x*b[2]));
373 double v = (1 + x*(b[3] + x*b[4]));
374 gsl_matrix_set (df, i, 0, -1/v);
375 gsl_matrix_set (df, i, 1, -x/v);
376 gsl_matrix_set (df, i, 2, -x*x/v);
377 gsl_matrix_set (df, i, 3, x*u/(v*v));
378 gsl_matrix_set (df, i, 4, x*x*u/(v*v));
385 kirby2_fdf (const gsl_vector * x, void *params,
386 gsl_vector * f, gsl_matrix * df)
388 kirby2_f (x, params, f);
389 kirby2_df (x, params, df);