## Example

The following code estimates the derivative of the function f(x) = x^{3/2} at x=2 and at x=0. The function f(x) is undefined for x<0 so the derivative at x=0 is computed using `gsl_diff_forward`.

    #include <stdio.h>
    #include <gsl/gsl_math.h>
    #include <gsl/gsl_diff.h>

    double f (double x, void * params)
    {
      return pow (x, 1.5);
    }

    int
    main (void)
    {
      gsl_function F;
      double result, abserr;

      F.function = &f;
      F.params = 0;

      printf("f(x) = x^(3/2)\n");

      gsl_diff_central (&F, 2.0, &result, &abserr);
      printf("x = 2.0\n");
      printf("f'(x) = %.10f +/- %.5f\n", result, abserr);
      printf("exact = %.10f\n\n", 1.5 * sqrt(2.0));

      gsl_diff_forward (&F, 0.0, &result, &abserr);
      printf("x = 0.0\n");
      printf("f'(x) = %.10f +/- %.5f\n", result, abserr);
      printf("exact = %.10f\n", 0.0);

      return 0;
    }

Here is the output of the program,

    $ ./demo
    f(x) = x^(3/2)

    x = 2.0
    f'(x) = 2.1213203435 +/- 0.01490
    exact = 2.1213203436

    x = 0.0
    f'(x) = 0.0012172897 +/- 0.05028
    exact = 0.0000000000