[Scipy-svn] r4940 - trunk/scipy/interpolate

scipy-svn at scipy.org scipy-svn at scipy.org
Sun Nov 2 21:00:22 EST 2008


Author: paul.ivanov
Date: 2008-11-02 20:00:11 -0600 (Sun, 02 Nov 2008)
New Revision: 4940

Modified:
   trunk/scipy/interpolate/interpolate_wrapper.py
Log:
removes DOS ^M, also checking svn privs


Modified: trunk/scipy/interpolate/interpolate_wrapper.py
===================================================================
--- trunk/scipy/interpolate/interpolate_wrapper.py	2008-11-03 01:42:49 UTC (rev 4939)
+++ trunk/scipy/interpolate/interpolate_wrapper.py	2008-11-03 02:00:11 UTC (rev 4940)
@@ -1,138 +1,138 @@
-""" helper_funcs.py.
-    scavenged from enthought,interpolate
-"""
-
-import numpy as np
-import sys
-import _interpolate # C extension.  Does all the real work.
-
-def atleast_1d_and_contiguous(ary, dtype = np.float64):
-    return np.atleast_1d( np.ascontiguousarray(ary, dtype) )
-
-def nearest(x, y, new_x):
-    """ Rounds each new_x[i] to the closest value in x
-        and returns corresponding y.
-    """
-    shifted_x = np.concatenate(( np.array([x[0]-1]) , x[0:-1] ))
-    
-    midpoints_of_x = atleast_1d_and_contiguous( .5*(x + shifted_x) )
-    new_x = atleast_1d_and_contiguous(new_x)
-    
-    TINY = 1e-10
-    indices = np.searchsorted(midpoints_of_x, new_x+TINY)-1
-    indices = np.atleast_1d(np.clip(indices, 0, np.Inf).astype(np.int))
-    new_y = np.take(y, indices, axis=-1)
-    
-    return new_y
-    
-    
-
-def linear(x, y, new_x):
-    """ Linearly interpolates values in new_x based on the values in x and y
-
-        Parameters
-        ----------
-        x
-            1-D array
-        y
-            1-D or 2-D array
-        new_x
-            1-D array
-    """
-    x = atleast_1d_and_contiguous(x, np.float64)
-    y = atleast_1d_and_contiguous(y, np.float64)
-    new_x = atleast_1d_and_contiguous(new_x, np.float64)
-
-    assert len(y.shape) < 3, "function only works with 1D or 2D arrays"
-    if len(y.shape) == 2:
-        new_y = np.zeros((y.shape[0], len(new_x)), np.float64)
-        for i in range(len(new_y)): # for each row
-            _interpolate.linear_dddd(x, y[i], new_x, new_y[i])
-    else:
-        new_y = np.zeros(len(new_x), np.float64)
-        _interpolate.linear_dddd(x, y, new_x, new_y)
-
-    return new_y
-
-def logarithmic(x, y, new_x):
-    """ Linearly interpolates values in new_x based in the log space of y.
-
-        Parameters
-        ----------
-        x
-            1-D array
-        y
-            1-D or 2-D array
-        new_x
-            1-D array
-    """
-    x = atleast_1d_and_contiguous(x, np.float64)
-    y = atleast_1d_and_contiguous(y, np.float64)
-    new_x = atleast_1d_and_contiguous(new_x, np.float64)
-
-    assert len(y.shape) < 3, "function only works with 1D or 2D arrays"
-    if len(y.shape) == 2:
-        new_y = np.zeros((y.shape[0], len(new_x)), np.float64)
-        for i in range(len(new_y)):
-            _interpolate.loginterp_dddd(x, y[i], new_x, new_y[i])
-    else:
-        new_y = np.zeros(len(new_x), np.float64)
-        _interpolate.loginterp_dddd(x, y, new_x, new_y)
-
-    return new_y
-    
-def block_average_above(x, y, new_x):
-    """ Linearly interpolates values in new_x based on the values in x and y
-
-        Parameters
-        ----------
-        x
-            1-D array
-        y
-            1-D or 2-D array
-        new_x
-            1-D array
-    """
-    bad_index = None
-    x = atleast_1d_and_contiguous(x, np.float64)
-    y = atleast_1d_and_contiguous(y, np.float64)
-    new_x = atleast_1d_and_contiguous(new_x, np.float64)
-
-    assert len(y.shape) < 3, "function only works with 1D or 2D arrays"
-    if len(y.shape) == 2:
-        new_y = np.zeros((y.shape[0], len(new_x)), np.float64)
-        for i in range(len(new_y)):
-            bad_index = _interpolate.block_averave_above_dddd(x, y[i], 
-                                                            new_x, new_y[i])
-            if bad_index is not None:
-                break                                                
-    else:
-        new_y = np.zeros(len(new_x), np.float64)
-        bad_index = _interpolate.block_average_above_dddd(x, y, new_x, new_y)
-
-    if bad_index is not None:
-        msg = "block_average_above cannot extrapolate and new_x[%d]=%f "\
-              "is out of the x range (%f, %f)" % \
-              (bad_index, new_x[bad_index], x[0], x[-1])
-        raise ValueError, msg
-              
-    return new_y
-
-def block(x, y, new_x):
-    """ Essentially a step function.
-    
-        For each new_x[i], finds largest j such that
-        x[j] < new_x[j], and returns y[j].
-    """
-    # find index of values in x that preceed values in x
-    # This code is a little strange -- we really want a routine that
-    # returns the index of values where x[j] < x[index]
-    TINY = 1e-10
-    indices = np.searchsorted(x, new_x+TINY)-1
-
-    # If the value is at the front of the list, it'll have -1.
-    # In this case, we will use the first (0), element in the array.
-    # take requires the index array to be an Int
-    indices = np.atleast_1d(np.clip(indices, 0, np.Inf).astype(np.int))
-    new_y = np.take(y, indices, axis=-1)
+""" helper_funcs.py.
+    scavenged from enthought,interpolate
+"""
+
+import numpy as np
+import sys
+import _interpolate # C extension.  Does all the real work.
+
+def atleast_1d_and_contiguous(ary, dtype = np.float64):
+    return np.atleast_1d( np.ascontiguousarray(ary, dtype) )
+
+def nearest(x, y, new_x):
+    """ Rounds each new_x[i] to the closest value in x
+        and returns corresponding y.
+    """
+    shifted_x = np.concatenate(( np.array([x[0]-1]) , x[0:-1] ))
+    
+    midpoints_of_x = atleast_1d_and_contiguous( .5*(x + shifted_x) )
+    new_x = atleast_1d_and_contiguous(new_x)
+    
+    TINY = 1e-10
+    indices = np.searchsorted(midpoints_of_x, new_x+TINY)-1
+    indices = np.atleast_1d(np.clip(indices, 0, np.Inf).astype(np.int))
+    new_y = np.take(y, indices, axis=-1)
+    
     return new_y
+    
+    
+
+def linear(x, y, new_x):
+    """ Linearly interpolates values in new_x based on the values in x and y
+
+        Parameters
+        ----------
+        x
+            1-D array
+        y
+            1-D or 2-D array
+        new_x
+            1-D array
+    """
+    x = atleast_1d_and_contiguous(x, np.float64)
+    y = atleast_1d_and_contiguous(y, np.float64)
+    new_x = atleast_1d_and_contiguous(new_x, np.float64)
+
+    assert len(y.shape) < 3, "function only works with 1D or 2D arrays"
+    if len(y.shape) == 2:
+        new_y = np.zeros((y.shape[0], len(new_x)), np.float64)
+        for i in range(len(new_y)): # for each row
+            _interpolate.linear_dddd(x, y[i], new_x, new_y[i])
+    else:
+        new_y = np.zeros(len(new_x), np.float64)
+        _interpolate.linear_dddd(x, y, new_x, new_y)
+
+    return new_y
+
+def logarithmic(x, y, new_x):
+    """ Linearly interpolates values in new_x based in the log space of y.
+
+        Parameters
+        ----------
+        x
+            1-D array
+        y
+            1-D or 2-D array
+        new_x
+            1-D array
+    """
+    x = atleast_1d_and_contiguous(x, np.float64)
+    y = atleast_1d_and_contiguous(y, np.float64)
+    new_x = atleast_1d_and_contiguous(new_x, np.float64)
+
+    assert len(y.shape) < 3, "function only works with 1D or 2D arrays"
+    if len(y.shape) == 2:
+        new_y = np.zeros((y.shape[0], len(new_x)), np.float64)
+        for i in range(len(new_y)):
+            _interpolate.loginterp_dddd(x, y[i], new_x, new_y[i])
+    else:
+        new_y = np.zeros(len(new_x), np.float64)
+        _interpolate.loginterp_dddd(x, y, new_x, new_y)
+
+    return new_y
+    
+def block_average_above(x, y, new_x):
+    """ Linearly interpolates values in new_x based on the values in x and y
+
+        Parameters
+        ----------
+        x
+            1-D array
+        y
+            1-D or 2-D array
+        new_x
+            1-D array
+    """
+    bad_index = None
+    x = atleast_1d_and_contiguous(x, np.float64)
+    y = atleast_1d_and_contiguous(y, np.float64)
+    new_x = atleast_1d_and_contiguous(new_x, np.float64)
+
+    assert len(y.shape) < 3, "function only works with 1D or 2D arrays"
+    if len(y.shape) == 2:
+        new_y = np.zeros((y.shape[0], len(new_x)), np.float64)
+        for i in range(len(new_y)):
+            bad_index = _interpolate.block_averave_above_dddd(x, y[i], 
+                                                            new_x, new_y[i])
+            if bad_index is not None:
+                break                                                
+    else:
+        new_y = np.zeros(len(new_x), np.float64)
+        bad_index = _interpolate.block_average_above_dddd(x, y, new_x, new_y)
+
+    if bad_index is not None:
+        msg = "block_average_above cannot extrapolate and new_x[%d]=%f "\
+              "is out of the x range (%f, %f)" % \
+              (bad_index, new_x[bad_index], x[0], x[-1])
+        raise ValueError, msg
+              
+    return new_y
+
+def block(x, y, new_x):
+    """ Essentially a step function.
+    
+        For each new_x[i], finds largest j such that
+        x[j] < new_x[j], and returns y[j].
+    """
+    # find index of values in x that preceed values in x
+    # This code is a little strange -- we really want a routine that
+    # returns the index of values where x[j] < x[index]
+    TINY = 1e-10
+    indices = np.searchsorted(x, new_x+TINY)-1
+
+    # If the value is at the front of the list, it'll have -1.
+    # In this case, we will use the first (0), element in the array.
+    # take requires the index array to be an Int
+    indices = np.atleast_1d(np.clip(indices, 0, np.Inf).astype(np.int))
+    new_y = np.take(y, indices, axis=-1)
+    return new_y




More information about the Scipy-svn mailing list