Index: trunk/psLib/src/dataManip/psFunctions.c
===================================================================
--- trunk/psLib/src/dataManip/psFunctions.c	(revision 1982)
+++ trunk/psLib/src/dataManip/psFunctions.c	(revision 1985)
@@ -7,6 +7,6 @@
  *  polynomials.  It also contains a Gaussian functions.
  *
- *  @version $Revision: 1.50 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-06 21:30:53 $
+ *  @version $Revision: 1.51 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-06 22:27:06 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -2065,4 +2065,7 @@
  
 XXX: SDR is silent about data types.  PS_TYPE_F32 is implemented.
+ 
+XXX: The spline eval functions require input and output to be F32.  however
+     the spline fit functions require F32 and F64.
  *****************************************************************************/
 float psSpline1DEval(const psSpline1D *spline,
@@ -2090,4 +2093,6 @@
 }
 
+// XXX: The spline eval functions require input and output to be F32.
+// however the spline fit functions require F32 and F64.
 psVector *psSpline1DEvalVector(const psVector *x,
                                const psSpline1D *spline)
@@ -2097,6 +2102,15 @@
 
     tmpVector = psVectorAlloc(x->n, PS_TYPE_F32);
-    for (i=0;i<x->n;i++) {
-        tmpVector->data.F32[i] = psSpline1DEval(spline, x->data.F32[i]);
+    if (x->type.type == PS_TYPE_F32) {
+        for (i=0;i<x->n;i++) {
+            tmpVector->data.F32[i] = psSpline1DEval(spline, x->data.F32[i]);
+        }
+    } else if (x->type.type == PS_TYPE_F64) {
+        for (i=0;i<x->n;i++) {
+            tmpVector->data.F32[i] = psSpline1DEval(spline, (float) x->data.F64[i]);
+        }
+    } else {
+        psError(__func__, "Unknown data type.\n");
+        return(NULL);
     }
 
