aboutsummaryrefslogtreecommitdiff
path: root/quantum_efficiency.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum_efficiency.c')
-rw-r--r--quantum_efficiency.c11
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);
}