summaryrefslogtreecommitdiff
path: root/gsl-1.9/doc/examples/cheb.c
diff options
context:
space:
mode:
Diffstat (limited to 'gsl-1.9/doc/examples/cheb.c')
-rw-r--r--gsl-1.9/doc/examples/cheb.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/gsl-1.9/doc/examples/cheb.c b/gsl-1.9/doc/examples/cheb.c
new file mode 100644
index 0000000..58a0c54
--- /dev/null
+++ b/gsl-1.9/doc/examples/cheb.c
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_chebyshev.h>
+
+double
+f (double x, void *p)
+{
+ if (x < 0.5)
+ return 0.25;
+ else
+ return 0.75;
+}
+
+int
+main (void)
+{
+ int i, n = 10000;
+
+ gsl_cheb_series *cs = gsl_cheb_alloc (40);
+
+ gsl_function F;
+
+ F.function = f;
+ F.params = 0;
+
+ gsl_cheb_init (cs, &F, 0.0, 1.0);
+
+ for (i = 0; i < n; i++)
+ {
+ double x = i / (double)n;
+ double r10 = gsl_cheb_eval_n (cs, 10, x);
+ double r40 = gsl_cheb_eval (cs, x);
+ printf ("%g %g %g %g\n",
+ x, GSL_FN_EVAL (&F, x), r10, r40);
+ }
+
+ gsl_cheb_free (cs);
+
+ return 0;
+}