Index: trunk/Ohana/src/opihi/include/data.h
===================================================================
--- trunk/Ohana/src/opihi/include/data.h	(revision 31636)
+++ trunk/Ohana/src/opihi/include/data.h	(revision 34584)
@@ -84,6 +84,8 @@
 
 /* in spline.c */
-void spline_construct (float *x, float *y, int N, float *y2);
-float spline_apply (float *x, float *y, float *y2, int N, float X);
+void spline_construct_flt (float *x, float *y, int N, float *y2);
+float spline_apply_flt (float *x, float *y, float *y2, int N, float X);
+void spline_construct_dbl (opihi_flt *x, opihi_flt *y, int N, opihi_flt *y2);
+opihi_flt spline_apply_dbl (opihi_flt *x, opihi_flt *y, opihi_flt *y2, int N, opihi_flt X);
 
 /* in svdcmp.c */
@@ -168,4 +170,26 @@
 void FreeQueues (void);
 void FreeBooks (void);
+
+// the interpolating spline has valu
+typedef struct {
+  int Nknots;
+  opihi_flt *xk;
+  opihi_flt *yk;
+  opihi_flt *y2;
+  char *name;
+} Spline;
+
+/* in SplineOps.c */
+void InitSplines ();
+void FreeSplines ();
+void InitSpline (Spline *spline, char *name, int Nknots);
+void FreeSpline (Spline *spline);
+Spline *GetSpline (int where);
+Spline *FindSpline (char *name);
+Spline *CreateSpline (char *name, int Nknots);
+int DeleteSpline (Spline *spline);
+void ListSplines ();
+int SaveSpline (char *filename, char *name, int append);
+int LoadSpline (char *filename, char *name);
 
 /* hermitian functions */
