diff options
Diffstat (limited to 'gsl-1.9/doc/examples/interp.c')
-rw-r--r-- | gsl-1.9/doc/examples/interp.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gsl-1.9/doc/examples/interp.c b/gsl-1.9/doc/examples/interp.c new file mode 100644 index 0000000..5c6e8fc --- /dev/null +++ b/gsl-1.9/doc/examples/interp.c @@ -0,0 +1,41 @@ +#include <stdlib.h> +#include <stdio.h> +#include <math.h> +#include <gsl/gsl_errno.h> +#include <gsl/gsl_spline.h> + +int +main (void) +{ + int i; + double xi, yi, x[10], y[10]; + + printf ("#m=0,S=2\n"); + + for (i = 0; i < 10; i++) + { + x[i] = i + 0.5 * sin (i); + y[i] = i + cos (i * i); + printf ("%g %g\n", x[i], y[i]); + } + + printf ("#m=1,S=0\n"); + + { + gsl_interp_accel *acc + = gsl_interp_accel_alloc (); + gsl_spline *spline + = gsl_spline_alloc (gsl_interp_cspline, 10); + + gsl_spline_init (spline, x, y, 10); + + for (xi = x[0]; xi < x[9]; xi += 0.01) + { + yi = gsl_spline_eval (spline, xi, acc); + printf ("%g %g\n", xi, yi); + } + gsl_spline_free (spline); + gsl_interp_accel_free (acc); + } + return 0; +} |