diff options
Diffstat (limited to 'quantum_efficiency.c')
-rw-r--r-- | quantum_efficiency.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/quantum_efficiency.c b/quantum_efficiency.c index 02aea06..f8ae972 100644 --- a/quantum_efficiency.c +++ b/quantum_efficiency.c @@ -2,12 +2,17 @@ #include <errno.h> #include <string.h> #include <stdlib.h> +#include <gsl/gsl_errno.h> +#include <gsl/gsl_spline.h> static int initialized = 0; static double *x, *y; static size_t size; +gsl_interp_accel *acc; +gsl_spline *spline; + static int init() { int i; @@ -94,6 +99,10 @@ static int init() fclose(f); + acc = gsl_interp_accel_alloc(); + spline = gsl_spline_alloc(gsl_interp_linear, size); + gsl_spline_init(spline, x, y, size); + initialized = 1; return 0; @@ -111,4 +120,6 @@ double get_quantum_efficiency(double wavelength) exit(1); } } + + return gsl_spline_eval(spline, wavelength, acc); } |