# [Scipy-svn] r2762 - trunk/Lib/interpolate

scipy-svn@scip... scipy-svn@scip...
Mon Feb 26 06:26:07 CST 2007

```Author: jtravs
Date: 2007-02-26 06:26:04 -0600 (Mon, 26 Feb 2007)
New Revision: 2762

Modified:
trunk/Lib/interpolate/fitpack.py
Log:
Submit fix for ticket #379

Modified: trunk/Lib/interpolate/fitpack.py
===================================================================
--- trunk/Lib/interpolate/fitpack.py	2007-02-26 03:21:38 UTC (rev 2761)
+++ trunk/Lib/interpolate/fitpack.py	2007-02-26 12:26:04 UTC (rev 2762)
@@ -252,7 +252,7 @@

_curfit_cache = {'t': array([],float), 'wrk': array([],float),
'iwrk':array([],int32)}
full_output=0,per=0,quiet=1):
"""Find the B-spline representation of 1-D curve.

@@ -292,7 +292,8 @@
weights represent the inverse of the standard-deviation of y, then a
good s value should be found in the range (m-sqrt(2*m),m+sqrt(2*m))
where m is the number of datapoints in x, y, and w.
-           default : s=m-sqrt(2*m)
+           default : s=m-sqrt(2*m) if weights are supplied.
+                     s = 0.0 (interpolating) if no weights are supplied.
t -- The knots needed for task=-1.  If given then task is automatically
set to -1.
full_output -- If non-zero, then return optional outputs.
@@ -335,8 +336,12 @@
_curfit_cache = {}
x,y=map(myasarray,[x,y])
m=len(x)
-    if w is None: w=ones(m,float)
-    else: w=myasarray(w)
+    if w is None:
+        w=ones(m,float)
+        if s is None: s = 0.0
+    else:
+        w=myasarray(w)
+        if s is None: s = m-sqrt(2*m)
if not len(w) == m: raise TypeError,' len(w)=%d is not equal to m=%d'%(len(w),m)
if (m != len(y)) or (m != len(w)):
raise TypeError, 'Lengths of the first three arguments (x,y,w) must be equal'
@@ -346,7 +351,6 @@
if xb is None: xb=x[0]
if xe is None: xe=x[-1]
if not (-1<=task<=1): raise TypeError, 'task must be either -1,0, or 1'
-    if s is None: s = m-sqrt(2*m)
if t is not None: