00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifdef HAVE_CONFIG_H
00027 # include <config.h>
00028 #endif
00029
00030
00036
00039
00040
00041
00042
00043 #include <tests.h>
00044
00045 #include <xsh_error.h>
00046 #include <xsh_msg.h>
00047 #include <cpl.h>
00048
00049 #include <stdlib.h>
00050 #include <stdio.h>
00051 #include <math.h>
00052 #include <gsl/gsl_errno.h>
00053 #include <gsl/gsl_spline.h>
00054
00055
00056
00057
00058
00059 #define MODULE_ID "XSH_BSPLINE_INTERPOL"
00060
00061
00070 int
00071 main ( int argc, char **argv)
00072 {
00073 int i;
00074 double xi, yi, x[10], y[10];
00075 int ret=0;
00076
00077
00078 TESTS_INIT(MODULE_ID);
00079
00080
00081 printf ("#m=0,S=2\n");
00082
00083 for (i = 0; i < 10; i++)
00084 {
00085 x[i] = i + 0.5 * sin (i);
00086 y[i] = i + cos (i * i);
00087 printf ("%g %g\n", x[i], y[i]);
00088 }
00089
00090 printf ("#m=1,S=0\n");
00091
00092 {
00093 gsl_interp_accel *acc
00094 = gsl_interp_accel_alloc ();
00095 gsl_spline *spline
00096 = gsl_spline_alloc (gsl_interp_cspline, 10);
00097
00098 gsl_spline_init (spline, x, y, 10);
00099
00100 for (xi = x[0]; xi < x[9]; xi += 0.01)
00101 {
00102 yi = gsl_spline_eval (spline, xi, acc);
00103 printf ("%g %g\n", xi, yi);
00104 }
00105 gsl_spline_free (spline);
00106 gsl_interp_accel_free (acc);
00107 }
00108
00109
00110 if (cpl_error_get_code() != CPL_ERROR_NONE) {
00111 xsh_error_dump(CPL_MSG_ERROR);
00112 ret= 1;
00113 }
00114 TEST_END();
00115 return ret ;
00116
00117
00118 }
00119
00120