[Scipy-svn] r7164 - in trunk: doc/source/tutorial doc/source/tutorial/examples scipy/cluster scipy/spatial scipy/stats

scipy-svn at scipy.org scipy-svn at scipy.org
Sun Feb 20 08:30:34 EST 2011


Author: rgommers
Date: 2011-02-20 07:30:33 -0600 (Sun, 20 Feb 2011)
New Revision: 7164

Modified:
   trunk/doc/source/tutorial/examples/1-1
   trunk/doc/source/tutorial/optimize.rst
   trunk/scipy/cluster/hierarchy.py
   trunk/scipy/cluster/vq.py
   trunk/scipy/spatial/ckdtree.c
   trunk/scipy/spatial/ckdtree.pyx
   trunk/scipy/stats/mstats_basic.py
   trunk/scipy/stats/stats.py
Log:
DOC: improve formatting of docs, eliminate old-style section headers.

Modified: trunk/doc/source/tutorial/examples/1-1
===================================================================
--- trunk/doc/source/tutorial/examples/1-1	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/doc/source/tutorial/examples/1-1	2011-02-20 13:30:33 UTC (rev 7164)
@@ -4,52 +4,52 @@
 
 Minimize a function using the downhill simplex algorithm.
 
-:Parameters:
+Parameters
+----------
+func : callable func(x,*args)
+    The objective function to be minimized.
+x0 : ndarray
+    Initial guess.
+args : tuple
+    Extra arguments passed to func, i.e. ``f(x,*args)``.
+callback : callable
+    Called after each iteration, as callback(xk), where xk is the
+    current parameter vector.
 
-  func : callable func(x,*args)
-      The objective function to be minimized.
-  x0 : ndarray
-      Initial guess.
-  args : tuple
-      Extra arguments passed to func, i.e. ``f(x,*args)``.
-  callback : callable
-      Called after each iteration, as callback(xk), where xk is the
-      current parameter vector.
+Returns
+-------
+xopt : ndarray
+    Parameter that minimizes function.
+fopt : float
+    Value of function at minimum: ``fopt = func(xopt)``.
+iter : int
+    Number of iterations performed.
+funcalls : int
+    Number of function calls made.
+warnflag : int
+    1 : Maximum number of function evaluations made.
+    2 : Maximum number of iterations reached.
+allvecs : list
+    Solution at each iteration.
 
-:Returns: (xopt, {fopt, iter, funcalls, warnflag})
+Other parameters
+----------------
+xtol : float
+    Relative error in xopt acceptable for convergence.
+ftol : number
+    Relative error in func(xopt) acceptable for convergence.
+maxiter : int
+    Maximum number of iterations to perform.
+maxfun : number
+    Maximum number of function evaluations to make.
+full_output : bool
+    Set to True if fopt and warnflag outputs are desired.
+disp : bool
+    Set to True to print convergence messages.
+retall : bool
+    Set to True to return list of solutions at each iteration.
 
-  xopt : ndarray
-      Parameter that minimizes function.
-  fopt : float
-      Value of function at minimum: ``fopt = func(xopt)``.
-  iter : int
-      Number of iterations performed.
-  funcalls : int
-      Number of function calls made.
-  warnflag : int
-      1 : Maximum number of function evaluations made.
-      2 : Maximum number of iterations reached.
-  allvecs : list
-      Solution at each iteration.
-
-*Other Parameters*:
-
-  xtol : float
-      Relative error in xopt acceptable for convergence.
-  ftol : number
-      Relative error in func(xopt) acceptable for convergence.
-  maxiter : int
-      Maximum number of iterations to perform.
-  maxfun : number
-      Maximum number of function evaluations to make.
-  full_output : bool
-      Set to True if fval and warnflag outputs are desired.
-  disp : bool
-      Set to True to print convergence messages.
-  retall : bool
-      Set to True to return list of solutions at each iteration.
-
-:Notes:
-
-    Uses a Nelder-Mead simplex algorithm to find the minimum of
-    function of one or more variables.
+Notes
+-----
+Uses a Nelder-Mead simplex algorithm to find the minimum of function of
+one or more variables.

Modified: trunk/doc/source/tutorial/optimize.rst
===================================================================
--- trunk/doc/source/tutorial/optimize.rst	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/doc/source/tutorial/optimize.rst	2011-02-20 13:30:33 UTC (rev 7164)
@@ -385,16 +385,21 @@
     from numpy import array, asfarray, finfo,ones, sqrt, zeros
 
 
-    def testfunc(d,*args):
+    def testfunc(d, *args):
         """
-        Arguments:
-        d     - A list of two elements, where d[0] represents x and
-                d[1] represents y in the following equation.
-        sign - A multiplier for f.  Since we want to optimize it, and the scipy
-               optimizers can only minimize functions, we need to multiply it by
-               -1 to achieve the desired solution
-        Returns:
-        2*x*y + 2*x - x**2 - 2*y**2
+        Parameters
+        ----------
+        d : list 
+            A list of two elements, where d[0] represents x and
+            d[1] represents y in the following equation.
+        sign : float
+            A multiplier for f.  Since we want to optimize it, and the scipy
+            optimizers can only minimize functions, we need to multiply it by
+            -1 to achieve the desired solution.
+        Returns
+        -------
+        res : float
+            The result, equal to ``2*x*y + 2*x - x**2 - 2*y**2``.
 
         """
         try:

Modified: trunk/scipy/cluster/hierarchy.py
===================================================================
--- trunk/scipy/cluster/hierarchy.py	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/scipy/cluster/hierarchy.py	2011-02-20 13:30:33 UTC (rev 7164)
@@ -216,17 +216,21 @@
     matrix ``y``. See ``linkage`` for more information on the return
     structure and algorithm.
 
-    :Parameters:
-        y : ndarray
-            The upper triangular of the distance matrix. The result of
-            ``pdist`` is returned in this form.
+    Parameters
+    ----------
+    y : ndarray
+        The upper triangular of the distance matrix. The result of
+        ``pdist`` is returned in this form.
 
-    :Returns:
-        Z : ndarray
-            The linkage matrix.
+    Returns
+    -------
+    Z : ndarray
+        The linkage matrix.
 
-    :SeeAlso:
-       - linkage: for advanced creation of hierarchical clusterings.
+    See Also
+    --------
+    linkage: for advanced creation of hierarchical clusterings.
+
     """
     return linkage(y, method='single', metric='euclidean')
 
@@ -236,16 +240,19 @@
     condensed distance matrix ``y``. See ``linkage`` for more
     information on the return structure and algorithm.
 
-    :Parameters:
-        y : ndarray
-            The upper triangular of the distance matrix. The result of
-            ``pdist`` is returned in this form.
+    Parameters
+    ----------
+    y : ndarray
+        The upper triangular of the distance matrix. The result of
+        ``pdist`` is returned in this form.
 
-    :Returns:
-        Z : ndarray
-            A linkage matrix containing the hierarchical clustering. See
-            the ``linkage`` function documentation for more information
-            on its structure.
+    Returns
+    -------
+    Z : ndarray
+        A linkage matrix containing the hierarchical clustering. See
+        the ``linkage`` function documentation for more information
+        on its structure.
+
     """
     return linkage(y, method='complete', metric='euclidean')
 
@@ -255,19 +262,23 @@
     ``y``. See ``linkage`` for more information on the return
     structure and algorithm.
 
-    :Parameters:
-        y : ndarray
-            The upper triangular of the distance matrix. The result of
-            ``pdist`` is returned in this form.
+    Parameters
+    ----------
+    y : ndarray
+        The upper triangular of the distance matrix. The result of
+        ``pdist`` is returned in this form.
 
-    :Returns:
-        Z : ndarray
-            A linkage matrix containing the hierarchical clustering. See
-            the ``linkage`` function documentation for more information
-            on its structure.
+    Returns
+    -------
+    Z : ndarray
+        A linkage matrix containing the hierarchical clustering. See
+        the ``linkage`` function documentation for more information
+        on its structure.
 
-    :SeeAlso:
-       - linkage: for advanced creation of hierarchical clusterings.
+    See Also
+    --------
+    linkage: for advanced creation of hierarchical clusterings.
+
     """
     return linkage(y, method='average', metric='euclidean')
 
@@ -277,19 +288,23 @@
     ``y``.  See ``linkage`` for more information on the return
     structure and algorithm.
 
-    :Parameters:
-        y : ndarray
-            The upper triangular of the distance matrix. The result of
-            ``pdist`` is returned in this form.
+    Parameters
+    ----------
+    y : ndarray
+        The upper triangular of the distance matrix. The result of
+        ``pdist`` is returned in this form.
 
-    :Returns:
-        Z : ndarray
-            A linkage matrix containing the hierarchical clustering. See
-            the ``linkage`` function documentation for more information
-            on its structure.
+    Returns
+    -------
+    Z : ndarray
+        A linkage matrix containing the hierarchical clustering. See
+        the ``linkage`` function documentation for more information
+        on its structure.
 
-    :SeeAlso:
-       - linkage: for advanced creation of hierarchical clusterings.
+    See Also
+    --------
+    linkage: for advanced creation of hierarchical clusterings.
+
     """
     return linkage(y, method='weighted', metric='euclidean')
 
@@ -312,23 +327,27 @@
        using Euclidean distance as the distance metric. See ``linkage``
        for more information on the return structure and algorithm.
 
-    :Parameters:
-        Q : ndarray
-            A condensed or redundant distance matrix. A condensed
-            distance matrix is a flat array containing the upper
-            triangular of the distance matrix. This is the form that
-            ``pdist`` returns. Alternatively, a collection of
-            m observation vectors in n dimensions may be passed as
-            a m by n array.
+    Parameters
+    ----------
+    Q : ndarray
+        A condensed or redundant distance matrix. A condensed
+        distance matrix is a flat array containing the upper
+        triangular of the distance matrix. This is the form that
+        ``pdist`` returns. Alternatively, a collection of
+        m observation vectors in n dimensions may be passed as
+        a m by n array.
 
-    :Returns:
-        Z : ndarray
-            A linkage matrix containing the hierarchical clustering. See
-            the ``linkage`` function documentation for more information
-            on its structure.
+    Returns
+    -------
+    Z : ndarray
+        A linkage matrix containing the hierarchical clustering. See
+        the ``linkage`` function documentation for more information
+        on its structure.
 
-    :SeeAlso:
-       - linkage: for advanced creation of hierarchical clusterings.
+    See Also
+    --------
+    linkage: for advanced creation of hierarchical clusterings.
+
     """
     return linkage(y, method='centroid', metric='euclidean')
 
@@ -351,21 +370,25 @@
        using Euclidean distance as the distance metric. See linkage
        for more information on the return structure and algorithm.
 
-    :Parameters:
-        Q : ndarray
-            A condensed or redundant distance matrix. A condensed
-            distance matrix is a flat array containing the upper
-            triangular of the distance matrix. This is the form that
-            ``pdist`` returns. Alternatively, a collection of
-            m observation vectors in n dimensions may be passed as
-            a m by n array.
+    Parameters
+    ----------
+    Q : ndarray
+        A condensed or redundant distance matrix. A condensed
+        distance matrix is a flat array containing the upper
+        triangular of the distance matrix. This is the form that
+        ``pdist`` returns. Alternatively, a collection of
+        m observation vectors in n dimensions may be passed as
+        a m by n array.
 
-    :Returns:
-       - Z : ndarray
-           The hierarchical clustering encoded as a linkage matrix.
+    Returns
+    -------
+   Z : ndarray
+       The hierarchical clustering encoded as a linkage matrix.
 
-    :SeeAlso:
-       - linkage: for advanced creation of hierarchical clusterings.
+   See Also
+   --------
+    linkage: for advanced creation of hierarchical clusterings.
+
     """
     return linkage(y, method='median', metric='euclidean')
 
@@ -387,21 +410,25 @@
        Euclidean distance as the distance metric. See linkage for more
        information on the return structure and algorithm.
 
-    :Parameters:
-        Q : ndarray
-            A condensed or redundant distance matrix. A condensed
-            distance matrix is a flat array containing the upper
-            triangular of the distance matrix. This is the form that
-            ``pdist`` returns. Alternatively, a collection of
-            m observation vectors in n dimensions may be passed as
-            a m by n array.
+    Parameters
+    ----------
+    Q : ndarray
+        A condensed or redundant distance matrix. A condensed
+        distance matrix is a flat array containing the upper
+        triangular of the distance matrix. This is the form that
+        ``pdist`` returns. Alternatively, a collection of
+        m observation vectors in n dimensions may be passed as
+        a m by n array.
 
-    :Returns:
-       - Z : ndarray
-           The hierarchical clustering encoded as a linkage matrix.
+    Returns
+    -------
+    Z : ndarray
+        The hierarchical clustering encoded as a linkage matrix.
 
-    :SeeAlso:
-       - linkage: for advanced creation of hierarchical clusterings.
+    See Also
+    --------
+    linkage: for advanced creation of hierarchical clusterings.
+
     """
     return linkage(y, method='ward', metric='euclidean')
 
@@ -532,26 +559,27 @@
      implementation may chose a different minimum than the MATLAB(TM)
      version.
 
-     :Parameters:
-        - y : ndarray
-            A condensed or redundant distance matrix. A condensed
-            distance matrix is a flat array containing the upper
-            triangular of the distance matrix. This is the form that
-            ``pdist`` returns. Alternatively, a collection of
-            :math:`m` observation vectors in n dimensions may be passed as
-            an :math:`m` by :math:`n` array.
-        - method : string
-            The linkage algorithm to use. See the ``Linkage Methods``
-            section below for full descriptions.
-        - metric : string
-            The distance metric to use. See the ``distance.pdist``
-            function for a list of valid distance metrics.
+     Parameters
+     ----------
+     y : ndarray
+         A condensed or redundant distance matrix. A condensed
+         distance matrix is a flat array containing the upper
+         triangular of the distance matrix. This is the form that
+         ``pdist`` returns. Alternatively, a collection of
+         :math:`m` observation vectors in n dimensions may be passed as
+         an :math:`m` by :math:`n` array.
+     method : str
+         The linkage algorithm to use. See the ``Linkage Methods``
+         section below for full descriptions.
+     metric : str
+         The distance metric to use. See the ``distance.pdist``
+         function for a list of valid distance metrics.
 
-    :Returns:
+    Returns
+    -------
+    Z : ndarray
+        The hierarchical clustering encoded as a linkage matrix.
 
-        - Z : ndarray
-            The hierarchical clustering encoded as a linkage matrix.
-
     """
     if not isinstance(method, str):
         raise TypeError("Argument 'method' must be a string.")
@@ -599,9 +627,10 @@
     The to_tree function converts a matrix returned by the linkage
     function into an easy-to-use tree representation.
 
-    :SeeAlso:
+    See Also
+    --------
+    to_tree: for converting a linkage matrix ``Z`` into a tree object.
 
-       - to_tree: for converting a linkage matrix ``Z`` into a tree object.
     """
 
     def __init__(self, id, left=None, right=None, dist=0, count=1):
@@ -624,18 +653,18 @@
             self.count = left.count + right.count
 
     def get_id(self):
-        r"""
+        """
         The identifier of the target node. For :math:`0 \leq i < n`,
         :math:`i` corresponds to original observation
         :math:`i`. For :math:`n \leq i` < :math:`2n-1`,
         :math:`i` corresponds to non-singleton cluster formed at
         iteration :math:`i-n`.
 
-        :Returns:
+        Returns
+        -------
+        id : int
+            The identifier of the target node.
 
-           id : int
-                The identifier of the target node.
-
         """
         return self.id
 
@@ -645,10 +674,11 @@
         the cluster node nd. If the target node is a leaf, 1 is
         returned.
 
-        :Returns:
+        Returns
+        -------
+        c : int
+            The number of leaf nodes below the target node.
 
-           c : int
-               The number of leaf nodes below the target node.
         """
         return self.count
 
@@ -657,9 +687,11 @@
         Returns a reference to the left child tree object. If the node
         is a leaf, None is returned.
 
-        :Returns:
-           left : ClusterNode
-                  The left child of the target node.
+        Returns
+        -------
+        left : ClusterNode
+            The left child of the target node.
+
         """
         return self.left
 
@@ -668,9 +700,10 @@
         Returns a reference to the right child tree object. If the node
         is a leaf, None is returned.
 
-        :Returns:
-           right : ClusterNode
-                   The left child of the target node.
+        Returns
+        -------
+        right : ClusterNode
+            The left child of the target node.
         """
         return self.right
 
@@ -678,9 +711,10 @@
         """
         Returns True iff the target node is a leaf.
 
-        :Returns:
-           leafness : bool
-                      True if the target node is a leaf node.
+        Returns
+        -------
+        leafness : bool
+            True if the target node is a leaf node.
         """
         return self.left is None
 
@@ -698,18 +732,20 @@
         returns a list of the node ids corresponding to the leaf nodes
         of the tree as they appear from left to right.
 
-        :Parameters:
+        Parameters
+        ----------
+        func : function
+            Applied to each leaf ClusterNode object in the pre-order
+            traversal. Given the i'th leaf node in the pre-order
+            traversal ``n[i]``, the result of func(n[i]) is stored in
+            L[i]. If not provided, the index of the original observation
+            to which the node corresponds is used.
 
-           - func : function
-             Applied to each leaf ClusterNode object in the pre-order
-             traversal. Given the i'th leaf node in the pre-order
-             traversal ``n[i]``, the result of func(n[i]) is stored in
-             L[i]. If not provided, the index of the original observation
-             to which the node corresponds is used.
+        Returns
+        -------
+        L : list
+            The pre-order traversal.
 
-        :Returns:
-           - L : list
-             The pre-order traversal.
         """
 
         # Do a preorder traversal, caching the result. To avoid having to do
@@ -763,25 +799,26 @@
     user. ClusterNodes are not used as input to any of the functions in this
     library.
 
-    :Parameters:
+    Parameters
+    ----------
+    Z : ndarray
+        The linkage matrix in proper form (see the ``linkage``
+        function documentation).
 
-       - Z : ndarray
-         The linkage matrix in proper form (see the ``linkage``
-         function documentation).
+    rd : bool, optional
+        When ``False``, a reference to the root ClusterNode object is
+        returned.  Otherwise, a tuple (r,d) is returned. ``r`` is a
+        reference to the root node while ``d`` is a dictionary
+        mapping cluster ids to ClusterNode references. If a cluster id is
+        less than n, then it corresponds to a singleton cluster
+        (leaf node). See ``linkage`` for more information on the
+        assignment of cluster ids to clusters.
 
-       - r : bool
-         When ``False``, a reference to the root ClusterNode object is
-         returned.  Otherwise, a tuple (r,d) is returned. ``r`` is a
-         reference to the root node while ``d`` is a dictionary
-         mapping cluster ids to ClusterNode references. If a cluster id is
-         less than n, then it corresponds to a singleton cluster
-         (leaf node). See ``linkage`` for more information on the
-         assignment of cluster ids to clusters.
+    Returns
+    -------
+    L : list
+        The pre-order traversal.
 
-    :Returns:
-        - L : list
-          The pre-order traversal.
-
     """
 
     Z = np.asarray(Z, order='c')
@@ -845,27 +882,32 @@
     ``i`` and ``j`` is simply the distance between
     clusters ``s`` and ``t``.
 
-    :Parameters:
-       - Z : ndarray
-         The hierarchical clustering encoded as an array
-         (see ``linkage`` function).
+    Parameters
+    ----------
+    Z : ndarray
+        The hierarchical clustering encoded as an array
+        (see ``linkage`` function).
 
-       - Y : ndarray (optional)
-         Calculates the cophenetic correlation coefficient ``c`` of a
-         hierarchical clustering defined by the linkage matrix ``Z``
-         of a set of :math:`n` observations in :math:`m`
-         dimensions. ``Y`` is the condensed distance matrix from which
-         ``Z`` was generated.
+    Y : ndarray (optional)
+        Calculates the cophenetic correlation coefficient ``c`` of a
+        hierarchical clustering defined by the linkage matrix ``Z``
+        of a set of :math:`n` observations in :math:`m`
+        dimensions. ``Y`` is the condensed distance matrix from which
+        ``Z`` was generated.
 
-    :Returns: (c, {d})
-       - c : ndarray
-         The cophentic correlation distance (if ``y`` is passed).
+    Returns
+    -------
+    res : tuple
+        A tuple (c, {d}):
 
-       - d : ndarray
-         The cophenetic distance matrix in condensed form. The
-         :math:`ij` th entry is the cophenetic distance between
-         original observations :math:`i` and :math:`j`.
+            - c : ndarray
+                  The cophentic correlation distance (if ``y`` is passed).
 
+             - d : ndarray
+                  The cophenetic distance matrix in condensed form. The
+                  :math:`ij` th entry is the cophenetic distance between
+                  original observations :math:`i` and :math:`j`.
+
     """
 
     Z = np.asarray(Z, order='c')
@@ -899,38 +941,38 @@
     return (c, zz)
 
 def inconsistent(Z, d=2):
-    r"""
+    """
     Calculates inconsistency statistics on a linkage.
 
     Note: This function behaves similarly to the MATLAB(TM)
     inconsistent function.
 
-    :Parameters:
-       - d : int
-           The number of links up to ``d`` levels below each
-           non-singleton cluster
+    Parameters
+    ----------
+    d : int
+        The number of links up to ``d`` levels below each
+        non-singleton cluster.
+    Z : ndarray
+        The :math:`(n-1)` by 4 matrix encoding the linkage
+        (hierarchical clustering).  See ``linkage`` documentation
+        for more information on its form.
 
-       - Z : ndarray
-           The :math:`(n-1)` by 4 matrix encoding the linkage
-           (hierarchical clustering).  See ``linkage`` documentation
-           for more information on its form.
+    Returns
+    -------
+    R : ndarray
+        A :math:`(n-1)` by 5 matrix where the ``i``'th row
+        contains the link statistics for the non-singleton cluster
+        ``i``. The link statistics are computed over the link
+        heights for links :math:`d` levels below the cluster
+        ``i``. ``R[i,0]`` and ``R[i,1]`` are the mean and standard
+        deviation of the link heights, respectively; ``R[i,2]`` is
+        the number of links included in the calculation; and
+        ``R[i,3]`` is the inconsistency coefficient,
 
+        .. math::
 
-    :Returns:
-       - R : ndarray
-           A :math:`(n-1)` by 5 matrix where the ``i``'th row
-           contains the link statistics for the non-singleton cluster
-           ``i``. The link statistics are computed over the link
-           heights for links :math:`d` levels below the cluster
-           ``i``. ``R[i,0]`` and ``R[i,1]`` are the mean and standard
-           deviation of the link heights, respectively; ``R[i,2]`` is
-           the number of links included in the calculation; and
-           ``R[i,3]`` is the inconsistency coefficient,
+            \frac{\mathtt{Z[i,2]}-\mathtt{R[i,0]}} {R[i,1]}.
 
-           .. math::
-
-               \frac{\mathtt{Z[i,2]}-\mathtt{R[i,0]}}
-                    {R[i,1]}.
     """
     Z = np.asarray(Z, order='c')
 
@@ -967,15 +1009,16 @@
     This function is useful when loading in linkages from legacy data
     files generated by MATLAB.
 
-    :Arguments:
+    Parameters
+    ----------
+    Z : ndarray
+        A linkage matrix generated by MATLAB(TM).
 
-       - Z : ndarray
-           A linkage matrix generated by MATLAB(TM)
+    Returns
+    -------
+    ZS : ndarray
+        A linkage matrix compatible with this library.
 
-    :Returns:
-
-       - ZS : ndarray
-           A linkage matrix compatible with this library.
     """
     Z = np.asarray(Z, dtype=np.double, order='c')
     Zs = Z.shape
@@ -1006,14 +1049,17 @@
     matrix has the last column removed and the cluster indices are
     converted to ``1..N`` indexing.
 
-    :Arguments:
-       - Z : ndarray
-           A linkage matrix generated by this library.
+    Parameters
+    ----------
+    Z : ndarray
+        A linkage matrix generated by this library.
 
-    :Returns:
-       - ZM : ndarray
-           A linkage matrix compatible with MATLAB(TM)'s hierarchical
-           clustering functions.
+    Returns
+    -------
+    ZM : ndarray
+        A linkage matrix compatible with MATLAB(TM)'s hierarchical
+        clustering functions.
+
     """
     Z = np.asarray(Z, order='c', dtype=np.double)
     Zs = Z.shape
@@ -1033,13 +1079,16 @@
     joined, the distance between them is no less than the distance
     between any previously joined clusters.
 
-    :Arguments:
-        - Z : ndarray
-          The linkage matrix to check for monotonicity.
+    Parameters
+    ----------
+    Z : ndarray
+        The linkage matrix to check for monotonicity.
 
-    :Returns:
-        - b : bool
-          A boolean indicating whether the linkage is monotonic.
+    Returns
+    -------
+    b : bool
+        A boolean indicating whether the linkage is monotonic.
+
     """
     Z = np.asarray(Z, order='c')
     is_valid_linkage(Z, throw=True, name='Z')
@@ -1048,32 +1097,31 @@
     return (Z[1:,2]>=Z[:-1,2]).all()
 
 def is_valid_im(R, warning=False, throw=False, name=None):
-    """
+    """Returns True if the inconsistency matrix passed is valid.
 
-    Returns True if the inconsistency matrix passed is valid. It must
-    be a :math:`n` by 4 numpy array of doubles. The standard
+    It must be a :math:`n` by 4 numpy array of doubles. The standard
     deviations ``R[:,1]`` must be nonnegative. The link counts
     ``R[:,2]`` must be positive and no greater than :math:`n-1`.
 
-    :Arguments:
-         - R : ndarray
-           The inconsistency matrix to check for validity.
+    Parameters
+    ----------
+    R : ndarray
+        The inconsistency matrix to check for validity.
+    warning : bool, optional
+         When ``True``, issues a Python warning if the linkage
+         matrix passed is invalid.
+    throw : bool, optional
+         When ``True``, throws a Python exception if the linkage
+         matrix passed is invalid.
+    name : str, optional
+         This string refers to the variable name of the invalid
+         linkage matrix.
 
-         - warning : bool
-           When ``True``, issues a Python warning if the linkage
-           matrix passed is invalid.
+    Returns
+    -------
+    b : bool
+        True if the inconsistency matrix is valid.
 
-         - throw : bool
-           When ``True``, throws a Python exception if the linkage
-           matrix passed is invalid.
-
-         - name : string
-           This string refers to the variable name of the invalid
-           linkage matrix.
-
-    :Returns:
-         - b : bool
-           True iff the inconsistency matrix is valid.
     """
     R = np.asarray(R, order='c')
     valid = True
@@ -1127,7 +1175,7 @@
     return valid
 
 def is_valid_linkage(Z, warning=False, throw=False, name=None):
-    r"""
+    """
     Checks the validity of a linkage matrix. A linkage matrix is valid
     if it is a two dimensional nd-array (type double) with :math:`n`
     rows and 4 columns.  The first two columns must contain indices
@@ -1137,23 +1185,24 @@
     (i.e. a cluster cannot join another cluster unless the cluster
     being joined has been generated.)
 
-    :Arguments:
-
-         - warning : bool
-           When ``True``, issues a Python warning if the linkage
-           matrix passed is invalid.
-
-         - throw : bool
-           When ``True``, throws a Python exception if the linkage
-           matrix passed is invalid.
-
-         - name : string
+    Parameters
+    ----------
+    Z : array_like
+        Linkage matrix.
+    warning : bool, optional
+        When ``True``, issues a Python warning if the linkage
+        matrix passed is invalid.
+    throw : bool, optional
+        When ``True``, throws a Python exception if the linkage
+        matrix passed is invalid.
+    name : str, optional
            This string refers to the variable name of the invalid
            linkage matrix.
 
-    :Returns:
-         - b : bool
-            True iff the inconsistency matrix is valid.
+    Returns
+    -------
+    b : bool
+        True iff the inconsistency matrix is valid.
 
     """
     Z = np.asarray(Z, order='c')
@@ -1253,13 +1302,16 @@
     Returns the number of original observations of the linkage matrix
     passed.
 
-    :Arguments:
-        - Z : ndarray
-            The linkage matrix on which to perform the operation.
+    Parameters
+    ----------
+    Z : ndarray
+        The linkage matrix on which to perform the operation.
 
-    :Returns:
-        - n : int
-            The number of original observations in the linkage.
+    Returns
+    -------
+    n : int
+        The number of original observations in the linkage.
+
     """
     Z = np.asarray(Z, order='c')
     is_valid_linkage(Z, throw=True, name='Z')
@@ -1277,17 +1329,19 @@
     extensive use of linkage and distance matrices that must
     correspond to the same set of original observations.
 
-    :Arguments:
-        - Z : ndarray
-            The linkage matrix to check for correspondance.
+    Parameters
+    ----------
+    Z : ndarray
+        The linkage matrix to check for correspondance.
+    Y : ndarray
+        The condensed distance matrix to check for correspondance.
 
-        - Y : ndarray
-            The condensed distance matrix to check for correspondance.
+    Returns
+    -------
+    b : bool
+        A boolean indicating whether the linkage matrix and distance
+        matrix could possibly correspond to one another.
 
-    :Returns:
-        - b : bool
-            A boolean indicating whether the linkage matrix and distance
-            matrix could possibly correspond to one another.
     """
     is_valid_linkage(Z, throw=True)
     distance.is_valid_y(Y, throw=True)
@@ -1483,14 +1537,17 @@
     vector index) as they appear in the tree from left to right. Z is
     a linkage matrix.
 
-    :Arguments:
-        - Z : ndarray
-            The hierarchical clustering encoded as a matrix. See
-            ``linkage`` for more information.
+    Parameters
+    ----------
+    Z : ndarray
+        The hierarchical clustering encoded as a matrix. See
+        ``linkage`` for more information.
 
-    :Returns:
-        - L : ndarray
-            The list of leaf node ids.
+    Returns
+    -------
+    L : ndarray
+        The list of leaf node ids.
+
     """
     Z = np.asarray(Z, order='c')
     is_valid_linkage(Z, throw=True, name='Z')
@@ -1712,8 +1769,9 @@
     Changes the list of matplotlib color codes to use when coloring
     links with the dendrogram color_threshold feature.
 
-    :Arguments:
-        - palette : A list of matplotlib color codes. The order of
+    Parameters
+    ----------
+    palette : A list of matplotlib color codes. The order of
         the color codes is the order in which the colors are cycled
         through when color thresholding in the dendrogram.
 
@@ -1737,7 +1795,7 @@
                leaf_font_size=None, leaf_rotation=None, leaf_label_func=None,
                no_leaves=False, show_contracted=False,
                link_color_func=None):
-    r"""
+    """
     Plots the hiearchical clustering defined by the linkage Z as a
     dendrogram. The dendrogram illustrates how each cluster is
     composed by drawing a U-shaped link between a non-singleton
@@ -1747,14 +1805,15 @@
     children clusters. It is expected that the distances in Z[:,2] be
     monotonic, otherwise crossings appear in the dendrogram.
 
-    :Arguments:
-
-      - Z : ndarray
+    Parameters
+    ----------
+    Z : ndarray
         The linkage matrix encoding the hierarchical clustering to
         render as a dendrogram. See the ``linkage`` function for more
         information on the format of ``Z``.
-
-      - truncate_mode : string
+    p : int, optional
+        The ``p`` parameter for ``truncate_mode``.
+    truncate_mode : str, optional
         The dendrogram can be hard to read when the original
         observation matrix from which the linkage is derived is
         large. Truncation is used to condense the dendrogram. There
@@ -1773,162 +1832,146 @@
            * 'level'/'mtica': no more than ``p`` levels of the
            dendrogram tree are displayed. This corresponds to
            Mathematica(TM) behavior.
+    color_threshold : double, optional
+        For brevity, let :math:`t` be the ``color_threshold``.
+        Colors all the descendent links below a cluster node
+        :math:`k` the same color if :math:`k` is the first node below
+        the cut threshold :math:`t`. All links connecting nodes with
+        distances greater than or equal to the threshold are colored
+        blue. If :math:`t` is less than or equal to zero, all nodes
+        are colored blue. If ``color_threshold`` is ``None`` or
+        'default', corresponding with MATLAB(TM) behavior, the
+        threshold is set to ``0.7*max(Z[:,2])``.
+    get_leaves : bool, optional
+        Includes a list ``R['leaves']=H`` in the result
+        dictionary. For each :math:`i`, ``H[i] == j``, cluster node
+        :math:`j` appears in the :math:`i` th position in the
+        left-to-right traversal of the leaves, where :math:`j < 2n-1`
+        and :math:`i < n`.
+    orientation : str, optional
+        The direction to plot the dendrogram, which can be any
+        of the following strings
 
-       - p : int
-         The ``p`` parameter for ``truncate_mode``.
-`
-       - color_threshold : double
-         For brevity, let :math:`t` be the ``color_threshold``.
-         Colors all the descendent links below a cluster node
-         :math:`k` the same color if :math:`k` is the first node below
-         the cut threshold :math:`t`. All links connecting nodes with
-         distances greater than or equal to the threshold are colored
-         blue. If :math:`t` is less than or equal to zero, all nodes
-         are colored blue. If ``color_threshold`` is ``None`` or
-         'default', corresponding with MATLAB(TM) behavior, the
-         threshold is set to ``0.7*max(Z[:,2])``.
+          * 'top': plots the root at the top, and plot descendent
+          links going downwards. (default).
 
-       - get_leaves : bool
-         Includes a list ``R['leaves']=H`` in the result
-         dictionary. For each :math:`i`, ``H[i] == j``, cluster node
-         :math:`j` appears in the :math:`i` th position in the
-         left-to-right traversal of the leaves, where :math:`j < 2n-1`
-         and :math:`i < n`.
+          * 'bottom': plots the root at the bottom, and plot descendent
+          links going upwards.
 
-       - orientation : string
-         The direction to plot the dendrogram, which can be any
-         of the following strings
+          * 'left': plots the root at the left, and plot descendent
+          links going right.
 
-           * 'top': plots the root at the top, and plot descendent
-           links going downwards. (default).
-
-           * 'bottom': plots the root at the bottom, and plot descendent
-           links going upwards.
-
-           * 'left': plots the root at the left, and plot descendent
-           links going right.
-
-           * 'right': plots the root at the right, and plot descendent
+          * 'right': plots the root at the right, and plot descendent
            links going left.
 
-       - labels : ndarray
-         By default ``labels`` is ``None`` so the index of the
-         original observation is used to label the leaf nodes.
+    labels : ndarray, optional
+        By default ``labels`` is ``None`` so the index of the
+        original observation is used to label the leaf nodes.
+        Otherwise, this is an :math:`n` -sized list (or tuple). The
+        ``labels[i]`` value is the text to put under the :math:`i` th
+        leaf node only if it corresponds to an original observation
+        and not a non-singleton cluster.
+    count_sort : str or bool, optional
+        For each node n, the order (visually, from left-to-right) n's
+        two descendent links are plotted is determined by this
+        parameter, which can be any of the following values:
 
-         Otherwise, this is an :math:`n` -sized list (or tuple). The
-         ``labels[i]`` value is the text to put under the :math:`i` th
-         leaf node only if it corresponds to an original observation
-         and not a non-singleton cluster.
+           * False: nothing is done.
 
-       - count_sort : string/bool
-         For each node n, the order (visually, from left-to-right) n's
-         two descendent links are plotted is determined by this
-         parameter, which can be any of the following values:
+           * 'ascending'/True: the child with the minimum number of
+           original objects in its cluster is plotted first.
 
-            * False: nothing is done.
+           * 'descendent': the child with the maximum number of
+           original objects in its cluster is plotted first.
 
-            * 'ascending'/True: the child with the minimum number of
-            original objects in its cluster is plotted first.
+        Note ``distance_sort`` and ``count_sort`` cannot both be
+        ``True``.
 
-            * 'descendent': the child with the maximum number of
-            original objects in its cluster is plotted first.
+    distance_sort : str or bool, optional
+        For each node n, the order (visually, from left-to-right) n's
+        two descendent links are plotted is determined by this
+        parameter, which can be any of the following values:
 
-         Note ``distance_sort`` and ``count_sort`` cannot both be
-         ``True``.
+           * False: nothing is done.
 
-       - distance_sort : string/bool
-         For each node n, the order (visually, from left-to-right) n's
-         two descendent links are plotted is determined by this
-         parameter, which can be any of the following values:
+           * 'ascending'/True: the child with the minimum distance
+           between its direct descendents is plotted first.
 
-            * False: nothing is done.
+           * 'descending': the child with the maximum distance
+           between its direct descendents is plotted first.
 
-            * 'ascending'/True: the child with the minimum distance
-            between its direct descendents is plotted first.
+        Note ``distance_sort`` and ``count_sort`` cannot both be
+        ``True``.
 
-            * 'descending': the child with the maximum distance
-            between its direct descendents is plotted first.
-
-         Note ``distance_sort`` and ``count_sort`` cannot both be
-         ``True``.
-
-       - show_leaf_counts : bool
-
+    show_leaf_counts : bool, optional
          When ``True``, leaf nodes representing :math:`k>1` original
          observation are labeled with the number of observations they
          contain in parentheses.
+    no_plot : bool, optional
+        When ``True``, the final rendering is not performed. This is
+        useful if only the data structures computed for the rendering
+        are needed or if matplotlib is not available.
+    no_labels : bool, optional
+        When ``True``, no labels appear next to the leaf nodes in the
+        rendering of the dendrogram.
+    leaf_label_rotation : double, optional
+        Specifies the angle (in degrees) to rotate the leaf
+        labels. When unspecified, the rotation based on the number of
+        nodes in the dendrogram. (Default=0)
+    leaf_font_size : int, optional
+        Specifies the font size (in points) of the leaf labels. When
+        unspecified, the size based on the number of nodes in the
+        dendrogram.
+    leaf_label_func : lambda or function, optional
+        When leaf_label_func is a callable function, for each
+        leaf with cluster index :math:`k < 2n-1`. The function
+        is expected to return a string with the label for the
+        leaf.
 
-       - no_plot : bool
-         When ``True``, the final rendering is not performed. This is
-         useful if only the data structures computed for the rendering
-         are needed or if matplotlib is not available.
+        Indices :math:`k < n` correspond to original observations
+        while indices :math:`k \geq n` correspond to non-singleton
+        clusters.
 
-       - no_labels : bool
-         When ``True``, no labels appear next to the leaf nodes in the
-         rendering of the dendrogram.
+        For example, to label singletons with their node id and
+        non-singletons with their id, count, and inconsistency
+        coefficient, simply do::
 
-       - leaf_label_rotation : double
+          # First define the leaf label function.
+          def llf(id):
+              if id < n:
+                  return str(id)
+              else:
+                  return '[%d %d %1.2f]' % (id, count, R[n-id,3])
 
-         Specifies the angle (in degrees) to rotate the leaf
-         labels. When unspecified, the rotation based on the number of
-         nodes in the dendrogram. (Default=0)
+          # The text for the leaf nodes is going to be big so force
+          # a rotation of 90 degrees.
+          dendrogram(Z, leaf_label_func=llf, leaf_rotation=90)
 
-       - leaf_font_size : int
-         Specifies the font size (in points) of the leaf labels. When
-         unspecified, the size based on the number of nodes in the
-         dendrogram.
+    show_contracted : bool
+        When ``True`` the heights of non-singleton nodes contracted
+        into a leaf node are plotted as crosses along the link
+        connecting that leaf node.  This really is only useful when
+        truncation is used (see ``truncate_mode`` parameter).
+    link_color_func : lambda/function
+        When a callable function,
+        link_color_function is called with each non-singleton id
+        corresponding to each U-shaped link it will paint. The
+        function is expected to return the color to paint the link,
+        encoded as a matplotlib color string code.
 
-       - leaf_label_func : lambda or function
+        For example::
 
-         When leaf_label_func is a callable function, for each
-         leaf with cluster index :math:`k < 2n-1`. The function
-         is expected to return a string with the label for the
-         leaf.
+            dendrogram(Z, link_color_func=lambda k: colors[k])
 
-         Indices :math:`k < n` correspond to original observations
-         while indices :math:`k \geq n` correspond to non-singleton
-         clusters.
+        colors the direct links below each untruncated non-singleton node
+        ``k`` using ``colors[k]``.
 
-         For example, to label singletons with their node id and
-         non-singletons with their id, count, and inconsistency
-         coefficient, simply do::
+    Returns
+    -------
+    R : dict
+        A dictionary of data structures computed to render the
+        dendrogram. Its has the following keys:
 
-           # First define the leaf label function.
-           def llf(id):
-               if id < n:
-                   return str(id)
-               else:
-                   return '[%d %d %1.2f]' % (id, count, R[n-id,3])
-
-           # The text for the leaf nodes is going to be big so force
-           # a rotation of 90 degrees.
-           dendrogram(Z, leaf_label_func=llf, leaf_rotation=90)
-
-       - show_contracted : bool
-         When ``True`` the heights of non-singleton nodes contracted
-         into a leaf node are plotted as crosses along the link
-         connecting that leaf node.  This really is only useful when
-         truncation is used (see ``truncate_mode`` parameter).
-
-       - link_color_func : lambda/function When a callable function,
-         link_color_function is called with each non-singleton id
-         corresponding to each U-shaped link it will paint. The
-         function is expected to return the color to paint the link,
-         encoded as a matplotlib color string code.
-
-         For example::
-
-           dendrogram(Z, link_color_func=lambda k: colors[k])
-
-         colors the direct links below each untruncated non-singleton node
-         ``k`` using ``colors[k]``.
-
-    :Returns:
-
-       - R : dict
-         A dictionary of data structures computed to render the
-         dendrogram. Its has the following keys:
-
            - 'icoords': a list of lists ``[I1, I2, ..., Ip]`` where
            ``Ik`` is a list of 4 independent variable coordinates
            corresponding to the line that represents the k'th link
@@ -1948,6 +1991,7 @@
            :math:`i` th leaf node corresponds to an original
            observation.  Otherwise, it corresponds to a non-singleton
            cluster.
+
     """
 
     # Features under consideration.
@@ -2110,7 +2154,9 @@
     i is non-singleton, otherwise the independent coordinate of the leaf
     node if i is a leaf node.
 
-    Returns a tuple (left, w, h, md)
+    Returns
+    -------
+    A tuple (left, w, h, md), where:
 
       * left is the independent variable coordinate of the center of the
         the U of the subtree
@@ -2319,25 +2365,24 @@
     return ( ((uiva + uivb) / 2), uwa+uwb, h, max_dist)
 
 def is_isomorphic(T1, T2):
-    r"""
+    """
 
       Determines if two different cluster assignments ``T1`` and
       ``T2`` are equivalent.
 
-      :Arguments:
-          - T1 : ndarray
-            An assignment of singleton cluster ids to flat cluster
-            ids.
+    Parameters
+    ----------
+    T1 : ndarray
+        An assignment of singleton cluster ids to flat cluster ids.
+    T2 : ndarray
+        An assignment of singleton cluster ids to flat cluster ids.
 
-          - T2 : ndarray
-            An assignment of singleton cluster ids to flat cluster
-            ids.
+    Returns
+    -------
+    b : bool
+        Whether the flat cluster assignments ``T1`` and ``T2`` are
+        equivalent.
 
-       :Returns:
-          - b : boolean
-            Whether the flat cluster assignments ``T1`` and ``T2`` are
-            equivalent.
-
     """
     T1 = np.asarray(T1, order='c')
     T2 = np.asarray(T2, order='c')
@@ -2367,24 +2412,27 @@
     return True
 
 def maxdists(Z):
-    r"""
+    """
     MD = maxdists(Z)
 
-      Returns the maximum distance between any cluster for each
-      non-singleton cluster.
+    Returns the maximum distance between any cluster for each
+    non-singleton cluster.
 
-    :Arguments:
-        - Z : ndarray
-            The hierarchical clustering encoded as a matrix. See
-            ``linkage`` for more information.
+    Parameters
+    ----------
+    Z : ndarray
+        The hierarchical clustering encoded as a matrix. See
+        ``linkage`` for more information.
 
-    :Returns:
-        - MD : ndarray
-          A ``(n-1)`` sized numpy array of doubles; ``MD[i]`` represents
-          the maximum distance between any cluster (including
-          singletons) below and including the node with index i. More
-          specifically, ``MD[i] = Z[Q(i)-n, 2].max()`` where ``Q(i)`` is the
-          set of all node indices below and including node i.
+    Returns
+    -------
+    MD : ndarray
+        A ``(n-1)`` sized numpy array of doubles; ``MD[i]`` represents
+        the maximum distance between any cluster (including
+        singletons) below and including the node with index i. More
+        specifically, ``MD[i] = Z[Q(i)-n, 2].max()`` where ``Q(i)`` is the
+        set of all node indices below and including node i.
+
     """
     Z = np.asarray(Z, order='c', dtype=np.double)
     is_valid_linkage(Z, throw=True, name='Z')
@@ -2396,21 +2444,23 @@
     return MD
 
 def maxinconsts(Z, R):
-    r"""
+    """
     Returns the maximum inconsistency coefficient for each
     non-singleton cluster and its descendents.
 
-    :Arguments:
-        - Z : ndarray
-            The hierarchical clustering encoded as a matrix. See
-            ``linkage`` for more information.
+    Parameters
+    ----------
+    Z : ndarray
+        The hierarchical clustering encoded as a matrix. See
+        ``linkage`` for more information.
+    R : ndarray
+        The inconsistency matrix.
 
-        - R : ndarray
-            The inconsistency matrix.
+    Returns
+    -------
+    MI : ndarray
+        A monotonic ``(n-1)``-sized numpy array of doubles.
 
-    :Returns:
-        - MI : ndarray
-            A monotonic ``(n-1)``-sized numpy array of doubles.
     """
     Z = np.asarray(Z, order='c')
     R = np.asarray(R, order='c')
@@ -2426,29 +2476,29 @@
     return MI
 
 def maxRstat(Z, R, i):
-    r"""
+    """
     Returns the maximum statistic for each non-singleton cluster and
     its descendents.
 
-    :Arguments:
-        - Z : ndarray
-            The hierarchical clustering encoded as a matrix. See
-            ``linkage`` for more information.
+    Parameters
+    ----------
+    Z : ndarray
+        The hierarchical clustering encoded as a matrix. See
+        ``linkage`` for more information.
+    R : ndarray
+        The inconsistency matrix.
+    i : int
+        The column of ``R`` to use as the statistic.
 
-        - R : ndarray
-            The inconsistency matrix.
+    Returns
+    -------
+    MR : ndarray
+        Calculates the maximum statistic for the i'th column of the
+        inconsistency matrix ``R`` for each non-singleton cluster
+        node. ``MR[j]`` is the maximum over ``R[Q(j)-n, i]`` where
+        ``Q(j)`` the set of all node ids corresponding to nodes below
+        and including ``j``.
 
-        - i : int
-            The column of ``R`` to use as the statistic.
-
-    :Returns:
-
-       - MR : ndarray
-         Calculates the maximum statistic for the i'th column of the
-         inconsistency matrix ``R`` for each non-singleton cluster
-         node. ``MR[j]`` is the maximum over ``R[Q(j)-n, i]`` where
-         ``Q(j)`` the set of all node ids corresponding to nodes below
-         and including ``j``.
     """
     Z = np.asarray(Z, order='c')
     R = np.asarray(R, order='c')
@@ -2469,7 +2519,7 @@
     return MR
 
 def leaders(Z, T):
-    r"""
+    """
     (L, M) = leaders(Z, T):
 
     Returns the root nodes in a hierarchical clustering corresponding
@@ -2492,35 +2542,37 @@
         this condition is violated, ``T`` is not a valid cluster
         assignment vector, and an exception will be thrown.
 
+    Parameters
+    ----------
+    Z : ndarray
+        The hierarchical clustering encoded as a matrix. See
+        ``linkage`` for more information.
+    T : ndarray
+        The flat cluster assignment vector.
 
-    :Arguments:
-        - Z : ndarray
-            The hierarchical clustering encoded as a matrix. See
-            ``linkage`` for more information.
+    Returns
+    -------
+    A tuple (L, M) with
 
-        - T : ndarray
-            The flat cluster assignment vector.
+    L : ndarray
+        The leader linkage node id's stored as a k-element 1D
+        array where :math:`k` is the number of flat clusters found
+        in ``T``.
 
-    :Returns: (L, M)
+        ``L[j]=i`` is the linkage cluster node id that is the
+        leader of flat cluster with id M[j].  If ``i < n``, ``i``
+        corresponds to an original observation, otherwise it
+        corresponds to a non-singleton cluster.
 
-         - L : ndarray
-            The leader linkage node id's stored as a k-element 1D
-            array where :math:`k` is the number of flat clusters found
-            in ``T``.
+        For example: if ``L[3]=2`` and ``M[3]=8``, the flat cluster with
+        id 8's leader is linkage node 2.
 
-            ``L[j]=i`` is the linkage cluster node id that is the
-            leader of flat cluster with id M[j].  If ``i < n``, ``i``
-            corresponds to an original observation, otherwise it
-            corresponds to a non-singleton cluster.
+    M : ndarray
+        The leader linkage node id's stored as a k-element 1D
+        array where :math:`k` is the number of flat clusters found
+        in ``T``. This allows the set of flat cluster ids to be
+        any arbitrary set of :math:`k` integers.
 
-            For example: if ``L[3]=2`` and ``M[3]=8``, the flat cluster with
-            id 8's leader is linkage node 2.
-
-         - M : ndarray
-            The leader linkage node id's stored as a k-element 1D
-            array where :math:`k` is the number of flat clusters found
-            in ``T``. This allows the set of flat cluster ids to be
-            any arbitrary set of :math:`k` integers.
     """
     Z = np.asarray(Z, order='c')
     T = np.asarray(T, order='c')

Modified: trunk/scipy/cluster/vq.py
===================================================================
--- trunk/scipy/cluster/vq.py	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/scipy/cluster/vq.py	2011-02-20 13:30:33 UTC (rev 7164)
@@ -102,28 +102,29 @@
     divided by its standard deviation across all observations to give
     it unit variance.
 
-    :Parameters:
-        obs : ndarray
-            Each row of the array is an observation.  The
-            columns are the features seen during each observation.
-            ::
+    Parameters
+    ----------
+    obs : ndarray
+        Each row of the array is an observation.  The
+        columns are the features seen during each observation.
+        ::
 
-                      #   f0    f1    f2
-                obs = [[  1.,   1.,   1.],  #o0
-                       [  2.,   2.,   2.],  #o1
-                       [  3.,   3.,   3.],  #o2
-                       [  4.,   4.,   4.]]) #o3
+                  #   f0    f1    f2
+            obs = [[  1.,   1.,   1.],  #o0
+                   [  2.,   2.,   2.],  #o1
+                   [  3.,   3.,   3.],  #o2
+                   [  4.,   4.,   4.]]) #o3
 
-            XXX perhaps should have an axis variable here.
+        XXX perhaps should have an axis variable here.
 
-    :Returns:
-        result : ndarray
-            Contains the values in obs scaled by the standard devation
-            of each column.
+    Returns
+    -------
+    result : ndarray
+        Contains the values in `obs` scaled by the standard devation
+        of each column.
 
     Examples
     --------
-
     >>> from numpy import array
     >>> from scipy.cluster.vq import whiten
     >>> features  = array([[  1.9,2.3,1.7],
@@ -151,29 +152,31 @@
     book can be created with the k-means algorithm or a different
     encoding algorithm.
 
-    :Parameters:
-        obs : ndarray
-            Each row of the NxM array is an observation.  The columns are the
-            "features" seen during each observation. The features must be
-            whitened first using the whiten function or something equivalent.
-        code_book : ndarray.
-            The code book is usually generated using the k-means algorithm.
-            Each row of the array holds a different code, and the columns are
-            the features of the code.
+    Parameters
+    ----------
+    obs : ndarray
+        Each row of the NxM array is an observation.  The columns are the
+        "features" seen during each observation. The features must be
+        whitened first using the whiten function or something equivalent.
+    code_book : ndarray
+        The code book is usually generated using the k-means algorithm.
+        Each row of the array holds a different code, and the columns are
+        the features of the code.
 
-            ::
+        ::
 
-                            #   f0    f1    f2   f3
-                code_book = [[  1.,   2.,   3.,   4.],  #c0
-                             [  1.,   2.,   3.,   4.],  #c1
-                             [  1.,   2.,   3.,   4.]]) #c2
+                        #   f0    f1    f2   f3
+            code_book = [[  1.,   2.,   3.,   4.],  #c0
+                         [  1.,   2.,   3.,   4.],  #c1
+                         [  1.,   2.,   3.,   4.]]) #c2
 
-    :Returns:
-        code : ndarray
-            A length N array holding the code book index for each observation.
-        dist : ndarray
-            The distortion (distance) between the observation and its nearest
-            code.
+    Returns
+    -------
+    code : ndarray
+        A length N array holding the code book index for each observation.
+    dist : ndarray
+        The distortion (distance) between the observation and its nearest
+        code.
 
     Notes
     -----
@@ -214,27 +217,30 @@
     The algorithm computes the euclidian distance between each
     observation and every frame in the code_book.
 
-    :Parameters:
-        obs : ndarray
-            Expects a rank 2 array. Each row is one observation.
-        code_book : ndarray
-            Code book to use. Same format than obs. Should have same number of
-            features (eg columns) than obs.
+    Parameters
+    ----------
+    obs : ndarray
+        Expects a rank 2 array. Each row is one observation.
+    code_book : ndarray
+        Code book to use. Same format than obs. Should have same number of
+        features (eg columns) than obs.
 
-    :Note:
-        This function is slower than the C version but works for
-        all input types.  If the inputs have the wrong types for the
-        C versions of the function, this one is called as a last resort.
+    Returns
+    -------
+    code : ndarray
+        code[i] gives the label of the ith obversation, that its code is
+        code_book[code[i]].
+    mind_dist : ndarray
+        min_dist[i] gives the distance between the ith observation and its
+        corresponding code.
 
-        It is about 20 times slower than the C version.
+    Notes
+    -----
+    This function is slower than the C version but works for
+    all input types.  If the inputs have the wrong types for the
+    C versions of the function, this one is called as a last resort.
 
-    :Returns:
-        code : ndarray
-            code[i] gives the label of the ith obversation, that its code is
-            code_book[code[i]].
-        mind_dist : ndarray
-            min_dist[i] gives the distance between the ith observation and its
-            corresponding code.
+    It is about 20 times slower than the C version.
 
     """
     # n = number of observations
@@ -269,19 +275,21 @@
 def _py_vq_1d(obs, code_book):
     """ Python version of vq algorithm for rank 1 only.
 
-    :Parameters:
-        obs : ndarray
-            Expects a rank 1 array. Each item is one observation.
-        code_book : ndarray
-            Code book to use. Same format than obs. Should rank 1 too.
+    Parameters
+    ----------
+    obs : ndarray
+        Expects a rank 1 array. Each item is one observation.
+    code_book : ndarray
+        Code book to use. Same format than obs. Should rank 1 too.
 
-    :Returns:
-        code : ndarray
-            code[i] gives the label of the ith obversation, that its code is
-            code_book[code[i]].
-        mind_dist : ndarray
-            min_dist[i] gives the distance between the ith observation and its
-            corresponding code.
+    Returns
+    -------
+    code : ndarray
+        code[i] gives the label of the ith obversation, that its code is
+        code_book[code[i]].
+    mind_dist : ndarray
+        min_dist[i] gives the distance between the ith observation and its
+        corresponding code.
 
     """
     raise RuntimeError("_py_vq_1d buggy, do not use rank 1 arrays for now")
@@ -302,26 +310,29 @@
     The algorithm simply computes the euclidian distance between each
     observation and every frame in the code_book/
 
-    :Parameters:
-        obs : ndarray
-            Expect a rank 2 array. Each row is one observation.
-        code_book : ndarray
-            Code book to use. Same format than obs. Should have same number of
-            features (eg columns) than obs.
+    Parameters
+    ----------
+    obs : ndarray
+        Expect a rank 2 array. Each row is one observation.
+    code_book : ndarray
+        Code book to use. Same format than obs. Should have same number of
+        features (eg columns) than obs.
 
-    :Note:
-        This could be faster when number of codebooks is small, but it
-        becomes a real memory hog when codebook is large. It requires
-        N by M by O storage where N=number of obs, M = number of
-        features, and O = number of codes.
+    Returns
+    -------
+    code : ndarray
+        code[i] gives the label of the ith obversation, that its code is
+        code_book[code[i]].
+    mind_dist : ndarray
+        min_dist[i] gives the distance between the ith observation and its
+        corresponding code.
 
-    :Returns:
-        code : ndarray
-            code[i] gives the label of the ith obversation, that its code is
-            code_book[code[i]].
-        mind_dist : ndarray
-            min_dist[i] gives the distance between the ith observation and its
-            corresponding code.
+    Notes
+    -----
+    This could be faster when number of codebooks is small, but it
+    becomes a real memory hog when codebook is large. It requires
+    N by M by O storage where N=number of obs, M = number of
+    features, and O = number of codes.
 
     """
     d = shape(obs)[1]
@@ -344,21 +355,22 @@
 def _kmeans(obs, guess, thresh=1e-5):
     """ "raw" version of k-means.
 
-    :Returns:
-        code_book :
-            the lowest distortion codebook found.
-        avg_dist :
-            the average distance a observation is from a code in the book.
-            Lower means the code_book matches the data better.
+    Returns
+    -------
+    code_book :
+        the lowest distortion codebook found.
+    avg_dist :
+        the average distance a observation is from a code in the book.
+        Lower means the code_book matches the data better.
 
-    :SeeAlso:
-        - kmeans : wrapper around k-means
+    See Also
+    --------
+    kmeans : wrapper around k-means
 
     XXX should have an axis variable here.
 
     Examples
     --------
-
     Note: not whitened in this example.
 
     >>> from numpy import array
@@ -518,13 +530,14 @@
     This is done by taking the k first values of a random permutation of 1..N
     where N is the number of observation.
 
-    :Parameters:
-        data : ndarray
-            Expect a rank 1 or 2 array. Rank 1 are assumed to describe one
-            dimensional data, rank 2 multidimensional data, in which case one
-            row is one observation.
-        k : int
-            Number of samples to generate.
+    Parameters
+    ----------
+    data : ndarray
+        Expect a rank 1 or 2 array. Rank 1 are assumed to describe one
+        dimensional data, rank 2 multidimensional data, in which case one
+        row is one observation.
+    k : int
+        Number of samples to generate.
 
     """
     if data.ndim > 1:
@@ -543,13 +556,14 @@
     More precisely, it returns k observations sampled from a Gaussian random
     variable which mean and covariances are the one estimated from data.
 
-    :Parameters:
-        data : ndarray
-            Expect a rank 1 or 2 array. Rank 1 are assumed to describe one
-            dimensional data, rank 2 multidimensional data, in which case one
-            row is one observation.
-        k : int
-            Number of samples to generate.
+    Parameters
+    ----------
+    data : ndarray
+        Expect a rank 1 or 2 array. Rank 1 are assumed to describe one
+        dimensional data, rank 2 multidimensional data, in which case one
+        row is one observation.
+    k : int
+        Number of samples to generate.
 
     """
     def init_rank1(data):
@@ -598,44 +612,47 @@
     observations and centroids. Several initialization methods are
     included.
 
-    :Parameters:
-        data : ndarray
-            A M by N array of M observations in N dimensions or a length
-            M array of M one-dimensional observations.
-        k : int or ndarray
-            The number of clusters to form as well as the number of
-            centroids to generate. If minit initialization string is
-            'matrix', or if a ndarray is given instead, it is
-            interpreted as initial cluster to use instead.
-        iter : int
-            Number of iterations of the k-means algrithm to run. Note
-            that this differs in meaning from the iters parameter to
-            the kmeans function.
-        thresh : float
-            (not used yet).
-        minit : string
-            Method for initialization. Available methods are 'random',
-            'points', 'uniform', and 'matrix':
+    Parameters
+    ----------
+    data : ndarray
+        A M by N array of M observations in N dimensions or a length
+        M array of M one-dimensional observations.
+    k : int or ndarray
+        The number of clusters to form as well as the number of
+        centroids to generate. If minit initialization string is
+        'matrix', or if a ndarray is given instead, it is
+        interpreted as initial cluster to use instead.
+    iter : int
+        Number of iterations of the k-means algrithm to run. Note
+        that this differs in meaning from the iters parameter to
+        the kmeans function.
+    thresh : float
+        (not used yet).
+    minit : string
+        Method for initialization. Available methods are 'random',
+        'points', 'uniform', and 'matrix':
 
-            'random': generate k centroids from a Gaussian with mean and
-            variance estimated from the data.
+        'random': generate k centroids from a Gaussian with mean and
+        variance estimated from the data.
 
-            'points': choose k observations (rows) at random from data for
-            the initial centroids.
+        'points': choose k observations (rows) at random from data for
+        the initial centroids.
 
-            'uniform': generate k observations from the data from a uniform
-            distribution defined by the data set (unsupported).
+        'uniform': generate k observations from the data from a uniform
+        distribution defined by the data set (unsupported).
 
-            'matrix': interpret the k parameter as a k by M (or length k
-            array for one-dimensional data) array of initial centroids.
+        'matrix': interpret the k parameter as a k by M (or length k
+        array for one-dimensional data) array of initial centroids.
 
-    :Returns:
-        centroid : ndarray
-            A k by N array of centroids found at the last iteration of
-            k-means.
-        label : ndarray
-            label[i] is the code or index of the centroid the
-            i'th observation is closest to.
+    Returns
+    -------
+    centroid : ndarray
+        A k by N array of centroids found at the last iteration of
+        k-means.
+    label : ndarray
+        label[i] is the code or index of the centroid the
+        i'th observation is closest to.
+
     """
     if missing not in _valid_miss_meth.keys():
         raise ValueError("Unkown missing method: %s" % str(missing))
@@ -690,7 +707,9 @@
 def _kmeans2(data, code, niter, nc, missing):
     """ "raw" version of kmeans2. Do not use directly.
 
-    Run k-means with a given initial codebook.  """
+    Run k-means with a given initial codebook.
+
+    """
     for i in range(niter):
         # Compute the nearest neighbour for each obs
         # using the current code book

Modified: trunk/scipy/spatial/ckdtree.c
===================================================================
--- trunk/scipy/spatial/ckdtree.c	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/scipy/spatial/ckdtree.c	2011-02-20 13:30:33 UTC (rev 7164)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.12.1 on Wed Jun 16 17:30:37 2010 */
+/* Generated by Cython 0.12.1 on Sun Feb 20 19:40:58 2011 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -375,7 +375,7 @@
 
 typedef npy_cdouble __pyx_t_5numpy_complex_t;
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":15
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":15
  * 
  * # priority queue
  * cdef union heapcontents:             # <<<<<<<<<<<<<<
@@ -388,7 +388,7 @@
   char *ptrdata;
 };
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":19
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":19
  *     char* ptrdata
  * 
  * cdef struct heapitem:             # <<<<<<<<<<<<<<
@@ -401,7 +401,7 @@
   union __pyx_t_5scipy_7spatial_7ckdtree_heapcontents contents;
 };
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":23
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":23
  *     heapcontents contents
  * 
  * cdef struct heap:             # <<<<<<<<<<<<<<
@@ -415,7 +415,7 @@
   int space;
 };
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":139
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":139
  * 
  * # Tree structure
  * cdef struct innernode:             # <<<<<<<<<<<<<<
@@ -431,7 +431,7 @@
   struct __pyx_t_5scipy_7spatial_7ckdtree_innernode *greater;
 };
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":145
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":145
  *     innernode* less
  *     innernode* greater
  * cdef struct leafnode:             # <<<<<<<<<<<<<<
@@ -446,7 +446,7 @@
   int end_idx;
 };
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":153
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":153
  * # this is the standard trick for variable-size arrays:
  * # malloc sizeof(nodeinfo)+self.m*sizeof(double) bytes.
  * cdef struct nodeinfo:             # <<<<<<<<<<<<<<
@@ -459,7 +459,7 @@
   double side_distances[0];
 };
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":157
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":157
  *     double side_distances[0]
  * 
  * cdef class cKDTree:             # <<<<<<<<<<<<<<
@@ -865,8 +865,7 @@
 static char __pyx_k_10[] = "unknown dtype code in numpy.pxd (%d)";
 static char __pyx_k_11[] = "Format string allocated too short, see comment in numpy.pxd";
 static char __pyx_k_12[] = "Format string allocated too short.";
-static char __pyx_k_13[] = "cKDTree.__init__ (line 195)";
-static char __pyx_k_14[] = "cKDTree.query (line 516)";
+static char __pyx_k_13[] = "cKDTree.query (line 514)";
 static char __pyx_k__B[] = "B";
 static char __pyx_k__H[] = "H";
 static char __pyx_k__I[] = "I";
@@ -937,7 +936,6 @@
 static char __pyx_k__ptrdata[] = "ptrdata";
 static char __pyx_k__reshape[] = "reshape";
 static char __pyx_k__strides[] = "strides";
-static char __pyx_k____init__[] = "__init__";
 static char __pyx_k____main__[] = "__main__";
 static char __pyx_k____test__[] = "__test__";
 static char __pyx_k__contents[] = "contents";
@@ -964,7 +962,6 @@
 static PyObject *__pyx_kp_u_11;
 static PyObject *__pyx_kp_u_12;
 static PyObject *__pyx_kp_u_13;
-static PyObject *__pyx_kp_u_14;
 static PyObject *__pyx_kp_s_2;
 static PyObject *__pyx_n_s_3;
 static PyObject *__pyx_kp_s_5;
@@ -976,7 +973,6 @@
 static PyObject *__pyx_n_s__ValueError;
 static PyObject *__pyx_n_s____build;
 static PyObject *__pyx_n_s____free_tree;
-static PyObject *__pyx_n_s____init__;
 static PyObject *__pyx_n_s____main__;
 static PyObject *__pyx_n_s____query;
 static PyObject *__pyx_n_s____test__;
@@ -1053,7 +1049,7 @@
 static PyObject *__pyx_int_15;
 static double __pyx_k_4;
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":28
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":28
  *     int space
  * 
  * cdef inline heapcreate(heap* self,int initial_size):             # <<<<<<<<<<<<<<
@@ -1065,7 +1061,7 @@
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannySetupContext("heapcreate");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":29
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":29
  * 
  * cdef inline heapcreate(heap* self,int initial_size):
  *     self.space = initial_size             # <<<<<<<<<<<<<<
@@ -1074,7 +1070,7 @@
  */
   __pyx_v_self->space = __pyx_v_initial_size;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":30
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":30
  * cdef inline heapcreate(heap* self,int initial_size):
  *     self.space = initial_size
  *     self.heap = <heapitem*>stdlib.malloc(sizeof(heapitem)*self.space)             # <<<<<<<<<<<<<<
@@ -1083,7 +1079,7 @@
  */
   __pyx_v_self->heap = ((struct __pyx_t_5scipy_7spatial_7ckdtree_heapitem *)malloc(((sizeof(struct __pyx_t_5scipy_7spatial_7ckdtree_heapitem)) * __pyx_v_self->space)));
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":31
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":31
  *     self.space = initial_size
  *     self.heap = <heapitem*>stdlib.malloc(sizeof(heapitem)*self.space)
  *     self.n=0             # <<<<<<<<<<<<<<
@@ -1098,7 +1094,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":33
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":33
  *     self.n=0
  * 
  * cdef inline heapdestroy(heap* self):             # <<<<<<<<<<<<<<
@@ -1110,7 +1106,7 @@
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannySetupContext("heapdestroy");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":34
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":34
  * 
  * cdef inline heapdestroy(heap* self):
  *     stdlib.free(self.heap)             # <<<<<<<<<<<<<<
@@ -1125,7 +1121,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":36
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":36
  *     stdlib.free(self.heap)
  * 
  * cdef inline heapresize(heap* self, int new_space):             # <<<<<<<<<<<<<<
@@ -1141,7 +1137,7 @@
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("heapresize");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":37
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":37
  * 
  * cdef inline heapresize(heap* self, int new_space):
  *     if new_space<self.n:             # <<<<<<<<<<<<<<
@@ -1151,7 +1147,7 @@
   __pyx_t_1 = (__pyx_v_new_space < __pyx_v_self->n);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":38
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":38
  * cdef inline heapresize(heap* self, int new_space):
  *     if new_space<self.n:
  *         raise ValueError("Heap containing %d items cannot be resized to %d" % (self.n, new_space))             # <<<<<<<<<<<<<<
@@ -1188,7 +1184,7 @@
   }
   __pyx_L3:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":39
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":39
  *     if new_space<self.n:
  *         raise ValueError("Heap containing %d items cannot be resized to %d" % (self.n, new_space))
  *     self.space = new_space             # <<<<<<<<<<<<<<
@@ -1197,7 +1193,7 @@
  */
   __pyx_v_self->space = __pyx_v_new_space;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":40
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":40
  *         raise ValueError("Heap containing %d items cannot be resized to %d" % (self.n, new_space))
  *     self.space = new_space
  *     self.heap = <heapitem*>stdlib.realloc(<void*>self.heap,new_space*sizeof(heapitem))             # <<<<<<<<<<<<<<
@@ -1220,7 +1216,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":42
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":42
  *     self.heap = <heapitem*>stdlib.realloc(<void*>self.heap,new_space*sizeof(heapitem))
  * 
  * cdef inline heappush(heap* self, heapitem item):             # <<<<<<<<<<<<<<
@@ -1238,7 +1234,7 @@
   int __pyx_t_4;
   __Pyx_RefNannySetupContext("heappush");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":46
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":46
  *     cdef heapitem t
  * 
  *     self.n += 1             # <<<<<<<<<<<<<<
@@ -1247,7 +1243,7 @@
  */
   __pyx_v_self->n += 1;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":47
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":47
  * 
  *     self.n += 1
  *     if self.n>self.space:             # <<<<<<<<<<<<<<
@@ -1257,7 +1253,7 @@
   __pyx_t_1 = (__pyx_v_self->n > __pyx_v_self->space);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":48
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":48
  *     self.n += 1
  *     if self.n>self.space:
  *         heapresize(self,2*self.space+1)             # <<<<<<<<<<<<<<
@@ -1271,7 +1267,7 @@
   }
   __pyx_L3:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":50
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":50
  *         heapresize(self,2*self.space+1)
  * 
  *     i = self.n-1             # <<<<<<<<<<<<<<
@@ -1280,7 +1276,7 @@
  */
   __pyx_v_i = (__pyx_v_self->n - 1);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":51
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":51
  * 
  *     i = self.n-1
  *     self.heap[i] = item             # <<<<<<<<<<<<<<
@@ -1289,7 +1285,7 @@
  */
   (__pyx_v_self->heap[__pyx_v_i]) = __pyx_v_item;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":52
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":52
  *     i = self.n-1
  *     self.heap[i] = item
  *     while i>0 and self.heap[i].priority<self.heap[(i-1)//2].priority:             # <<<<<<<<<<<<<<
@@ -1306,7 +1302,7 @@
     }
     if (!__pyx_t_4) break;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":53
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":53
  *     self.heap[i] = item
  *     while i>0 and self.heap[i].priority<self.heap[(i-1)//2].priority:
  *         t = self.heap[(i-1)//2]             # <<<<<<<<<<<<<<
@@ -1315,7 +1311,7 @@
  */
     __pyx_v_t = (__pyx_v_self->heap[__Pyx_div_long((__pyx_v_i - 1), 2)]);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":54
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":54
  *     while i>0 and self.heap[i].priority<self.heap[(i-1)//2].priority:
  *         t = self.heap[(i-1)//2]
  *         self.heap[(i-1)//2] = self.heap[i]             # <<<<<<<<<<<<<<
@@ -1324,7 +1320,7 @@
  */
     (__pyx_v_self->heap[__Pyx_div_long((__pyx_v_i - 1), 2)]) = (__pyx_v_self->heap[__pyx_v_i]);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":55
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":55
  *         t = self.heap[(i-1)//2]
  *         self.heap[(i-1)//2] = self.heap[i]
  *         self.heap[i] = t             # <<<<<<<<<<<<<<
@@ -1333,7 +1329,7 @@
  */
     (__pyx_v_self->heap[__pyx_v_i]) = __pyx_v_t;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":56
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":56
  *         self.heap[(i-1)//2] = self.heap[i]
  *         self.heap[i] = t
  *         i = (i-1)//2             # <<<<<<<<<<<<<<
@@ -1355,7 +1351,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":58
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":58
  *         i = (i-1)//2
  * 
  * cdef heapitem heappeek(heap* self):             # <<<<<<<<<<<<<<
@@ -1367,7 +1363,7 @@
   struct __pyx_t_5scipy_7spatial_7ckdtree_heapitem __pyx_r;
   __Pyx_RefNannySetupContext("heappeek");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":59
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":59
  * 
  * cdef heapitem heappeek(heap* self):
  *     return self.heap[0]             # <<<<<<<<<<<<<<
@@ -1382,7 +1378,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":61
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":61
  *     return self.heap[0]
  * 
  * cdef heapremove(heap* self):             # <<<<<<<<<<<<<<
@@ -1404,7 +1400,7 @@
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("heapremove");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":65
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":65
  *     cdef int i, j, k, l
  * 
  *     self.heap[0] = self.heap[self.n-1]             # <<<<<<<<<<<<<<
@@ -1413,7 +1409,7 @@
  */
   (__pyx_v_self->heap[0]) = (__pyx_v_self->heap[(__pyx_v_self->n - 1)]);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":66
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":66
  * 
  *     self.heap[0] = self.heap[self.n-1]
  *     self.n -= 1             # <<<<<<<<<<<<<<
@@ -1422,7 +1418,7 @@
  */
   __pyx_v_self->n -= 1;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":67
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":67
  *     self.heap[0] = self.heap[self.n-1]
  *     self.n -= 1
  *     if self.n < self.space//4 and self.space>40: #FIXME: magic number             # <<<<<<<<<<<<<<
@@ -1438,7 +1434,7 @@
   }
   if (__pyx_t_3) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":68
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":68
  *     self.n -= 1
  *     if self.n < self.space//4 and self.space>40: #FIXME: magic number
  *         heapresize(self,self.space//2+1)             # <<<<<<<<<<<<<<
@@ -1452,7 +1448,7 @@
   }
   __pyx_L3:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":70
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":70
  *         heapresize(self,self.space//2+1)
  * 
  *     i=0             # <<<<<<<<<<<<<<
@@ -1461,7 +1457,7 @@
  */
   __pyx_v_i = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":71
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":71
  * 
  *     i=0
  *     j=1             # <<<<<<<<<<<<<<
@@ -1470,7 +1466,7 @@
  */
   __pyx_v_j = 1;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":72
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":72
  *     i=0
  *     j=1
  *     k=2             # <<<<<<<<<<<<<<
@@ -1479,7 +1475,7 @@
  */
   __pyx_v_k = 2;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":73
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":73
  *     j=1
  *     k=2
  *     while ((j<self.n and             # <<<<<<<<<<<<<<
@@ -1488,7 +1484,7 @@
  */
   while (1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":74
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":74
  *     k=2
  *     while ((j<self.n and
  *                 self.heap[i].priority > self.heap[j].priority or             # <<<<<<<<<<<<<<
@@ -1504,7 +1500,7 @@
     }
     if (!__pyx_t_2) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":75
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":75
  *     while ((j<self.n and
  *                 self.heap[i].priority > self.heap[j].priority or
  *             k<self.n and             # <<<<<<<<<<<<<<
@@ -1514,7 +1510,7 @@
       __pyx_t_3 = (__pyx_v_k < __pyx_v_self->n);
       if (__pyx_t_3) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":76
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":76
  *                 self.heap[i].priority > self.heap[j].priority or
  *             k<self.n and
  *                 self.heap[i].priority > self.heap[k].priority)):             # <<<<<<<<<<<<<<
@@ -1532,7 +1528,7 @@
     }
     if (!__pyx_t_3) break;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":77
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":77
  *             k<self.n and
  *                 self.heap[i].priority > self.heap[k].priority)):
  *         if k<self.n and self.heap[j].priority>self.heap[k].priority:             # <<<<<<<<<<<<<<
@@ -1548,7 +1544,7 @@
     }
     if (__pyx_t_5) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":78
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":78
  *                 self.heap[i].priority > self.heap[k].priority)):
  *         if k<self.n and self.heap[j].priority>self.heap[k].priority:
  *             l = k             # <<<<<<<<<<<<<<
@@ -1560,7 +1556,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":80
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":80
  *             l = k
  *         else:
  *             l = j             # <<<<<<<<<<<<<<
@@ -1571,7 +1567,7 @@
     }
     __pyx_L6:;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":81
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":81
  *         else:
  *             l = j
  *         t = self.heap[l]             # <<<<<<<<<<<<<<
@@ -1580,7 +1576,7 @@
  */
     __pyx_v_t = (__pyx_v_self->heap[__pyx_v_l]);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":82
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":82
  *             l = j
  *         t = self.heap[l]
  *         self.heap[l] = self.heap[i]             # <<<<<<<<<<<<<<
@@ -1589,7 +1585,7 @@
  */
     (__pyx_v_self->heap[__pyx_v_l]) = (__pyx_v_self->heap[__pyx_v_i]);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":83
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":83
  *         t = self.heap[l]
  *         self.heap[l] = self.heap[i]
  *         self.heap[i] = t             # <<<<<<<<<<<<<<
@@ -1598,7 +1594,7 @@
  */
     (__pyx_v_self->heap[__pyx_v_i]) = __pyx_v_t;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":84
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":84
  *         self.heap[l] = self.heap[i]
  *         self.heap[i] = t
  *         i = l             # <<<<<<<<<<<<<<
@@ -1607,7 +1603,7 @@
  */
     __pyx_v_i = __pyx_v_l;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":85
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":85
  *         self.heap[i] = t
  *         i = l
  *         j = 2*i+1             # <<<<<<<<<<<<<<
@@ -1616,7 +1612,7 @@
  */
     __pyx_v_j = ((2 * __pyx_v_i) + 1);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":86
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":86
  *         i = l
  *         j = 2*i+1
  *         k = 2*i+2             # <<<<<<<<<<<<<<
@@ -1638,7 +1634,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":88
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":88
  *         k = 2*i+2
  * 
  * cdef heapitem heappop(heap* self):             # <<<<<<<<<<<<<<
@@ -1652,7 +1648,7 @@
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("heappop");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":90
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":90
  * cdef heapitem heappop(heap* self):
  *     cdef heapitem it
  *     it = heappeek(self)             # <<<<<<<<<<<<<<
@@ -1661,7 +1657,7 @@
  */
   __pyx_v_it = __pyx_f_5scipy_7spatial_7ckdtree_heappeek(__pyx_v_self);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":91
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":91
  *     cdef heapitem it
  *     it = heappeek(self)
  *     heapremove(self)             # <<<<<<<<<<<<<<
@@ -1672,7 +1668,7 @@
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":92
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":92
  *     it = heappeek(self)
  *     heapremove(self)
  *     return it             # <<<<<<<<<<<<<<
@@ -1691,7 +1687,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":99
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":99
  * 
  * # utility functions
  * cdef inline double dmax(double x, double y):             # <<<<<<<<<<<<<<
@@ -1704,7 +1700,7 @@
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("dmax");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":100
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":100
  * # utility functions
  * cdef inline double dmax(double x, double y):
  *     if x>y:             # <<<<<<<<<<<<<<
@@ -1714,7 +1710,7 @@
   __pyx_t_1 = (__pyx_v_x > __pyx_v_y);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":101
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":101
  * cdef inline double dmax(double x, double y):
  *     if x>y:
  *         return x             # <<<<<<<<<<<<<<
@@ -1727,7 +1723,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":103
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":103
  *         return x
  *     else:
  *         return y             # <<<<<<<<<<<<<<
@@ -1745,7 +1741,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":104
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":104
  *     else:
  *         return y
  * cdef inline double dabs(double x):             # <<<<<<<<<<<<<<
@@ -1758,7 +1754,7 @@
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("dabs");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":105
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":105
  *         return y
  * cdef inline double dabs(double x):
  *     if x>0:             # <<<<<<<<<<<<<<
@@ -1768,7 +1764,7 @@
   __pyx_t_1 = (__pyx_v_x > 0);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":106
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":106
  * cdef inline double dabs(double x):
  *     if x>0:
  *         return x             # <<<<<<<<<<<<<<
@@ -1781,7 +1777,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":108
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":108
  *         return x
  *     else:
  *         return -x             # <<<<<<<<<<<<<<
@@ -1799,7 +1795,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":109
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":109
  *     else:
  *         return -x
  * cdef inline double _distance_p(double*x,double*y,double p,int k,double upperbound):             # <<<<<<<<<<<<<<
@@ -1816,7 +1812,7 @@
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_distance_p");
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":118
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":118
  *     cdef int i
  *     cdef double r
  *     r = 0             # <<<<<<<<<<<<<<
@@ -1825,7 +1821,7 @@
  */
   __pyx_v_r = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":119
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":119
  *     cdef double r
  *     r = 0
  *     if p==infinity:             # <<<<<<<<<<<<<<
@@ -1835,7 +1831,7 @@
   __pyx_t_1 = (__pyx_v_p == __pyx_v_5scipy_7spatial_7ckdtree_infinity);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":120
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":120
  *     r = 0
  *     if p==infinity:
  *         for i in range(k):             # <<<<<<<<<<<<<<
@@ -1846,7 +1842,7 @@
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":121
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":121
  *     if p==infinity:
  *         for i in range(k):
  *             r = dmax(r,dabs(x[i]-y[i]))             # <<<<<<<<<<<<<<
@@ -1855,7 +1851,7 @@
  */
       __pyx_v_r = __pyx_f_5scipy_7spatial_7ckdtree_dmax(__pyx_v_r, __pyx_f_5scipy_7spatial_7ckdtree_dabs(((__pyx_v_x[__pyx_v_i]) - (__pyx_v_y[__pyx_v_i]))));
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":122
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":122
  *         for i in range(k):
  *             r = dmax(r,dabs(x[i]-y[i]))
  *             if r>upperbound:             # <<<<<<<<<<<<<<
@@ -1865,7 +1861,7 @@
       __pyx_t_1 = (__pyx_v_r > __pyx_v_upperbound);
       if (__pyx_t_1) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":123
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":123
  *             r = dmax(r,dabs(x[i]-y[i]))
  *             if r>upperbound:
  *                 return r             # <<<<<<<<<<<<<<
@@ -1881,7 +1877,7 @@
     goto __pyx_L3;
   }
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":124
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":124
  *             if r>upperbound:
  *                 return r
  *     elif p==1:             # <<<<<<<<<<<<<<
@@ -1891,7 +1887,7 @@
   __pyx_t_1 = (__pyx_v_p == 1);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":125
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":125
  *                 return r
  *     elif p==1:
  *         for i in range(k):             # <<<<<<<<<<<<<<
@@ -1902,7 +1898,7 @@
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":126
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":126
  *     elif p==1:
  *         for i in range(k):
  *             r += dabs(x[i]-y[i])             # <<<<<<<<<<<<<<
@@ -1911,7 +1907,7 @@
  */
       __pyx_v_r += __pyx_f_5scipy_7spatial_7ckdtree_dabs(((__pyx_v_x[__pyx_v_i]) - (__pyx_v_y[__pyx_v_i])));
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":127
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":127
  *         for i in range(k):
  *             r += dabs(x[i]-y[i])
  *             if r>upperbound:             # <<<<<<<<<<<<<<
@@ -1921,7 +1917,7 @@
       __pyx_t_1 = (__pyx_v_r > __pyx_v_upperbound);
       if (__pyx_t_1) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":128
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":128
  *             r += dabs(x[i]-y[i])
  *             if r>upperbound:
  *                 return r             # <<<<<<<<<<<<<<
@@ -1938,7 +1934,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":130
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":130
  *                 return r
  *     else:
  *         for i in range(k):             # <<<<<<<<<<<<<<
@@ -1949,7 +1945,7 @@
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":131
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":131
  *     else:
  *         for i in range(k):
  *             r += dabs(x[i]-y[i])**p             # <<<<<<<<<<<<<<
@@ -1958,7 +1954,7 @@
  */
       __pyx_v_r += pow(__pyx_f_5scipy_7spatial_7ckdtree_dabs(((__pyx_v_x[__pyx_v_i]) - (__pyx_v_y[__pyx_v_i]))), __pyx_v_p);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":132
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":132
  *         for i in range(k):
  *             r += dabs(x[i]-y[i])**p
  *             if r>upperbound:             # <<<<<<<<<<<<<<
@@ -1968,7 +1964,7 @@
       __pyx_t_1 = (__pyx_v_r > __pyx_v_upperbound);
       if (__pyx_t_1) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":133
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":133
  *             r += dabs(x[i]-y[i])**p
  *             if r>upperbound:
  *                 return r             # <<<<<<<<<<<<<<
@@ -1984,7 +1980,7 @@
   }
   __pyx_L3:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":134
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":134
  *             if r>upperbound:
  *                 return r
  *     return r             # <<<<<<<<<<<<<<
@@ -2000,16 +1996,15 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":195
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":207
  *     cdef object indices
  *     cdef np.int32_t* raw_indices
  *     def __init__(cKDTree self, data, int leafsize=10):             # <<<<<<<<<<<<<<
- *         """Construct a kd-tree.
- * 
+ *         cdef np.ndarray[double, ndim=2] inner_data
+ *         cdef np.ndarray[double, ndim=1] inner_maxes
  */
 
 static int __pyx_pf_5scipy_7spatial_7ckdtree_7cKDTree___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_5scipy_7spatial_7ckdtree_7cKDTree___init__[] = "Construct a kd-tree.\n\n        Parameters:\n        ===========\n\n        data : array-like, shape (n,m)\n            The n data points of dimension mto be indexed. This array is \n            not copied unless this is necessary to produce a contiguous \n            array of doubles, and so modifying this data will result in \n            bogus results.\n        leafsize : positive integer\n            The number of points at which the algorithm switches over to\n            brute-force.\n        ";
 static int __pyx_pf_5scipy_7spatial_7ckdtree_7cKDTree___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   PyObject *__pyx_v_data = 0;
   int __pyx_v_leafsize;
@@ -2071,18 +2066,18 @@
       }
     }
     if (unlikely(kw_args > 0)) {
-      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     }
     __pyx_v_data = values[0];
     if (values[1]) {
-      __pyx_v_leafsize = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_leafsize == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_leafsize = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_leafsize == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_leafsize = ((int)10);
     }
   } else {
     __pyx_v_leafsize = ((int)10);
     switch (PyTuple_GET_SIZE(__pyx_args)) {
-      case  2: __pyx_v_leafsize = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_leafsize == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      case  2: __pyx_v_leafsize = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_leafsize == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       case  1: __pyx_v_data = PyTuple_GET_ITEM(__pyx_args, 0);
       break;
       default: goto __pyx_L5_argtuple_error;
@@ -2090,7 +2085,7 @@
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("scipy.spatial.ckdtree.cKDTree.__init__");
   return -1;
@@ -2106,33 +2101,33 @@
   __pyx_bstruct_inner_mins.buf = NULL;
   __pyx_bstruct_inner_indices.buf = NULL;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":214
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":212
  *         cdef np.ndarray[double, ndim=1] inner_mins
  *         cdef np.ndarray[np.int32_t, ndim=1] inner_indices
  *         self.data = np.ascontiguousarray(data,dtype=np.float)             # <<<<<<<<<<<<<<
  *         self.n, self.m = np.shape(self.data)
  *         self.leafsize = leafsize
  */
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_data);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_data);
   __Pyx_GIVEREF(__pyx_v_data);
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -2143,57 +2138,57 @@
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":215
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":213
  *         cdef np.ndarray[np.int32_t, ndim=1] inner_indices
  *         self.data = np.ascontiguousarray(data,dtype=np.float)
  *         self.n, self.m = np.shape(self.data)             # <<<<<<<<<<<<<<
  *         self.leafsize = leafsize
  *         if self.leafsize<1:
  */
-  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   PyTuple_SET_ITEM(__pyx_t_5, 0, ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   __Pyx_GIVEREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
-  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 2)) {
     PyObject* tuple = __pyx_t_1;
     __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
-    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n = __pyx_t_6;
     ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m = __pyx_t_7;
   } else {
-    __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_2, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_2, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_2, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_2, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    if (__Pyx_EndUnpack(__pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_EndUnpack(__pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n = __pyx_t_7;
     ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m = __pyx_t_6;
   }
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":216
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":214
  *         self.data = np.ascontiguousarray(data,dtype=np.float)
  *         self.n, self.m = np.shape(self.data)
  *         self.leafsize = leafsize             # <<<<<<<<<<<<<<
@@ -2202,7 +2197,7 @@
  */
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->leafsize = __pyx_v_leafsize;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":217
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":215
  *         self.n, self.m = np.shape(self.data)
  *         self.leafsize = leafsize
  *         if self.leafsize<1:             # <<<<<<<<<<<<<<
@@ -2212,64 +2207,64 @@
   __pyx_t_8 = (((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->leafsize < 1);
   if (__pyx_t_8) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":218
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":216
  *         self.leafsize = leafsize
  *         if self.leafsize<1:
  *             raise ValueError("leafsize must be at least 1")             # <<<<<<<<<<<<<<
  *         self.maxes = np.ascontiguousarray(np.amax(self.data,axis=0))
  *         self.mins = np.ascontiguousarray(np.amin(self.data,axis=0))
  */
-    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_2));
     __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":219
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":217
  *         if self.leafsize<1:
  *             raise ValueError("leafsize must be at least 1")
  *         self.maxes = np.ascontiguousarray(np.amax(self.data,axis=0))             # <<<<<<<<<<<<<<
  *         self.mins = np.ascontiguousarray(np.amin(self.data,axis=0))
  *         self.indices = np.ascontiguousarray(np.arange(self.n,dtype=np.int32))
  */
-  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__amax); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__amax); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   __Pyx_GIVEREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__axis), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_5, __pyx_t_3, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__axis), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_5, __pyx_t_3, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -2279,42 +2274,42 @@
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":220
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":218
  *             raise ValueError("leafsize must be at least 1")
  *         self.maxes = np.ascontiguousarray(np.amax(self.data,axis=0))
  *         self.mins = np.ascontiguousarray(np.amin(self.data,axis=0))             # <<<<<<<<<<<<<<
  *         self.indices = np.ascontiguousarray(np.arange(self.n,dtype=np.int32))
  * 
  */
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__amin); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__amin); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   __Pyx_GIVEREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__axis), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, __pyx_t_4, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__axis), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, __pyx_t_4, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -2324,50 +2319,50 @@
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":221
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":219
  *         self.maxes = np.ascontiguousarray(np.amax(self.data,axis=0))
  *         self.mins = np.ascontiguousarray(np.amin(self.data,axis=0))
  *         self.indices = np.ascontiguousarray(np.arange(self.n,dtype=np.int32))             # <<<<<<<<<<<<<<
  * 
  *         inner_data = self.data
  */
-  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__arange); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__arange); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_9 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int32); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int32); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
-  __pyx_t_9 = PyEval_CallObjectWithKeywords(__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyEval_CallObjectWithKeywords(__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9);
   __Pyx_GIVEREF(__pyx_t_9);
   __pyx_t_9 = 0;
-  __pyx_t_9 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -2377,14 +2372,14 @@
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices = __pyx_t_9;
   __pyx_t_9 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":223
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":221
  *         self.indices = np.ascontiguousarray(np.arange(self.n,dtype=np.int32))
  * 
  *         inner_data = self.data             # <<<<<<<<<<<<<<
  *         self.raw_data = <double*>inner_data.data
  *         inner_maxes = self.maxes
  */
-  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_10 = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -2401,14 +2396,14 @@
     }
     __pyx_bstride_0_inner_data = __pyx_bstruct_inner_data.strides[0]; __pyx_bstride_1_inner_data = __pyx_bstruct_inner_data.strides[1];
     __pyx_bshape_0_inner_data = __pyx_bstruct_inner_data.shape[0]; __pyx_bshape_1_inner_data = __pyx_bstruct_inner_data.shape[1];
-    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_10 = 0;
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
   __Pyx_DECREF(((PyObject *)__pyx_v_inner_data));
   __pyx_v_inner_data = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->data);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":224
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":222
  * 
  *         inner_data = self.data
  *         self.raw_data = <double*>inner_data.data             # <<<<<<<<<<<<<<
@@ -2417,14 +2412,14 @@
  */
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->raw_data = ((double *)__pyx_v_inner_data->data);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":225
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":223
  *         inner_data = self.data
  *         self.raw_data = <double*>inner_data.data
  *         inner_maxes = self.maxes             # <<<<<<<<<<<<<<
  *         self.raw_maxes = <double*>inner_maxes.data
  *         inner_mins = self.mins
  */
-  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_14 = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -2441,14 +2436,14 @@
     }
     __pyx_bstride_0_inner_maxes = __pyx_bstruct_inner_maxes.strides[0];
     __pyx_bshape_0_inner_maxes = __pyx_bstruct_inner_maxes.shape[0];
-    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_14 = 0;
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes);
   __Pyx_DECREF(((PyObject *)__pyx_v_inner_maxes));
   __pyx_v_inner_maxes = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->maxes);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":226
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":224
  *         self.raw_data = <double*>inner_data.data
  *         inner_maxes = self.maxes
  *         self.raw_maxes = <double*>inner_maxes.data             # <<<<<<<<<<<<<<
@@ -2457,14 +2452,14 @@
  */
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->raw_maxes = ((double *)__pyx_v_inner_maxes->data);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":227
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":225
  *         inner_maxes = self.maxes
  *         self.raw_maxes = <double*>inner_maxes.data
  *         inner_mins = self.mins             # <<<<<<<<<<<<<<
  *         self.raw_mins = <double*>inner_mins.data
  *         inner_indices = self.indices
  */
-  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_15 = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -2481,14 +2476,14 @@
     }
     __pyx_bstride_0_inner_mins = __pyx_bstruct_inner_mins.strides[0];
     __pyx_bshape_0_inner_mins = __pyx_bstruct_inner_mins.shape[0];
-    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_15 = 0;
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins);
   __Pyx_DECREF(((PyObject *)__pyx_v_inner_mins));
   __pyx_v_inner_mins = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->mins);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":228
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":226
  *         self.raw_maxes = <double*>inner_maxes.data
  *         inner_mins = self.mins
  *         self.raw_mins = <double*>inner_mins.data             # <<<<<<<<<<<<<<
@@ -2497,14 +2492,14 @@
  */
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->raw_mins = ((double *)__pyx_v_inner_mins->data);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":229
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":227
  *         inner_mins = self.mins
  *         self.raw_mins = <double*>inner_mins.data
  *         inner_indices = self.indices             # <<<<<<<<<<<<<<
  *         self.raw_indices = <np.int32_t*>inner_indices.data
  * 
  */
-  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices) == Py_None) || likely(__Pyx_TypeTest(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_16 = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -2521,14 +2516,14 @@
     }
     __pyx_bstride_0_inner_indices = __pyx_bstruct_inner_indices.strides[0];
     __pyx_bshape_0_inner_indices = __pyx_bstruct_inner_indices.shape[0];
-    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_16 = 0;
   __Pyx_INCREF(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices);
   __Pyx_DECREF(((PyObject *)__pyx_v_inner_indices));
   __pyx_v_inner_indices = ((PyArrayObject *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->indices);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":230
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":228
  *         self.raw_mins = <double*>inner_mins.data
  *         inner_indices = self.indices
  *         self.raw_indices = <np.int32_t*>inner_indices.data             # <<<<<<<<<<<<<<
@@ -2537,7 +2532,7 @@
  */
   ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->raw_indices = ((__pyx_t_5numpy_int32_t *)__pyx_v_inner_indices->data);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":232
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":230
  *         self.raw_indices = <np.int32_t*>inner_indices.data
  * 
  *         self.tree = self.__build(0, self.n, self.raw_maxes, self.raw_mins)             # <<<<<<<<<<<<<<
@@ -2581,7 +2576,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":234
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":232
  *         self.tree = self.__build(0, self.n, self.raw_maxes, self.raw_mins)
  * 
  *     cdef innernode* __build(cKDTree self, int start_idx, int end_idx, double* maxes, double* mins):             # <<<<<<<<<<<<<<
@@ -2611,7 +2606,7 @@
   __Pyx_RefNannySetupContext("__build");
   __Pyx_INCREF((PyObject *)__pyx_v_self);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":240
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":238
  *         cdef double size, split, minval, maxval
  *         cdef double*mids
  *         if end_idx-start_idx<=self.leafsize:             # <<<<<<<<<<<<<<
@@ -2621,7 +2616,7 @@
   __pyx_t_1 = ((__pyx_v_end_idx - __pyx_v_start_idx) <= __pyx_v_self->leafsize);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":241
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":239
  *         cdef double*mids
  *         if end_idx-start_idx<=self.leafsize:
  *             n = <leafnode*>stdlib.malloc(sizeof(leafnode))             # <<<<<<<<<<<<<<
@@ -2630,7 +2625,7 @@
  */
     __pyx_v_n = ((struct __pyx_t_5scipy_7spatial_7ckdtree_leafnode *)malloc((sizeof(struct __pyx_t_5scipy_7spatial_7ckdtree_leafnode))));
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":242
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":240
  *         if end_idx-start_idx<=self.leafsize:
  *             n = <leafnode*>stdlib.malloc(sizeof(leafnode))
  *             n.split_dim = -1             # <<<<<<<<<<<<<<
@@ -2639,7 +2634,7 @@
  */
     __pyx_v_n->split_dim = -1;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":243
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":241
  *             n = <leafnode*>stdlib.malloc(sizeof(leafnode))
  *             n.split_dim = -1
  *             n.start_idx = start_idx             # <<<<<<<<<<<<<<
@@ -2648,7 +2643,7 @@
  */
     __pyx_v_n->start_idx = __pyx_v_start_idx;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":244
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":242
  *             n.split_dim = -1
  *             n.start_idx = start_idx
  *             n.end_idx = end_idx             # <<<<<<<<<<<<<<
@@ -2657,7 +2652,7 @@
  */
     __pyx_v_n->end_idx = __pyx_v_end_idx;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":245
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":243
  *             n.start_idx = start_idx
  *             n.end_idx = end_idx
  *             return <innernode*>n             # <<<<<<<<<<<<<<
@@ -2670,7 +2665,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":247
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":245
  *             return <innernode*>n
  *         else:
  *             d = 0             # <<<<<<<<<<<<<<
@@ -2679,7 +2674,7 @@
  */
     __pyx_v_d = 0;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":248
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":246
  *         else:
  *             d = 0
  *             size = 0             # <<<<<<<<<<<<<<
@@ -2688,7 +2683,7 @@
  */
     __pyx_v_size = 0;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":249
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":247
  *             d = 0
  *             size = 0
  *             for i in range(self.m):             # <<<<<<<<<<<<<<
@@ -2699,7 +2694,7 @@
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":250
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":248
  *             size = 0
  *             for i in range(self.m):
  *                 if maxes[i]-mins[i] > size:             # <<<<<<<<<<<<<<
@@ -2709,7 +2704,7 @@
       __pyx_t_1 = (((__pyx_v_maxes[__pyx_v_i]) - (__pyx_v_mins[__pyx_v_i])) > __pyx_v_size);
       if (__pyx_t_1) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":251
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":249
  *             for i in range(self.m):
  *                 if maxes[i]-mins[i] > size:
  *                     d = i             # <<<<<<<<<<<<<<
@@ -2718,7 +2713,7 @@
  */
         __pyx_v_d = __pyx_v_i;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":252
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":250
  *                 if maxes[i]-mins[i] > size:
  *                     d = i
  *                     size =  maxes[i]-mins[i]             # <<<<<<<<<<<<<<
@@ -2731,7 +2726,7 @@
       __pyx_L6:;
     }
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":253
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":251
  *                     d = i
  *                     size =  maxes[i]-mins[i]
  *             maxval = maxes[d]             # <<<<<<<<<<<<<<
@@ -2740,7 +2735,7 @@
  */
     __pyx_v_maxval = (__pyx_v_maxes[__pyx_v_d]);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":254
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":252
  *                     size =  maxes[i]-mins[i]
  *             maxval = maxes[d]
  *             minval = mins[d]             # <<<<<<<<<<<<<<
@@ -2749,7 +2744,7 @@
  */
     __pyx_v_minval = (__pyx_v_mins[__pyx_v_d]);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":255
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":253
  *             maxval = maxes[d]
  *             minval = mins[d]
  *             if maxval==minval:             # <<<<<<<<<<<<<<
@@ -2759,7 +2754,7 @@
     __pyx_t_1 = (__pyx_v_maxval == __pyx_v_minval);
     if (__pyx_t_1) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":257
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":255
  *             if maxval==minval:
  *                 # all points are identical; warn user?
  *                 n = <leafnode*>stdlib.malloc(sizeof(leafnode))             # <<<<<<<<<<<<<<
@@ -2768,7 +2763,7 @@
  */
       __pyx_v_n = ((struct __pyx_t_5scipy_7spatial_7ckdtree_leafnode *)malloc((sizeof(struct __pyx_t_5scipy_7spatial_7ckdtree_leafnode))));
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":258
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":256
  *                 # all points are identical; warn user?
  *                 n = <leafnode*>stdlib.malloc(sizeof(leafnode))
  *                 n.split_dim = -1             # <<<<<<<<<<<<<<
@@ -2777,7 +2772,7 @@
  */
       __pyx_v_n->split_dim = -1;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":259
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":257
  *                 n = <leafnode*>stdlib.malloc(sizeof(leafnode))
  *                 n.split_dim = -1
  *                 n.start_idx = start_idx             # <<<<<<<<<<<<<<
@@ -2786,7 +2781,7 @@
  */
       __pyx_v_n->start_idx = __pyx_v_start_idx;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":260
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":258
  *                 n.split_dim = -1
  *                 n.start_idx = start_idx
  *                 n.end_idx = end_idx             # <<<<<<<<<<<<<<
@@ -2795,7 +2790,7 @@
  */
       __pyx_v_n->end_idx = __pyx_v_end_idx;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":261
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":259
  *                 n.start_idx = start_idx
  *                 n.end_idx = end_idx
  *                 return <innernode*>n             # <<<<<<<<<<<<<<
@@ -2808,7 +2803,7 @@
     }
     __pyx_L7:;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":263
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":261
  *                 return <innernode*>n
  * 
  *             split = (maxval+minval)/2             # <<<<<<<<<<<<<<
@@ -2817,7 +2812,7 @@
  */
     __pyx_v_split = ((__pyx_v_maxval + __pyx_v_minval) / 2);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":265
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":263
  *             split = (maxval+minval)/2
  * 
  *             p = start_idx             # <<<<<<<<<<<<<<
@@ -2826,7 +2821,7 @@
  */
     __pyx_v_p = __pyx_v_start_idx;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":266
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":264
  * 
  *             p = start_idx
  *             q = end_idx-1             # <<<<<<<<<<<<<<
@@ -2835,7 +2830,7 @@
  */
     __pyx_v_q = (__pyx_v_end_idx - 1);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":267
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":265
  *             p = start_idx
  *             q = end_idx-1
  *             while p<=q:             # <<<<<<<<<<<<<<
@@ -2846,7 +2841,7 @@
       __pyx_t_1 = (__pyx_v_p <= __pyx_v_q);
       if (!__pyx_t_1) break;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":268
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":266
  *             q = end_idx-1
  *             while p<=q:
  *                 if self.raw_data[self.raw_indices[p]*self.m+d]<split:             # <<<<<<<<<<<<<<
@@ -2856,7 +2851,7 @@
       __pyx_t_1 = ((__pyx_v_self->raw_data[(((__pyx_v_self->raw_indices[__pyx_v_p]) * __pyx_v_self->m) + __pyx_v_d)]) < __pyx_v_split);
       if (__pyx_t_1) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":269
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":267
  *             while p<=q:
  *                 if self.raw_data[self.raw_indices[p]*self.m+d]<split:
  *                     p+=1             # <<<<<<<<<<<<<<
@@ -2867,7 +2862,7 @@
         goto __pyx_L10;
       }
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":270
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":268
  *                 if self.raw_data[self.raw_indices[p]*self.m+d]<split:
  *                     p+=1
  *                 elif self.raw_data[self.raw_indices[q]*self.m+d]>=split:             # <<<<<<<<<<<<<<
@@ -2877,7 +2872,7 @@
       __pyx_t_1 = ((__pyx_v_self->raw_data[(((__pyx_v_self->raw_indices[__pyx_v_q]) * __pyx_v_self->m) + __pyx_v_d)]) >= __pyx_v_split);
       if (__pyx_t_1) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":271
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":269
  *                     p+=1
  *                 elif self.raw_data[self.raw_indices[q]*self.m+d]>=split:
  *                     q-=1             # <<<<<<<<<<<<<<
@@ -2889,7 +2884,7 @@
       }
       /*else*/ {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":273
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":271
  *                     q-=1
  *                 else:
  *                     t = self.raw_indices[p]             # <<<<<<<<<<<<<<
@@ -2898,7 +2893,7 @@
  */
         __pyx_v_t = (__pyx_v_self->raw_indices[__pyx_v_p]);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":274
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":272
  *                 else:
  *                     t = self.raw_indices[p]
  *                     self.raw_indices[p] = self.raw_indices[q]             # <<<<<<<<<<<<<<
@@ -2907,7 +2902,7 @@
  */
         (__pyx_v_self->raw_indices[__pyx_v_p]) = (__pyx_v_self->raw_indices[__pyx_v_q]);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":275
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":273
  *                     t = self.raw_indices[p]
  *                     self.raw_indices[p] = self.raw_indices[q]
  *                     self.raw_indices[q] = t             # <<<<<<<<<<<<<<
@@ -2916,7 +2911,7 @@
  */
         (__pyx_v_self->raw_indices[__pyx_v_q]) = __pyx_v_t;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":276
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":274
  *                     self.raw_indices[p] = self.raw_indices[q]
  *                     self.raw_indices[q] = t
  *                     p+=1             # <<<<<<<<<<<<<<
@@ -2925,7 +2920,7 @@
  */
         __pyx_v_p += 1;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":277
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":275
  *                     self.raw_indices[q] = t
  *                     p+=1
  *                     q-=1             # <<<<<<<<<<<<<<
@@ -2937,7 +2932,7 @@
       __pyx_L10:;
     }
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":280
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":278
  * 
  *             # slide midpoint if necessary
  *             if p==start_idx:             # <<<<<<<<<<<<<<
@@ -2947,7 +2942,7 @@
     __pyx_t_1 = (__pyx_v_p == __pyx_v_start_idx);
     if (__pyx_t_1) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":282
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":280
  *             if p==start_idx:
  *                 # no points less than split
  *                 j = start_idx             # <<<<<<<<<<<<<<
@@ -2956,7 +2951,7 @@
  */
       __pyx_v_j = __pyx_v_start_idx;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":283
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":281
  *                 # no points less than split
  *                 j = start_idx
  *                 split = self.raw_data[self.raw_indices[j]*self.m+d]             # <<<<<<<<<<<<<<
@@ -2965,7 +2960,7 @@
  */
       __pyx_v_split = (__pyx_v_self->raw_data[(((__pyx_v_self->raw_indices[__pyx_v_j]) * __pyx_v_self->m) + __pyx_v_d)]);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":284
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":282
  *                 j = start_idx
  *                 split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 for i in range(start_idx+1, end_idx):             # <<<<<<<<<<<<<<
@@ -2976,7 +2971,7 @@
       for (__pyx_t_3 = (__pyx_v_start_idx + 1); __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
         __pyx_v_i = __pyx_t_3;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":285
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":283
  *                 split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 for i in range(start_idx+1, end_idx):
  *                     if self.raw_data[self.raw_indices[i]*self.m+d]<split:             # <<<<<<<<<<<<<<
@@ -2986,7 +2981,7 @@
         __pyx_t_1 = ((__pyx_v_self->raw_data[(((__pyx_v_self->raw_indices[__pyx_v_i]) * __pyx_v_self->m) + __pyx_v_d)]) < __pyx_v_split);
         if (__pyx_t_1) {
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":286
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":284
  *                 for i in range(start_idx+1, end_idx):
  *                     if self.raw_data[self.raw_indices[i]*self.m+d]<split:
  *                         j = i             # <<<<<<<<<<<<<<
@@ -2995,7 +2990,7 @@
  */
           __pyx_v_j = __pyx_v_i;
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":287
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":285
  *                     if self.raw_data[self.raw_indices[i]*self.m+d]<split:
  *                         j = i
  *                         split = self.raw_data[self.raw_indices[j]*self.m+d]             # <<<<<<<<<<<<<<
@@ -3008,7 +3003,7 @@
         __pyx_L14:;
       }
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":288
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":286
  *                         j = i
  *                         split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 t = self.raw_indices[start_idx]             # <<<<<<<<<<<<<<
@@ -3017,7 +3012,7 @@
  */
       __pyx_v_t = (__pyx_v_self->raw_indices[__pyx_v_start_idx]);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":289
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":287
  *                         split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 t = self.raw_indices[start_idx]
  *                 self.raw_indices[start_idx] = self.raw_indices[j]             # <<<<<<<<<<<<<<
@@ -3026,7 +3021,7 @@
  */
       (__pyx_v_self->raw_indices[__pyx_v_start_idx]) = (__pyx_v_self->raw_indices[__pyx_v_j]);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":290
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":288
  *                 t = self.raw_indices[start_idx]
  *                 self.raw_indices[start_idx] = self.raw_indices[j]
  *                 self.raw_indices[j] = t             # <<<<<<<<<<<<<<
@@ -3035,7 +3030,7 @@
  */
       (__pyx_v_self->raw_indices[__pyx_v_j]) = __pyx_v_t;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":291
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":289
  *                 self.raw_indices[start_idx] = self.raw_indices[j]
  *                 self.raw_indices[j] = t
  *                 p = start_idx+1             # <<<<<<<<<<<<<<
@@ -3044,7 +3039,7 @@
  */
       __pyx_v_p = (__pyx_v_start_idx + 1);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":292
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":290
  *                 self.raw_indices[j] = t
  *                 p = start_idx+1
  *                 q = start_idx             # <<<<<<<<<<<<<<
@@ -3055,7 +3050,7 @@
       goto __pyx_L11;
     }
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":293
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":291
  *                 p = start_idx+1
  *                 q = start_idx
  *             elif p==end_idx:             # <<<<<<<<<<<<<<
@@ -3065,7 +3060,7 @@
     __pyx_t_1 = (__pyx_v_p == __pyx_v_end_idx);
     if (__pyx_t_1) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":295
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":293
  *             elif p==end_idx:
  *                 # no points greater than split
  *                 j = end_idx-1             # <<<<<<<<<<<<<<
@@ -3074,7 +3069,7 @@
  */
       __pyx_v_j = (__pyx_v_end_idx - 1);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":296
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":294
  *                 # no points greater than split
  *                 j = end_idx-1
  *                 split = self.raw_data[self.raw_indices[j]*self.m+d]             # <<<<<<<<<<<<<<
@@ -3083,7 +3078,7 @@
  */
       __pyx_v_split = (__pyx_v_self->raw_data[(((__pyx_v_self->raw_indices[__pyx_v_j]) * __pyx_v_self->m) + __pyx_v_d)]);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":297
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":295
  *                 j = end_idx-1
  *                 split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 for i in range(start_idx, end_idx-1):             # <<<<<<<<<<<<<<
@@ -3094,7 +3089,7 @@
       for (__pyx_t_2 = __pyx_v_start_idx; __pyx_t_2 < __pyx_t_4; __pyx_t_2+=1) {
         __pyx_v_i = __pyx_t_2;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":298
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":296
  *                 split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 for i in range(start_idx, end_idx-1):
  *                     if self.raw_data[self.raw_indices[i]*self.m+d]>split:             # <<<<<<<<<<<<<<
@@ -3104,7 +3099,7 @@
         __pyx_t_1 = ((__pyx_v_self->raw_data[(((__pyx_v_self->raw_indices[__pyx_v_i]) * __pyx_v_self->m) + __pyx_v_d)]) > __pyx_v_split);
         if (__pyx_t_1) {
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":299
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":297
  *                 for i in range(start_idx, end_idx-1):
  *                     if self.raw_data[self.raw_indices[i]*self.m+d]>split:
  *                         j = i             # <<<<<<<<<<<<<<
@@ -3113,7 +3108,7 @@
  */
           __pyx_v_j = __pyx_v_i;
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":300
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":298
  *                     if self.raw_data[self.raw_indices[i]*self.m+d]>split:
  *                         j = i
  *                         split = self.raw_data[self.raw_indices[j]*self.m+d]             # <<<<<<<<<<<<<<
@@ -3126,7 +3121,7 @@
         __pyx_L17:;
       }
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":301
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":299
  *                         j = i
  *                         split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 t = self.raw_indices[end_idx-1]             # <<<<<<<<<<<<<<
@@ -3135,7 +3130,7 @@
  */
       __pyx_v_t = (__pyx_v_self->raw_indices[(__pyx_v_end_idx - 1)]);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":302
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":300
  *                         split = self.raw_data[self.raw_indices[j]*self.m+d]
  *                 t = self.raw_indices[end_idx-1]
  *                 self.raw_indices[end_idx-1] = self.raw_indices[j]             # <<<<<<<<<<<<<<
@@ -3144,7 +3139,7 @@
  */
       (__pyx_v_self->raw_indices[(__pyx_v_end_idx - 1)]) = (__pyx_v_self->raw_indices[__pyx_v_j]);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":303
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":301
  *                 t = self.raw_indices[end_idx-1]
  *                 self.raw_indices[end_idx-1] = self.raw_indices[j]
  *                 self.raw_indices[j] = t             # <<<<<<<<<<<<<<
@@ -3153,7 +3148,7 @@
  */
       (__pyx_v_self->raw_indices[__pyx_v_j]) = __pyx_v_t;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":304
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":302
  *                 self.raw_indices[end_idx-1] = self.raw_indices[j]
  *                 self.raw_indices[j] = t
  *                 p = end_idx-1             # <<<<<<<<<<<<<<
@@ -3162,7 +3157,7 @@
  */
       __pyx_v_p = (__pyx_v_end_idx - 1);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":305
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":303
  *                 self.raw_indices[j] = t
  *                 p = end_idx-1
  *                 q = end_idx-2             # <<<<<<<<<<<<<<
@@ -3174,7 +3169,7 @@
     }
     __pyx_L11:;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":308
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":306
  * 
  *             # construct new node representation
  *             ni = <innernode*>stdlib.malloc(sizeof(innernode))             # <<<<<<<<<<<<<<
@@ -3183,7 +3178,7 @@
  */
     __pyx_v_ni = ((struct __pyx_t_5scipy_7spatial_7ckdtree_innernode *)malloc((sizeof(struct __pyx_t_5scipy_7spatial_7ckdtree_innernode))));
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":310
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":308
  *             ni = <innernode*>stdlib.malloc(sizeof(innernode))
  * 
  *             mids = <double*>stdlib.malloc(sizeof(double)*self.m)             # <<<<<<<<<<<<<<
@@ -3192,7 +3187,7 @@
  */
     __pyx_v_mids = ((double *)malloc(((sizeof(double)) * __pyx_v_self->m)));
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":311
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":309
  * 
  *             mids = <double*>stdlib.malloc(sizeof(double)*self.m)
  *             for i in range(self.m):             # <<<<<<<<<<<<<<
@@ -3203,7 +3198,7 @@
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":312
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":310
  *             mids = <double*>stdlib.malloc(sizeof(double)*self.m)
  *             for i in range(self.m):
  *                 mids[i] = maxes[i]             # <<<<<<<<<<<<<<
@@ -3213,7 +3208,7 @@
       (__pyx_v_mids[__pyx_v_i]) = (__pyx_v_maxes[__pyx_v_i]);
     }
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":313
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":311
  *             for i in range(self.m):
  *                 mids[i] = maxes[i]
  *             mids[d] = split             # <<<<<<<<<<<<<<
@@ -3222,7 +3217,7 @@
  */
     (__pyx_v_mids[__pyx_v_d]) = __pyx_v_split;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":314
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":312
  *                 mids[i] = maxes[i]
  *             mids[d] = split
  *             ni.less = self.__build(start_idx,p,mids,mins)             # <<<<<<<<<<<<<<
@@ -3231,7 +3226,7 @@
  */
     __pyx_v_ni->less = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self->__pyx_vtab)->__build(__pyx_v_self, __pyx_v_start_idx, __pyx_v_p, __pyx_v_mids, __pyx_v_mins);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":316
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":314
  *             ni.less = self.__build(start_idx,p,mids,mins)
  * 
  *             for i in range(self.m):             # <<<<<<<<<<<<<<
@@ -3242,7 +3237,7 @@
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":317
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":315
  * 
  *             for i in range(self.m):
  *                 mids[i] = mins[i]             # <<<<<<<<<<<<<<
@@ -3252,7 +3247,7 @@
       (__pyx_v_mids[__pyx_v_i]) = (__pyx_v_mins[__pyx_v_i]);
     }
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":318
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":316
  *             for i in range(self.m):
  *                 mids[i] = mins[i]
  *             mids[d] = split             # <<<<<<<<<<<<<<
@@ -3261,7 +3256,7 @@
  */
     (__pyx_v_mids[__pyx_v_d]) = __pyx_v_split;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":319
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":317
  *                 mids[i] = mins[i]
  *             mids[d] = split
  *             ni.greater = self.__build(p,end_idx,maxes,mids)             # <<<<<<<<<<<<<<
@@ -3270,7 +3265,7 @@
  */
     __pyx_v_ni->greater = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self->__pyx_vtab)->__build(__pyx_v_self, __pyx_v_p, __pyx_v_end_idx, __pyx_v_maxes, __pyx_v_mids);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":321
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":319
  *             ni.greater = self.__build(p,end_idx,maxes,mids)
  * 
  *             stdlib.free(mids)             # <<<<<<<<<<<<<<
@@ -3279,7 +3274,7 @@
  */
     free(__pyx_v_mids);
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":323
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":321
  *             stdlib.free(mids)
  * 
  *             ni.split_dim = d             # <<<<<<<<<<<<<<
@@ -3288,7 +3283,7 @@
  */
     __pyx_v_ni->split_dim = __pyx_v_d;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":324
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":322
  * 
  *             ni.split_dim = d
  *             ni.split = split             # <<<<<<<<<<<<<<
@@ -3297,7 +3292,7 @@
  */
     __pyx_v_ni->split = __pyx_v_split;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":326
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":324
  *             ni.split = split
  * 
  *             return ni             # <<<<<<<<<<<<<<
@@ -3316,7 +3311,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":328
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":326
  *             return ni
  * 
  *     cdef __free_tree(cKDTree self, innernode* node):             # <<<<<<<<<<<<<<
@@ -3331,7 +3326,7 @@
   __Pyx_RefNannySetupContext("__free_tree");
   __Pyx_INCREF((PyObject *)__pyx_v_self);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":329
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":327
  * 
  *     cdef __free_tree(cKDTree self, innernode* node):
  *         if node.split_dim!=-1:             # <<<<<<<<<<<<<<
@@ -3341,32 +3336,32 @@
   __pyx_t_1 = (__pyx_v_node->split_dim != -1);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":330
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":328
  *     cdef __free_tree(cKDTree self, innernode* node):
  *         if node.split_dim!=-1:
  *             self.__free_tree(node.less)             # <<<<<<<<<<<<<<
  *             self.__free_tree(node.greater)
  *         stdlib.free(node)
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self->__pyx_vtab)->__free_tree(__pyx_v_self, __pyx_v_node->less); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self->__pyx_vtab)->__free_tree(__pyx_v_self, __pyx_v_node->less); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":331
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":329
  *         if node.split_dim!=-1:
  *             self.__free_tree(node.less)
  *             self.__free_tree(node.greater)             # <<<<<<<<<<<<<<
  *         stdlib.free(node)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self->__pyx_vtab)->__free_tree(__pyx_v_self, __pyx_v_node->greater); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self->__pyx_vtab)->__free_tree(__pyx_v_self, __pyx_v_node->greater); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":332
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":330
  *             self.__free_tree(node.less)
  *             self.__free_tree(node.greater)
  *         stdlib.free(node)             # <<<<<<<<<<<<<<
@@ -3388,7 +3383,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":334
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":332
  *         stdlib.free(node)
  * 
  *     def __dealloc__(cKDTree self):             # <<<<<<<<<<<<<<
@@ -3403,7 +3398,7 @@
   __Pyx_RefNannySetupContext("__dealloc__");
   __Pyx_INCREF((PyObject *)__pyx_v_self);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":335
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":333
  * 
  *     def __dealloc__(cKDTree self):
  *         if <int>(self.tree) == 0:             # <<<<<<<<<<<<<<
@@ -3413,7 +3408,7 @@
   __pyx_t_1 = (((int)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->tree) == 0);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":337
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":335
  *         if <int>(self.tree) == 0:
  *             # should happen only if __init__ was never called
  *             return             # <<<<<<<<<<<<<<
@@ -3425,14 +3420,14 @@
   }
   __pyx_L5:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":338
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":336
  *             # should happen only if __init__ was never called
  *             return
  *         self.__free_tree(self.tree)             # <<<<<<<<<<<<<<
  * 
  *     cdef void __query(cKDTree self,
  */
-  __pyx_t_2 = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->__pyx_vtab)->__free_tree(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self), ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->tree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->__pyx_vtab)->__free_tree(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self), ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->tree); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
@@ -3445,7 +3440,7 @@
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":340
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":338
  *         self.__free_tree(self.tree)
  * 
  *     cdef void __query(cKDTree self,             # <<<<<<<<<<<<<<
@@ -3483,29 +3478,29 @@
   __Pyx_RefNannySetupContext("__query");
   __Pyx_INCREF((PyObject *)__pyx_v_self);
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":371
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":369
  *         #  distances between the nearest side of the cell and the target
  *         #  the head node of the cell
  *         heapcreate(&q,12)             # <<<<<<<<<<<<<<
  * 
  *         # priority queue for the nearest neighbors
  */
-  __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heapcreate((&__pyx_v_q), 12); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heapcreate((&__pyx_v_q), 12); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":376
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":374
  *         # furthest known neighbor first
  *         # entries are (-distance**p, i)
  *         heapcreate(&neighbors,k)             # <<<<<<<<<<<<<<
  * 
  *         # set up first nodeinfo
  */
-  __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heapcreate((&__pyx_v_neighbors), __pyx_v_k); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heapcreate((&__pyx_v_neighbors), __pyx_v_k); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":379
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":377
  * 
  *         # set up first nodeinfo
  *         inf = <nodeinfo*>stdlib.malloc(sizeof(nodeinfo)+self.m*sizeof(double))             # <<<<<<<<<<<<<<
@@ -3514,7 +3509,7 @@
  */
   __pyx_v_inf = ((struct __pyx_t_5scipy_7spatial_7ckdtree_nodeinfo *)malloc(((sizeof(struct __pyx_t_5scipy_7spatial_7ckdtree_nodeinfo)) + (__pyx_v_self->m * (sizeof(double))))));
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":380
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":378
  *         # set up first nodeinfo
  *         inf = <nodeinfo*>stdlib.malloc(sizeof(nodeinfo)+self.m*sizeof(double))
  *         inf.node = self.tree             # <<<<<<<<<<<<<<
@@ -3523,7 +3518,7 @@
  */
   __pyx_v_inf->node = __pyx_v_self->tree;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":381
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":379
  *         inf = <nodeinfo*>stdlib.malloc(sizeof(nodeinfo)+self.m*sizeof(double))
  *         inf.node = self.tree
  *         for i in range(self.m):             # <<<<<<<<<<<<<<
@@ -3534,7 +3529,7 @@
   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
     __pyx_v_i = __pyx_t_3;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":382
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":380
  *         inf.node = self.tree
  *         for i in range(self.m):
  *             inf.side_distances[i] = 0             # <<<<<<<<<<<<<<
@@ -3543,7 +3538,7 @@
  */
     (__pyx_v_inf->side_distances[__pyx_v_i]) = 0;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":383
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":381
  *         for i in range(self.m):
  *             inf.side_distances[i] = 0
  *             t = x[i]-self.raw_maxes[i]             # <<<<<<<<<<<<<<
@@ -3552,7 +3547,7 @@
  */
     __pyx_v_t = ((__pyx_v_x[__pyx_v_i]) - (__pyx_v_self->raw_maxes[__pyx_v_i]));
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":384
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":382
  *             inf.side_distances[i] = 0
  *             t = x[i]-self.raw_maxes[i]
  *             if t>inf.side_distances[i]:             # <<<<<<<<<<<<<<
@@ -3562,7 +3557,7 @@
     __pyx_t_4 = (__pyx_v_t > (__pyx_v_inf->side_distances[__pyx_v_i]));
     if (__pyx_t_4) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":385
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":383
  *             t = x[i]-self.raw_maxes[i]
  *             if t>inf.side_distances[i]:
  *                 inf.side_distances[i] = t             # <<<<<<<<<<<<<<
@@ -3574,7 +3569,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":387
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":385
  *                 inf.side_distances[i] = t
  *             else:
  *                 t = self.raw_mins[i]-x[i]             # <<<<<<<<<<<<<<
@@ -3583,7 +3578,7 @@
  */
       __pyx_v_t = ((__pyx_v_self->raw_mins[__pyx_v_i]) - (__pyx_v_x[__pyx_v_i]));
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":388
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":386
  *             else:
  *                 t = self.raw_mins[i]-x[i]
  *                 if t>inf.side_distances[i]:             # <<<<<<<<<<<<<<
@@ -3593,7 +3588,7 @@
       __pyx_t_4 = (__pyx_v_t > (__pyx_v_inf->side_distances[__pyx_v_i]));
       if (__pyx_t_4) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":389
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":387
  *                 t = self.raw_mins[i]-x[i]
  *                 if t>inf.side_distances[i]:
  *                     inf.side_distances[i] = t             # <<<<<<<<<<<<<<
@@ -3607,7 +3602,7 @@
     }
     __pyx_L5:;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":390
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":388
  *                 if t>inf.side_distances[i]:
  *                     inf.side_distances[i] = t
  *             if p!=1 and p!=infinity:             # <<<<<<<<<<<<<<
@@ -3623,7 +3618,7 @@
     }
     if (__pyx_t_6) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":391
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":389
  *                     inf.side_distances[i] = t
  *             if p!=1 and p!=infinity:
  *                 inf.side_distances[i]=inf.side_distances[i]**p             # <<<<<<<<<<<<<<
@@ -3636,7 +3631,7 @@
     __pyx_L7:;
   }
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":394
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":392
  * 
  *         # compute first distance
  *         min_distance = 0.             # <<<<<<<<<<<<<<
@@ -3645,7 +3640,7 @@
  */
   __pyx_v_min_distance = 0.0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":395
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":393
  *         # compute first distance
  *         min_distance = 0.
  *         for i in range(self.m):             # <<<<<<<<<<<<<<
@@ -3656,7 +3651,7 @@
   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
     __pyx_v_i = __pyx_t_3;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":396
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":394
  *         min_distance = 0.
  *         for i in range(self.m):
  *             if p==infinity:             # <<<<<<<<<<<<<<
@@ -3666,7 +3661,7 @@
     __pyx_t_6 = (__pyx_v_p == __pyx_v_5scipy_7spatial_7ckdtree_infinity);
     if (__pyx_t_6) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":397
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":395
  *         for i in range(self.m):
  *             if p==infinity:
  *                 min_distance = dmax(min_distance,inf.side_distances[i])             # <<<<<<<<<<<<<<
@@ -3678,7 +3673,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":399
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":397
  *                 min_distance = dmax(min_distance,inf.side_distances[i])
  *             else:
  *                 min_distance += inf.side_distances[i]             # <<<<<<<<<<<<<<
@@ -3690,7 +3685,7 @@
     __pyx_L10:;
   }
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":402
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":400
  * 
  *         # fiddle approximation factor
  *         if eps==0:             # <<<<<<<<<<<<<<
@@ -3700,7 +3695,7 @@
   __pyx_t_6 = (__pyx_v_eps == 0);
   if (__pyx_t_6) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":403
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":401
  *         # fiddle approximation factor
  *         if eps==0:
  *             epsfac=1             # <<<<<<<<<<<<<<
@@ -3711,7 +3706,7 @@
     goto __pyx_L11;
   }
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":404
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":402
  *         if eps==0:
  *             epsfac=1
  *         elif p==infinity:             # <<<<<<<<<<<<<<
@@ -3721,7 +3716,7 @@
   __pyx_t_6 = (__pyx_v_p == __pyx_v_5scipy_7spatial_7ckdtree_infinity);
   if (__pyx_t_6) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":405
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":403
  *             epsfac=1
  *         elif p==infinity:
  *             epsfac = 1/(1+eps)             # <<<<<<<<<<<<<<
@@ -3731,14 +3726,14 @@
     __pyx_t_7 = (1 + __pyx_v_eps);
     if (unlikely(__pyx_t_7 == 0)) {
       PyErr_Format(PyExc_ZeroDivisionError, "float division");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_v_epsfac = (1 / __pyx_t_7);
     goto __pyx_L11;
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":407
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":405
  *             epsfac = 1/(1+eps)
  *         else:
  *             epsfac = 1/(1+eps)**p             # <<<<<<<<<<<<<<
@@ -3748,13 +3743,13 @@
     __pyx_t_7 = pow((1 + __pyx_v_eps), __pyx_v_p);
     if (unlikely(__pyx_t_7 == 0)) {
       PyErr_Format(PyExc_ZeroDivisionError, "float division");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_v_epsfac = (1 / __pyx_t_7);
   }
   __pyx_L11:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":410
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":408
  * 
  *         # internally we represent all distances as distance**p
  *         if p!=infinity and distance_upper_bound!=infinity:             # <<<<<<<<<<<<<<
@@ -3770,7 +3765,7 @@
   }
   if (__pyx_t_5) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":411
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":409
  *         # internally we represent all distances as distance**p
  *         if p!=infinity and distance_upper_bound!=infinity:
  *             distance_upper_bound = distance_upper_bound**p             # <<<<<<<<<<<<<<
@@ -3782,7 +3777,7 @@
   }
   __pyx_L12:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":413
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":411
  *             distance_upper_bound = distance_upper_bound**p
  * 
  *         while True:             # <<<<<<<<<<<<<<
@@ -3793,7 +3788,7 @@
     __pyx_t_5 = 1;
     if (!__pyx_t_5) break;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":414
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":412
  * 
  *         while True:
  *             if inf.node.split_dim==-1:             # <<<<<<<<<<<<<<
@@ -3803,7 +3798,7 @@
     __pyx_t_5 = (__pyx_v_inf->node->split_dim == -1);
     if (__pyx_t_5) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":415
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":413
  *         while True:
  *             if inf.node.split_dim==-1:
  *                 node = <leafnode*>inf.node             # <<<<<<<<<<<<<<
@@ -3812,7 +3807,7 @@
  */
       __pyx_v_node = ((struct __pyx_t_5scipy_7spatial_7ckdtree_leafnode *)__pyx_v_inf->node);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":418
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":416
  * 
  *                 # brute-force
  *                 for i in range(node.start_idx,node.end_idx):             # <<<<<<<<<<<<<<
@@ -3823,7 +3818,7 @@
       for (__pyx_t_3 = __pyx_v_node->start_idx; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
         __pyx_v_i = __pyx_t_3;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":421
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":419
  *                     d = _distance_p(
  *                             self.raw_data+self.raw_indices[i]*self.m,
  *                             x,p,self.m,distance_upper_bound)             # <<<<<<<<<<<<<<
@@ -3832,7 +3827,7 @@
  */
         __pyx_v_d = __pyx_f_5scipy_7spatial_7ckdtree__distance_p((__pyx_v_self->raw_data + ((__pyx_v_self->raw_indices[__pyx_v_i]) * __pyx_v_self->m)), __pyx_v_x, __pyx_v_p, __pyx_v_self->m, __pyx_v_distance_upper_bound);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":423
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":421
  *                             x,p,self.m,distance_upper_bound)
  * 
  *                     if d<distance_upper_bound:             # <<<<<<<<<<<<<<
@@ -3842,7 +3837,7 @@
         __pyx_t_5 = (__pyx_v_d < __pyx_v_distance_upper_bound);
         if (__pyx_t_5) {
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":425
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":423
  *                     if d<distance_upper_bound:
  *                         # replace furthest neighbor
  *                         if neighbors.n==k:             # <<<<<<<<<<<<<<
@@ -3852,21 +3847,21 @@
           __pyx_t_5 = (__pyx_v_neighbors.n == __pyx_v_k);
           if (__pyx_t_5) {
 
-            /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":426
+            /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":424
  *                         # replace furthest neighbor
  *                         if neighbors.n==k:
  *                             heapremove(&neighbors)             # <<<<<<<<<<<<<<
  *                         neighbor.priority = -d
  *                         neighbor.contents.intdata = self.raw_indices[i]
  */
-            __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heapremove((&__pyx_v_neighbors)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heapremove((&__pyx_v_neighbors)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_1);
             __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
             goto __pyx_L19;
           }
           __pyx_L19:;
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":427
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":425
  *                         if neighbors.n==k:
  *                             heapremove(&neighbors)
  *                         neighbor.priority = -d             # <<<<<<<<<<<<<<
@@ -3875,7 +3870,7 @@
  */
           __pyx_v_neighbor.priority = (-__pyx_v_d);
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":428
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":426
  *                             heapremove(&neighbors)
  *                         neighbor.priority = -d
  *                         neighbor.contents.intdata = self.raw_indices[i]             # <<<<<<<<<<<<<<
@@ -3884,18 +3879,18 @@
  */
           __pyx_v_neighbor.contents.intdata = (__pyx_v_self->raw_indices[__pyx_v_i]);
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":429
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":427
  *                         neighbor.priority = -d
  *                         neighbor.contents.intdata = self.raw_indices[i]
  *                         heappush(&neighbors,neighbor)             # <<<<<<<<<<<<<<
  * 
  *                         # adjust upper bound for efficiency
  */
-          __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heappush((&__pyx_v_neighbors), __pyx_v_neighbor); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heappush((&__pyx_v_neighbors), __pyx_v_neighbor); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_1);
           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":432
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":430
  * 
  *                         # adjust upper bound for efficiency
  *                         if neighbors.n==k:             # <<<<<<<<<<<<<<
@@ -3905,7 +3900,7 @@
           __pyx_t_5 = (__pyx_v_neighbors.n == __pyx_v_k);
           if (__pyx_t_5) {
 
-            /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":433
+            /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":431
  *                         # adjust upper bound for efficiency
  *                         if neighbors.n==k:
  *                             distance_upper_bound = -heappeek(&neighbors).priority             # <<<<<<<<<<<<<<
@@ -3921,7 +3916,7 @@
         __pyx_L18:;
       }
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":435
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":433
  *                             distance_upper_bound = -heappeek(&neighbors).priority
  *                 # done with this node, get another
  *                 stdlib.free(inf)             # <<<<<<<<<<<<<<
@@ -3930,7 +3925,7 @@
  */
       free(__pyx_v_inf);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":436
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":434
  *                 # done with this node, get another
  *                 stdlib.free(inf)
  *                 if q.n==0:             # <<<<<<<<<<<<<<
@@ -3940,7 +3935,7 @@
       __pyx_t_5 = (__pyx_v_q.n == 0);
       if (__pyx_t_5) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":438
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":436
  *                 if q.n==0:
  *                     # no more nodes to visit
  *                     break             # <<<<<<<<<<<<<<
@@ -3952,7 +3947,7 @@
       }
       /*else*/ {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":440
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":438
  *                     break
  *                 else:
  *                     it = heappop(&q)             # <<<<<<<<<<<<<<
@@ -3961,7 +3956,7 @@
  */
         __pyx_v_it = __pyx_f_5scipy_7spatial_7ckdtree_heappop((&__pyx_v_q));
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":441
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":439
  *                 else:
  *                     it = heappop(&q)
  *                     inf = <nodeinfo*>it.contents.ptrdata             # <<<<<<<<<<<<<<
@@ -3970,7 +3965,7 @@
  */
         __pyx_v_inf = ((struct __pyx_t_5scipy_7spatial_7ckdtree_nodeinfo *)__pyx_v_it.contents.ptrdata);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":442
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":440
  *                     it = heappop(&q)
  *                     inf = <nodeinfo*>it.contents.ptrdata
  *                     min_distance = it.priority             # <<<<<<<<<<<<<<
@@ -3984,7 +3979,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":444
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":442
  *                     min_distance = it.priority
  *             else:
  *                 inode = <innernode*>inf.node             # <<<<<<<<<<<<<<
@@ -3993,7 +3988,7 @@
  */
       __pyx_v_inode = ((struct __pyx_t_5scipy_7spatial_7ckdtree_innernode *)__pyx_v_inf->node);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":449
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":447
  *                 # but since the distance_upper_bound decreases, we might get
  *                 # here even if the cell's too far
  *                 if min_distance>distance_upper_bound*epsfac:             # <<<<<<<<<<<<<<
@@ -4003,7 +3998,7 @@
       __pyx_t_5 = (__pyx_v_min_distance > (__pyx_v_distance_upper_bound * __pyx_v_epsfac));
       if (__pyx_t_5) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":451
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":449
  *                 if min_distance>distance_upper_bound*epsfac:
  *                     # since this is the nearest cell, we're done, bail out
  *                     stdlib.free(inf)             # <<<<<<<<<<<<<<
@@ -4012,7 +4007,7 @@
  */
         free(__pyx_v_inf);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":453
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":451
  *                     stdlib.free(inf)
  *                     # free all the nodes still on the heap
  *                     for i in range(q.n):             # <<<<<<<<<<<<<<
@@ -4023,7 +4018,7 @@
         for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
           __pyx_v_i = __pyx_t_3;
 
-          /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":454
+          /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":452
  *                     # free all the nodes still on the heap
  *                     for i in range(q.n):
  *                         stdlib.free(q.heap[i].contents.ptrdata)             # <<<<<<<<<<<<<<
@@ -4033,7 +4028,7 @@
           free((__pyx_v_q.heap[__pyx_v_i]).contents.ptrdata);
         }
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":455
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":453
  *                     for i in range(q.n):
  *                         stdlib.free(q.heap[i].contents.ptrdata)
  *                     break             # <<<<<<<<<<<<<<
@@ -4045,7 +4040,7 @@
       }
       __pyx_L22:;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":458
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":456
  * 
  *                 # set up children for searching
  *                 if x[inode.split_dim]<inode.split:             # <<<<<<<<<<<<<<
@@ -4055,7 +4050,7 @@
       __pyx_t_5 = ((__pyx_v_x[__pyx_v_inode->split_dim]) < __pyx_v_inode->split);
       if (__pyx_t_5) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":459
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":457
  *                 # set up children for searching
  *                 if x[inode.split_dim]<inode.split:
  *                     near = inode.less             # <<<<<<<<<<<<<<
@@ -4064,7 +4059,7 @@
  */
         __pyx_v_near = __pyx_v_inode->less;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":460
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":458
  *                 if x[inode.split_dim]<inode.split:
  *                     near = inode.less
  *                     far = inode.greater             # <<<<<<<<<<<<<<
@@ -4076,7 +4071,7 @@
       }
       /*else*/ {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":462
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":460
  *                     far = inode.greater
  *                 else:
  *                     near = inode.greater             # <<<<<<<<<<<<<<
@@ -4085,7 +4080,7 @@
  */
         __pyx_v_near = __pyx_v_inode->greater;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":463
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":461
  *                 else:
  *                     near = inode.greater
  *                     far = inode.less             # <<<<<<<<<<<<<<
@@ -4096,7 +4091,7 @@
       }
       __pyx_L25:;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":468
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":466
  *                 # we're going here next, so no point pushing it on the queue
  *                 # no need to recompute the distance or the side_distances
  *                 inf.node = near             # <<<<<<<<<<<<<<
@@ -4105,7 +4100,7 @@
  */
       __pyx_v_inf->node = __pyx_v_near;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":473
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":471
  *                 # on the split value; compute its distance and side_distances
  *                 # and push it on the queue if it's near enough
  *                 inf2 = <nodeinfo*>stdlib.malloc(sizeof(nodeinfo)+self.m*sizeof(double))             # <<<<<<<<<<<<<<
@@ -4114,7 +4109,7 @@
  */
       __pyx_v_inf2 = ((struct __pyx_t_5scipy_7spatial_7ckdtree_nodeinfo *)malloc(((sizeof(struct __pyx_t_5scipy_7spatial_7ckdtree_nodeinfo)) + (__pyx_v_self->m * (sizeof(double))))));
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":474
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":472
  *                 # and push it on the queue if it's near enough
  *                 inf2 = <nodeinfo*>stdlib.malloc(sizeof(nodeinfo)+self.m*sizeof(double))
  *                 it2.contents.ptrdata = <char*> inf2             # <<<<<<<<<<<<<<
@@ -4123,7 +4118,7 @@
  */
       __pyx_v_it2.contents.ptrdata = ((char *)__pyx_v_inf2);
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":475
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":473
  *                 inf2 = <nodeinfo*>stdlib.malloc(sizeof(nodeinfo)+self.m*sizeof(double))
  *                 it2.contents.ptrdata = <char*> inf2
  *                 inf2.node = far             # <<<<<<<<<<<<<<
@@ -4132,7 +4127,7 @@
  */
       __pyx_v_inf2->node = __pyx_v_far;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":477
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":475
  *                 inf2.node = far
  *                 # most side distances unchanged
  *                 for i in range(self.m):             # <<<<<<<<<<<<<<
@@ -4143,7 +4138,7 @@
       for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
         __pyx_v_i = __pyx_t_3;
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":478
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":476
  *                 # most side distances unchanged
  *                 for i in range(self.m):
  *                     inf2.side_distances[i] = inf.side_distances[i]             # <<<<<<<<<<<<<<
@@ -4153,7 +4148,7 @@
         (__pyx_v_inf2->side_distances[__pyx_v_i]) = (__pyx_v_inf->side_distances[__pyx_v_i]);
       }
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":482
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":480
  *                 # one side distance changes
  *                 # we can adjust the minimum distance without recomputing
  *                 if p == infinity:             # <<<<<<<<<<<<<<
@@ -4163,7 +4158,7 @@
       __pyx_t_5 = (__pyx_v_p == __pyx_v_5scipy_7spatial_7ckdtree_infinity);
       if (__pyx_t_5) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":485
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":483
  *                     # we never use side_distances in the l_infinity case
  *                     # inf2.side_distances[inode.split_dim] = dabs(inode.split-x[inode.split_dim])
  *                     far_min_distance = dmax(min_distance, dabs(inode.split-x[inode.split_dim]))             # <<<<<<<<<<<<<<
@@ -4174,7 +4169,7 @@
         goto __pyx_L28;
       }
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":486
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":484
  *                     # inf2.side_distances[inode.split_dim] = dabs(inode.split-x[inode.split_dim])
  *                     far_min_distance = dmax(min_distance, dabs(inode.split-x[inode.split_dim]))
  *                 elif p == 1:             # <<<<<<<<<<<<<<
@@ -4184,7 +4179,7 @@
       __pyx_t_5 = (__pyx_v_p == 1);
       if (__pyx_t_5) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":487
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":485
  *                     far_min_distance = dmax(min_distance, dabs(inode.split-x[inode.split_dim]))
  *                 elif p == 1:
  *                     inf2.side_distances[inode.split_dim] = dabs(inode.split-x[inode.split_dim])             # <<<<<<<<<<<<<<
@@ -4193,7 +4188,7 @@
  */
         (__pyx_v_inf2->side_distances[__pyx_v_inode->split_dim]) = __pyx_f_5scipy_7spatial_7ckdtree_dabs((__pyx_v_inode->split - (__pyx_v_x[__pyx_v_inode->split_dim])));
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":488
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":486
  *                 elif p == 1:
  *                     inf2.side_distances[inode.split_dim] = dabs(inode.split-x[inode.split_dim])
  *                     far_min_distance = min_distance - inf.side_distances[inode.split_dim] + inf2.side_distances[inode.split_dim]             # <<<<<<<<<<<<<<
@@ -4205,7 +4200,7 @@
       }
       /*else*/ {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":490
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":488
  *                     far_min_distance = min_distance - inf.side_distances[inode.split_dim] + inf2.side_distances[inode.split_dim]
  *                 else:
  *                     inf2.side_distances[inode.split_dim] = dabs(inode.split-x[inode.split_dim])**p             # <<<<<<<<<<<<<<
@@ -4214,7 +4209,7 @@
  */
         (__pyx_v_inf2->side_distances[__pyx_v_inode->split_dim]) = pow(__pyx_f_5scipy_7spatial_7ckdtree_dabs((__pyx_v_inode->split - (__pyx_v_x[__pyx_v_inode->split_dim]))), __pyx_v_p);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":491
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":489
  *                 else:
  *                     inf2.side_distances[inode.split_dim] = dabs(inode.split-x[inode.split_dim])**p
  *                     far_min_distance = min_distance - inf.side_distances[inode.split_dim] + inf2.side_distances[inode.split_dim]             # <<<<<<<<<<<<<<
@@ -4225,7 +4220,7 @@
       }
       __pyx_L28:;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":493
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":491
  *                     far_min_distance = min_distance - inf.side_distances[inode.split_dim] + inf2.side_distances[inode.split_dim]
  * 
  *                 it2.priority = far_min_distance             # <<<<<<<<<<<<<<
@@ -4234,7 +4229,7 @@
  */
       __pyx_v_it2.priority = __pyx_v_far_min_distance;
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":497
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":495
  * 
  *                 # far child might be too far, if so, don't bother pushing it
  *                 if far_min_distance<=distance_upper_bound*epsfac:             # <<<<<<<<<<<<<<
@@ -4244,21 +4239,21 @@
       __pyx_t_5 = (__pyx_v_far_min_distance <= (__pyx_v_distance_upper_bound * __pyx_v_epsfac));
       if (__pyx_t_5) {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":498
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":496
  *                 # far child might be too far, if so, don't bother pushing it
  *                 if far_min_distance<=distance_upper_bound*epsfac:
  *                     heappush(&q,it2)             # <<<<<<<<<<<<<<
  *                 else:
  *                     stdlib.free(inf2)
  */
-        __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heappush((&__pyx_v_q), __pyx_v_it2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = __pyx_f_5scipy_7spatial_7ckdtree_heappush((&__pyx_v_q), __pyx_v_it2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         goto __pyx_L29;
       }
       /*else*/ {
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":500
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":498
  *                     heappush(&q,it2)
  *                 else:
  *                     stdlib.free(inf2)             # <<<<<<<<<<<<<<
@@ -4267,7 +4262,7 @@
  */
         free(__pyx_v_inf2);
 
-        /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":502
+        /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":500
  *                     stdlib.free(inf2)
  *                     # just in case
  *                     it2.contents.ptrdata = <char*> 0             # <<<<<<<<<<<<<<
@@ -4282,16 +4277,16 @@
   }
   __pyx_L14_break:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":505
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":503
  * 
  *         # fill output arrays with sorted neighbors
  *         for i in range(neighbors.n-1,-1,-1):             # <<<<<<<<<<<<<<
  *             neighbor = heappop(&neighbors) # FIXME: neighbors may be realloced
  *             result_indices[i] = neighbor.contents.intdata
  */
-  __pyx_t_1 = PyInt_FromLong((__pyx_v_neighbors.n - 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyInt_FromLong((__pyx_v_neighbors.n - 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
@@ -4302,13 +4297,13 @@
   PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_int_neg_1);
   __Pyx_GIVEREF(__pyx_int_neg_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(__pyx_builtin_range, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_builtin_range, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
     __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_1; __Pyx_INCREF(__pyx_t_9);
   } else {
-    __pyx_t_8 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_9);
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -4322,16 +4317,16 @@
     } else {
       __pyx_t_1 = PyIter_Next(__pyx_t_9);
       if (!__pyx_t_1) {
-        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         break;
       }
       __Pyx_GOTREF(__pyx_t_1);
     }
-    __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_v_i = __pyx_t_2;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":506
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":504
  *         # fill output arrays with sorted neighbors
  *         for i in range(neighbors.n-1,-1,-1):
  *             neighbor = heappop(&neighbors) # FIXME: neighbors may be realloced             # <<<<<<<<<<<<<<
@@ -4340,7 +4335,7 @@
  */
     __pyx_v_neighbor = __pyx_f_5scipy_7spatial_7ckdtree_heappop((&__pyx_v_neighbors));
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":507
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":505
  *         for i in range(neighbors.n-1,-1,-1):
  *             neighbor = heappop(&neighbors) # FIXME: neighbors may be realloced
  *             result_indices[i] = neighbor.contents.intdata             # <<<<<<<<<<<<<<
@@ -4349,7 +4344,7 @@
  */
     (__pyx_v_result_indices[__pyx_v_i]) = __pyx_v_neighbor.contents.intdata;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":508
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":506
  *             neighbor = heappop(&neighbors) # FIXME: neighbors may be realloced
  *             result_indices[i] = neighbor.contents.intdata
  *             if p==1 or p==infinity:             # <<<<<<<<<<<<<<
@@ -4365,7 +4360,7 @@
     }
     if (__pyx_t_4) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":509
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":507
  *             result_indices[i] = neighbor.contents.intdata
  *             if p==1 or p==infinity:
  *                 result_distances[i] = -neighbor.priority             # <<<<<<<<<<<<<<
@@ -4377,7 +4372,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":511
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":509
  *                 result_distances[i] = -neighbor.priority
  *             else:
  *                 result_distances[i] = (-neighbor.priority)**(1./p)             # <<<<<<<<<<<<<<
@@ -4386,7 +4381,7 @@
  */
       if (unlikely(__pyx_v_p == 0)) {
         PyErr_Format(PyExc_ZeroDivisionError, "float division");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       (__pyx_v_result_distances[__pyx_v_i]) = pow((-__pyx_v_neighbor.priority), (1.0 / __pyx_v_p));
     }
@@ -4394,25 +4389,25 @@
   }
   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":513
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":511
  *                 result_distances[i] = (-neighbor.priority)**(1./p)
  * 
  *         heapdestroy(&q)             # <<<<<<<<<<<<<<
  *         heapdestroy(&neighbors)
  * 
  */
-  __pyx_t_9 = __pyx_f_5scipy_7spatial_7ckdtree_heapdestroy((&__pyx_v_q)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __pyx_f_5scipy_7spatial_7ckdtree_heapdestroy((&__pyx_v_q)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":514
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":512
  * 
  *         heapdestroy(&q)
  *         heapdestroy(&neighbors)             # <<<<<<<<<<<<<<
  * 
  *     def query(cKDTree self, object x, int k=1, double eps=0, double p=2,
  */
-  __pyx_t_9 = __pyx_f_5scipy_7spatial_7ckdtree_heapdestroy((&__pyx_v_neighbors)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __pyx_f_5scipy_7spatial_7ckdtree_heapdestroy((&__pyx_v_neighbors)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 
@@ -4426,16 +4421,16 @@
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":516
+/* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":514
  *         heapdestroy(&neighbors)
  * 
  *     def query(cKDTree self, object x, int k=1, double eps=0, double p=2,             # <<<<<<<<<<<<<<
  *             double distance_upper_bound=infinity):
- *         """query the kd-tree for nearest neighbors
+ *         """Query the kd-tree for nearest neighbors.
  */
 
 static PyObject *__pyx_pf_5scipy_7spatial_7ckdtree_7cKDTree_query(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_5scipy_7spatial_7ckdtree_7cKDTree_query[] = "query the kd-tree for nearest neighbors\n\n        Parameters:\n        ===========\n\n        x : array-like, last dimension self.m\n            An array of points to query.\n        k : integer\n            The number of nearest neighbors to return.\n        eps : nonnegative float\n            Return approximate nearest neighbors; the kth returned value \n            is guaranteed to be no further than (1+eps) times the \n            distance to the real kth nearest neighbor.\n        p : float, 1<=p<=infinity\n            Which Minkowski p-norm to use. \n            1 is the sum-of-absolute-values \"Manhattan\" distance\n            2 is the usual Euclidean distance\n            infinity is the maximum-coordinate-difference distance\n        distance_upper_bound : nonnegative float\n            Return only neighbors within this distance. This is used to prune\n            tree searches, so if you are doing a series of nearest-neighbor\n            queries, it may help to supply the distance to the nearest neighbor\n            of the most recent point.\n\n        Returns:\n        ========\n        \n        d : array of floats\n            The distances to the nearest neighbors. \n            If x has shape tuple+(self.m,), then d has shape tuple+(k,).\n            Missing neighbors are indicated with infinite distances.\n        i : array of integers\n            The locations of the neighbors in self.data.\n            If x has shape tuple+(self.m,), then i has shape tuple+(k,).\n            Missing neighbors are indicated with self.n.\n        ";
+static char __pyx_doc_5scipy_7spatial_7ckdtree_7cKDTree_query[] = "Query the kd-tree for nearest neighbors.\n\n        Parameters\n        ----------\n        x : array_like, last dimension self.m\n            An array of points to query.\n        k : int\n            The number of nearest neighbors to return.\n        eps : nonnegative float\n            Return approximate nearest neighbors; the kth returned value \n            is guaranteed to be no further than (1+eps) times the \n            distance to the real kth nearest neighbor.\n        p : float, 1<=p<=infinity\n            Which Minkowski p-norm to use. \n            1 is the sum-of-absolute-values \"Manhattan\" distance\n            2 is the usual Euclidean distance\n            infinity is the maximum-coordinate-difference distance\n        distance_upper_bound : nonnegative float\n            Return only neighbors within this distance. This is used to prune\n            tree searches, so if you are doing a series of nearest-neighbor\n            queries, it may help to supply the distance to the nearest neighbor\n            of the most recent point.\n\n        Returns\n        -------\n        d : ndarray of floats\n            The distances to the nearest neighbors. \n            If x has shape tuple+(self.m,), then d has shape tuple+(k,).\n            Missing neighbors are indicated with infinite distances.\n        i : ndarray of ints\n            The locations of the neighbors in self.data.\n            If x has shape tuple+(self.m,), then i has shape tuple+(k,).\n            Missing neighbors are indicated with self.n.\n\n        ";
 static PyObject *__pyx_pf_5scipy_7spatial_7ckdtree_7cKDTree_query(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   PyObject *__pyx_v_x = 0;
   int __pyx_v_k;
@@ -4525,26 +4520,26 @@
       }
     }
     if (unlikely(kw_args > 0)) {
-      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "query") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "query") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     }
     __pyx_v_x = values[0];
     if (values[1]) {
-      __pyx_v_k = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_k == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_k = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_k == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_k = ((int)1);
     }
     if (values[2]) {
-      __pyx_v_eps = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_eps == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_eps = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_eps == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_eps = ((double)0);
     }
     if (values[3]) {
-      __pyx_v_p = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_p = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_p = ((double)2);
     }
     if (values[4]) {
-      __pyx_v_distance_upper_bound = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_distance_upper_bound == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_distance_upper_bound = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_distance_upper_bound == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_distance_upper_bound = __pyx_k_4;
     }
@@ -4554,10 +4549,10 @@
     __pyx_v_p = ((double)2);
     __pyx_v_distance_upper_bound = __pyx_k_4;
     switch (PyTuple_GET_SIZE(__pyx_args)) {
-      case  5: __pyx_v_distance_upper_bound = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 4)); if (unlikely((__pyx_v_distance_upper_bound == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-      case  4: __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 3)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-      case  3: __pyx_v_eps = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 2)); if (unlikely((__pyx_v_eps == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-      case  2: __pyx_v_k = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_k == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      case  5: __pyx_v_distance_upper_bound = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 4)); if (unlikely((__pyx_v_distance_upper_bound == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      case  4: __pyx_v_p = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 3)); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      case  3: __pyx_v_eps = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 2)); if (unlikely((__pyx_v_eps == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      case  2: __pyx_v_k = __Pyx_PyInt_AsInt(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_k == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       case  1: __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
       break;
       default: goto __pyx_L5_argtuple_error;
@@ -4565,7 +4560,7 @@
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("query", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("query", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("scipy.spatial.ckdtree.cKDTree.query");
   return NULL;
@@ -4582,41 +4577,41 @@
   __pyx_bstruct_dd.buf = NULL;
   __pyx_bstruct_xx.buf = NULL;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":558
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":555
  *         cdef np.ndarray[double, ndim=2] xx
  *         cdef int c
  *         x = np.asarray(x).astype(np.float)             # <<<<<<<<<<<<<<
  *         if np.shape(x)[-1] != self.m:
  *             raise ValueError("x must consist of vectors of length %d but has shape %s" % (self.m, np.shape(x)))
  */
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__asarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__asarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_x);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x);
   __Pyx_GIVEREF(__pyx_v_x);
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__astype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__astype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__float); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__float); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -4624,64 +4619,64 @@
   __pyx_v_x = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":559
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":556
  *         cdef int c
  *         x = np.asarray(x).astype(np.float)
  *         if np.shape(x)[-1] != self.m:             # <<<<<<<<<<<<<<
  *             raise ValueError("x must consist of vectors of length %d but has shape %s" % (self.m, np.shape(x)))
  *         if p<1:
  */
-  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_x);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_x);
   __Pyx_GIVEREF(__pyx_v_x);
-  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   if (__pyx_t_4) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":560
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":557
  *         x = np.asarray(x).astype(np.float)
  *         if np.shape(x)[-1] != self.m:
  *             raise ValueError("x must consist of vectors of length %d but has shape %s" % (self.m, np.shape(x)))             # <<<<<<<<<<<<<<
  *         if p<1:
  *             raise ValueError("Only p-norms with 1<=p<=infinity permitted")
  */
-    __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__shape); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__shape); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(__pyx_v_x);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x);
     __Pyx_GIVEREF(__pyx_v_x);
-    __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
@@ -4689,25 +4684,25 @@
     __Pyx_GIVEREF(__pyx_t_5);
     __pyx_t_3 = 0;
     __pyx_t_5 = 0;
-    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_5), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_5), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
     __Pyx_GIVEREF(__pyx_t_5);
     __pyx_t_5 = 0;
-    __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_Raise(__pyx_t_5, 0, 0);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":561
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":558
  *         if np.shape(x)[-1] != self.m:
  *             raise ValueError("x must consist of vectors of length %d but has shape %s" % (self.m, np.shape(x)))
  *         if p<1:             # <<<<<<<<<<<<<<
@@ -4717,70 +4712,70 @@
   __pyx_t_4 = (__pyx_v_p < 1);
   if (__pyx_t_4) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":562
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":559
  *             raise ValueError("x must consist of vectors of length %d but has shape %s" % (self.m, np.shape(x)))
  *         if p<1:
  *             raise ValueError("Only p-norms with 1<=p<=infinity permitted")             # <<<<<<<<<<<<<<
  *         if len(x.shape)==1:
  *             single = True
  */
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(((PyObject *)__pyx_kp_s_6));
     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_s_6));
     __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_6));
-    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_t_1, 0, 0);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L7;
   }
   __pyx_L7:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":563
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":560
  *         if p<1:
  *             raise ValueError("Only p-norms with 1<=p<=infinity permitted")
  *         if len(x.shape)==1:             # <<<<<<<<<<<<<<
  *             single = True
  *             x = x[np.newaxis,:]
  */
-  __pyx_t_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__shape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_4 = (__pyx_t_6 == 1);
   if (__pyx_t_4) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":564
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":561
  *             raise ValueError("Only p-norms with 1<=p<=infinity permitted")
  *         if len(x.shape)==1:
  *             single = True             # <<<<<<<<<<<<<<
  *             x = x[np.newaxis,:]
  *         else:
  */
-    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_v_single);
     __pyx_v_single = __pyx_t_1;
     __pyx_t_1 = 0;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":565
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":562
  *         if len(x.shape)==1:
  *             single = True
  *             x = x[np.newaxis,:]             # <<<<<<<<<<<<<<
  *         else:
  *             single = False
  */
-    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__newaxis); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__newaxis); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_1 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
     __Pyx_GIVEREF(__pyx_t_5);
@@ -4788,7 +4783,7 @@
     __Pyx_GIVEREF(__pyx_t_1);
     __pyx_t_5 = 0;
     __pyx_t_1 = 0;
-    __pyx_t_1 = PyObject_GetItem(__pyx_v_x, __pyx_t_3); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_GetItem(__pyx_v_x, __pyx_t_3); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_v_x);
@@ -4798,14 +4793,14 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":567
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":564
  *             x = x[np.newaxis,:]
  *         else:
  *             single = False             # <<<<<<<<<<<<<<
  *         retshape = np.shape(x)[:-1]
  *         n = np.prod(retshape)
  */
-    __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_v_single);
     __pyx_v_single = __pyx_t_1;
@@ -4813,52 +4808,52 @@
   }
   __pyx_L8:;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":568
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":565
  *         else:
  *             single = False
  *         retshape = np.shape(x)[:-1]             # <<<<<<<<<<<<<<
  *         n = np.prod(retshape)
  *         xx = np.reshape(x,(n,self.m))
  */
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__shape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_x);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x);
   __Pyx_GIVEREF(__pyx_v_x);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PySequence_GetSlice(__pyx_t_5, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PySequence_GetSlice(__pyx_t_5, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_v_retshape);
   __pyx_v_retshape = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":569
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":566
  *             single = False
  *         retshape = np.shape(x)[:-1]
  *         n = np.prod(retshape)             # <<<<<<<<<<<<<<
  *         xx = np.reshape(x,(n,self.m))
  *         xx = np.ascontiguousarray(xx)
  */
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__prod); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__prod); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_retshape);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_retshape);
   __Pyx_GIVEREF(__pyx_v_retshape);
-  __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -4866,21 +4861,21 @@
   __pyx_v_n = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":570
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":567
  *         retshape = np.shape(x)[:-1]
  *         n = np.prod(retshape)
  *         xx = np.reshape(x,(n,self.m))             # <<<<<<<<<<<<<<
  *         xx = np.ascontiguousarray(xx)
  *         dd = np.empty((n,k),dtype=np.float)
  */
-  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(__pyx_v_n);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_n);
@@ -4888,7 +4883,7 @@
   PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
   __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_x);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_x);
@@ -4896,11 +4891,11 @@
   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -4917,35 +4912,35 @@
     }
     __pyx_bstride_0_xx = __pyx_bstruct_xx.strides[0]; __pyx_bstride_1_xx = __pyx_bstruct_xx.strides[1];
     __pyx_bshape_0_xx = __pyx_bstruct_xx.shape[0]; __pyx_bshape_1_xx = __pyx_bstruct_xx.shape[1];
-    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_7 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_v_xx));
   __pyx_v_xx = ((PyArrayObject *)__pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":571
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":568
  *         n = np.prod(retshape)
  *         xx = np.reshape(x,(n,self.m))
  *         xx = np.ascontiguousarray(xx)             # <<<<<<<<<<<<<<
  *         dd = np.empty((n,k),dtype=np.float)
  *         dd.fill(infinity)
  */
-  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(((PyObject *)__pyx_v_xx));
   PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_xx));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_xx));
-  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_7 = ((PyArrayObject *)__pyx_t_1);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -4962,28 +4957,28 @@
     }
     __pyx_bstride_0_xx = __pyx_bstruct_xx.strides[0]; __pyx_bstride_1_xx = __pyx_bstruct_xx.strides[1];
     __pyx_bshape_0_xx = __pyx_bstruct_xx.shape[0]; __pyx_bshape_1_xx = __pyx_bstruct_xx.shape[1];
-    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_7 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_v_xx));
   __pyx_v_xx = ((PyArrayObject *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":572
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":569
  *         xx = np.reshape(x,(n,self.m))
  *         xx = np.ascontiguousarray(xx)
  *         dd = np.empty((n,k),dtype=np.float)             # <<<<<<<<<<<<<<
  *         dd.fill(infinity)
  *         ii = np.empty((n,k),dtype='i')
  */
-  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__empty); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_n);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_n);
@@ -4991,26 +4986,26 @@
   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
   __pyx_t_3 = 0;
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_12 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__float); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__float); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_12);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__dtype), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-  __pyx_t_12 = PyEval_CallObjectWithKeywords(__pyx_t_5, __pyx_t_1, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyEval_CallObjectWithKeywords(__pyx_t_5, __pyx_t_1, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_12);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_13 = ((PyArrayObject *)__pyx_t_12);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -5027,50 +5022,50 @@
     }
     __pyx_bstride_0_dd = __pyx_bstruct_dd.strides[0]; __pyx_bstride_1_dd = __pyx_bstruct_dd.strides[1];
     __pyx_bshape_0_dd = __pyx_bstruct_dd.shape[0]; __pyx_bshape_1_dd = __pyx_bstruct_dd.shape[1];
-    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_13 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_v_dd));
   __pyx_v_dd = ((PyArrayObject *)__pyx_t_12);
   __pyx_t_12 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":573
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":570
  *         xx = np.ascontiguousarray(xx)
  *         dd = np.empty((n,k),dtype=np.float)
  *         dd.fill(infinity)             # <<<<<<<<<<<<<<
  *         ii = np.empty((n,k),dtype='i')
  *         ii.fill(self.n)
  */
-  __pyx_t_12 = PyObject_GetAttr(((PyObject *)__pyx_v_dd), __pyx_n_s__fill); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyObject_GetAttr(((PyObject *)__pyx_v_dd), __pyx_n_s__fill); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_12);
-  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_5scipy_7spatial_7ckdtree_infinity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_5scipy_7spatial_7ckdtree_infinity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
   __pyx_t_3 = 0;
-  __pyx_t_3 = PyObject_Call(__pyx_t_12, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_12, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":574
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":571
  *         dd = np.empty((n,k),dtype=np.float)
  *         dd.fill(infinity)
  *         ii = np.empty((n,k),dtype='i')             # <<<<<<<<<<<<<<
  *         ii.fill(self.n)
  *         for c in range(n):
  */
-  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__empty); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_12);
   __Pyx_INCREF(__pyx_v_n);
   PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_n);
@@ -5078,20 +5073,20 @@
   PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
   __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_12);
   __Pyx_GIVEREF(__pyx_t_12);
   __pyx_t_12 = 0;
-  __pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_12));
-  if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__dtype), ((PyObject *)__pyx_n_s__i)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, __pyx_t_3, ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_12, ((PyObject *)__pyx_n_s__dtype), ((PyObject *)__pyx_n_s__i)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_1, __pyx_t_3, ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
-  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_14 = ((PyArrayObject *)__pyx_t_5);
   {
     __Pyx_BufFmt_StackElem __pyx_stack[1];
@@ -5108,47 +5103,47 @@
     }
     __pyx_bstride_0_ii = __pyx_bstruct_ii.strides[0]; __pyx_bstride_1_ii = __pyx_bstruct_ii.strides[1];
     __pyx_bshape_0_ii = __pyx_bstruct_ii.shape[0]; __pyx_bshape_1_ii = __pyx_bstruct_ii.shape[1];
-    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_v_ii));
   __pyx_v_ii = ((PyArrayObject *)__pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":575
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":572
  *         dd.fill(infinity)
  *         ii = np.empty((n,k),dtype='i')
  *         ii.fill(self.n)             # <<<<<<<<<<<<<<
  *         for c in range(n):
  *             self.__query(
  */
-  __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_ii), __pyx_n_s__fill); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_GetAttr(((PyObject *)__pyx_v_ii), __pyx_n_s__fill); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_12 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyInt_FromLong(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->n); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_12);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_12);
   __Pyx_GIVEREF(__pyx_t_12);
   __pyx_t_12 = 0;
-  __pyx_t_12 = PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_12 = PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_12);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":576
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":573
  *         ii = np.empty((n,k),dtype='i')
  *         ii.fill(self.n)
  *         for c in range(n):             # <<<<<<<<<<<<<<
  *             self.__query(
  *                     (<double*>dd.data)+c*k,
  */
-  __pyx_t_15 = __Pyx_PyInt_AsLong(__pyx_v_n); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyInt_AsLong(__pyx_v_n); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_15; __pyx_t_8+=1) {
     __pyx_v_c = __pyx_t_8;
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":584
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":581
  *                     eps,
  *                     p,
  *                     distance_upper_bound)             # <<<<<<<<<<<<<<
@@ -5158,17 +5153,17 @@
     ((struct __pyx_vtabstruct_5scipy_7spatial_7ckdtree_cKDTree *)((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->__pyx_vtab)->__query(((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self), (((double *)__pyx_v_dd->data) + (__pyx_v_c * __pyx_v_k)), (((int *)__pyx_v_ii->data) + (__pyx_v_c * __pyx_v_k)), (((double *)__pyx_v_xx->data) + (__pyx_v_c * ((struct __pyx_obj_5scipy_7spatial_7ckdtree_cKDTree *)__pyx_v_self)->m)), __pyx_v_k, __pyx_v_eps, __pyx_v_p, __pyx_v_distance_upper_bound);
   }
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":585
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":582
  *                     p,
  *                     distance_upper_bound)
  *         if single:             # <<<<<<<<<<<<<<
  *             if k==1:
  *                 return dd[0,0], ii[0,0]
  */
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_single); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_single); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_4) {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":586
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":583
  *                     distance_upper_bound)
  *         if single:
  *             if k==1:             # <<<<<<<<<<<<<<
@@ -5178,7 +5173,7 @@
     __pyx_t_4 = (__pyx_v_k == 1);
     if (__pyx_t_4) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":587
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":584
  *         if single:
  *             if k==1:
  *                 return dd[0,0], ii[0,0]             # <<<<<<<<<<<<<<
@@ -5199,9 +5194,9 @@
       } else if (unlikely(__pyx_t_17 >= __pyx_bshape_1_dd)) __pyx_t_8 = 1;
       if (unlikely(__pyx_t_8 != -1)) {
         __Pyx_RaiseBufferIndexError(__pyx_t_8);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_12 = PyFloat_FromDouble((*__Pyx_BufPtrStrided2d(double *, __pyx_bstruct_dd.buf, __pyx_t_16, __pyx_bstride_0_dd, __pyx_t_17, __pyx_bstride_1_dd))); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyFloat_FromDouble((*__Pyx_BufPtrStrided2d(double *, __pyx_bstruct_dd.buf, __pyx_t_16, __pyx_bstride_0_dd, __pyx_t_17, __pyx_bstride_1_dd))); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       __pyx_t_18 = 0;
       __pyx_t_19 = 0;
@@ -5216,11 +5211,11 @@
       } else if (unlikely(__pyx_t_19 >= __pyx_bshape_1_ii)) __pyx_t_8 = 1;
       if (unlikely(__pyx_t_8 != -1)) {
         __Pyx_RaiseBufferIndexError(__pyx_t_8);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_3 = PyInt_FromLong((*__Pyx_BufPtrStrided2d(int *, __pyx_bstruct_ii.buf, __pyx_t_18, __pyx_bstride_0_ii, __pyx_t_19, __pyx_bstride_1_ii))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong((*__Pyx_BufPtrStrided2d(int *, __pyx_bstruct_ii.buf, __pyx_t_18, __pyx_bstride_0_ii, __pyx_t_19, __pyx_bstride_1_ii))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12);
       __Pyx_GIVEREF(__pyx_t_12);
@@ -5235,7 +5230,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":589
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":586
  *                 return dd[0,0], ii[0,0]
  *             else:
  *                 return dd[0], ii[0]             # <<<<<<<<<<<<<<
@@ -5243,11 +5238,11 @@
  *             if k==1:
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = __Pyx_GetItemInt(((PyObject *)__pyx_v_dd), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_GetItemInt(((PyObject *)__pyx_v_dd), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_ii), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_GetItemInt(((PyObject *)__pyx_v_ii), 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
@@ -5264,7 +5259,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":591
+    /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":588
  *                 return dd[0], ii[0]
  *         else:
  *             if k==1:             # <<<<<<<<<<<<<<
@@ -5274,7 +5269,7 @@
     __pyx_t_4 = (__pyx_v_k == 1);
     if (__pyx_t_4) {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":592
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":589
  *         else:
  *             if k==1:
  *                 return np.reshape(dd[...,0],retshape), np.reshape(ii[...,0],retshape)             # <<<<<<<<<<<<<<
@@ -5282,12 +5277,12 @@
  *                 return np.reshape(dd,retshape+(k,)), np.reshape(ii,retshape+(k,))
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
-      __pyx_t_3 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__reshape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__reshape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       __Pyx_INCREF(Py_Ellipsis);
       PyTuple_SET_ITEM(__pyx_t_12, 0, Py_Ellipsis);
@@ -5295,10 +5290,10 @@
       __Pyx_INCREF(__pyx_int_0);
       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_int_0);
       __Pyx_GIVEREF(__pyx_int_0);
-      __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_dd), __pyx_t_12); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_dd), __pyx_t_12); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
@@ -5306,16 +5301,16 @@
       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_retshape);
       __Pyx_GIVEREF(__pyx_v_retshape);
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
-      __pyx_t_3 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__reshape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__reshape); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       __Pyx_INCREF(Py_Ellipsis);
       PyTuple_SET_ITEM(__pyx_t_12, 0, Py_Ellipsis);
@@ -5323,10 +5318,10 @@
       __Pyx_INCREF(__pyx_int_0);
       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_int_0);
       __Pyx_GIVEREF(__pyx_int_0);
-      __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_ii), __pyx_t_12); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_ii), __pyx_t_12); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
       __Pyx_GIVEREF(__pyx_t_1);
@@ -5334,11 +5329,11 @@
       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_retshape);
       __Pyx_GIVEREF(__pyx_v_retshape);
       __pyx_t_1 = 0;
-      __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
@@ -5353,29 +5348,29 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":594
+      /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":591
  *                 return np.reshape(dd[...,0],retshape), np.reshape(ii[...,0],retshape)
  *             else:
  *                 return np.reshape(dd,retshape+(k,)), np.reshape(ii,retshape+(k,))             # <<<<<<<<<<<<<<
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
-      __pyx_t_1 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __pyx_t_12 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12);
       __Pyx_GIVEREF(__pyx_t_12);
       __pyx_t_12 = 0;
-      __pyx_t_12 = PyNumber_Add(__pyx_v_retshape, __pyx_t_5); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyNumber_Add(__pyx_v_retshape, __pyx_t_5); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(((PyObject *)__pyx_v_dd));
       PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_dd));
@@ -5383,26 +5378,26 @@
       PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_12);
       __Pyx_GIVEREF(__pyx_t_12);
       __pyx_t_12 = 0;
-      __pyx_t_12 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_12);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__np); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_5 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyNumber_Add(__pyx_v_retshape, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyNumber_Add(__pyx_v_retshape, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(((PyObject *)__pyx_v_ii));
       PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_ii));
@@ -5410,11 +5405,11 @@
       PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_12);
       __Pyx_GIVEREF(__pyx_t_12);
@@ -5465,7 +5460,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":187
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":187
  *         # experimental exception made for __getbuffer__ and __releasebuffer__
  *         # -- the details of this may change.
  *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
@@ -5501,7 +5496,7 @@
   __Pyx_GIVEREF(__pyx_v_info->obj);
   __Pyx_INCREF((PyObject *)__pyx_v_self);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":193
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":193
  *             # of flags
  *             cdef int copy_shape, i, ndim
  *             cdef int endian_detector = 1             # <<<<<<<<<<<<<<
@@ -5510,7 +5505,7 @@
  */
   __pyx_v_endian_detector = 1;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":194
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":194
  *             cdef int copy_shape, i, ndim
  *             cdef int endian_detector = 1
  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
@@ -5519,7 +5514,7 @@
  */
   __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":196
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":196
  *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
  * 
  *             ndim = PyArray_NDIM(self)             # <<<<<<<<<<<<<<
@@ -5528,7 +5523,7 @@
  */
   __pyx_v_ndim = PyArray_NDIM(((PyArrayObject *)__pyx_v_self));
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":198
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":198
  *             ndim = PyArray_NDIM(self)
  * 
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
@@ -5538,7 +5533,7 @@
   __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t)));
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":199
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":199
  * 
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
  *                 copy_shape = 1             # <<<<<<<<<<<<<<
@@ -5550,7 +5545,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":201
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":201
  *                 copy_shape = 1
  *             else:
  *                 copy_shape = 0             # <<<<<<<<<<<<<<
@@ -5561,7 +5556,7 @@
   }
   __pyx_L5:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":203
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":203
  *                 copy_shape = 0
  * 
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
@@ -5571,7 +5566,7 @@
   __pyx_t_1 = ((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":204
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":204
  * 
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):             # <<<<<<<<<<<<<<
@@ -5585,7 +5580,7 @@
   }
   if (__pyx_t_3) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":205
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":205
  *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):
  *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
@@ -5607,7 +5602,7 @@
   }
   __pyx_L6:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":207
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":207
  *                 raise ValueError(u"ndarray is not C contiguous")
  * 
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
@@ -5617,7 +5612,7 @@
   __pyx_t_3 = ((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS);
   if (__pyx_t_3) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":208
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":208
  * 
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):             # <<<<<<<<<<<<<<
@@ -5631,7 +5626,7 @@
   }
   if (__pyx_t_2) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":209
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":209
  *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
  *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):
  *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
@@ -5653,7 +5648,7 @@
   }
   __pyx_L7:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":211
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":211
  *                 raise ValueError(u"ndarray is not Fortran contiguous")
  * 
  *             info.buf = PyArray_DATA(self)             # <<<<<<<<<<<<<<
@@ -5662,7 +5657,7 @@
  */
   __pyx_v_info->buf = PyArray_DATA(((PyArrayObject *)__pyx_v_self));
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":212
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":212
  * 
  *             info.buf = PyArray_DATA(self)
  *             info.ndim = ndim             # <<<<<<<<<<<<<<
@@ -5671,7 +5666,7 @@
  */
   __pyx_v_info->ndim = __pyx_v_ndim;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":213
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":213
  *             info.buf = PyArray_DATA(self)
  *             info.ndim = ndim
  *             if copy_shape:             # <<<<<<<<<<<<<<
@@ -5681,7 +5676,7 @@
   __pyx_t_6 = __pyx_v_copy_shape;
   if (__pyx_t_6) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":216
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":216
  *                 # Allocate new buffer for strides and shape info. This is allocated
  *                 # as one block, strides first.
  *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2)             # <<<<<<<<<<<<<<
@@ -5690,7 +5685,7 @@
  */
     __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * __pyx_v_ndim) * 2)));
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":217
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":217
  *                 # as one block, strides first.
  *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2)
  *                 info.shape = info.strides + ndim             # <<<<<<<<<<<<<<
@@ -5699,7 +5694,7 @@
  */
     __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":218
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":218
  *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * ndim * 2)
  *                 info.shape = info.strides + ndim
  *                 for i in range(ndim):             # <<<<<<<<<<<<<<
@@ -5710,7 +5705,7 @@
     for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
       __pyx_v_i = __pyx_t_7;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":219
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":219
  *                 info.shape = info.strides + ndim
  *                 for i in range(ndim):
  *                     info.strides[i] = PyArray_STRIDES(self)[i]             # <<<<<<<<<<<<<<
@@ -5719,7 +5714,7 @@
  */
       (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(((PyArrayObject *)__pyx_v_self))[__pyx_v_i]);
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":220
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":220
  *                 for i in range(ndim):
  *                     info.strides[i] = PyArray_STRIDES(self)[i]
  *                     info.shape[i] = PyArray_DIMS(self)[i]             # <<<<<<<<<<<<<<
@@ -5732,7 +5727,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":222
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":222
  *                     info.shape[i] = PyArray_DIMS(self)[i]
  *             else:
  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
@@ -5741,7 +5736,7 @@
  */
     __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(((PyArrayObject *)__pyx_v_self)));
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":223
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":223
  *             else:
  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)             # <<<<<<<<<<<<<<
@@ -5752,7 +5747,7 @@
   }
   __pyx_L8:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":224
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":224
  *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
  *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
@@ -5761,7 +5756,7 @@
  */
   __pyx_v_info->suboffsets = NULL;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":225
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":225
  *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
  *             info.suboffsets = NULL
  *             info.itemsize = PyArray_ITEMSIZE(self)             # <<<<<<<<<<<<<<
@@ -5770,7 +5765,7 @@
  */
   __pyx_v_info->itemsize = PyArray_ITEMSIZE(((PyArrayObject *)__pyx_v_self));
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":226
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":226
  *             info.suboffsets = NULL
  *             info.itemsize = PyArray_ITEMSIZE(self)
  *             info.readonly = not PyArray_ISWRITEABLE(self)             # <<<<<<<<<<<<<<
@@ -5779,7 +5774,7 @@
  */
   __pyx_v_info->readonly = (!PyArray_ISWRITEABLE(((PyArrayObject *)__pyx_v_self)));
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":229
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":229
  * 
  *             cdef int t
  *             cdef char* f = NULL             # <<<<<<<<<<<<<<
@@ -5788,7 +5783,7 @@
  */
   __pyx_v_f = NULL;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":230
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":230
  *             cdef int t
  *             cdef char* f = NULL
  *             cdef dtype descr = self.descr             # <<<<<<<<<<<<<<
@@ -5798,7 +5793,7 @@
   __Pyx_INCREF(((PyObject *)((PyArrayObject *)__pyx_v_self)->descr));
   __pyx_v_descr = ((PyArrayObject *)__pyx_v_self)->descr;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":234
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":234
  *             cdef int offset
  * 
  *             cdef bint hasfields = PyDataType_HASFIELDS(descr)             # <<<<<<<<<<<<<<
@@ -5807,7 +5802,7 @@
  */
   __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":236
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":236
  *             cdef bint hasfields = PyDataType_HASFIELDS(descr)
  * 
  *             if not hasfields and not copy_shape:             # <<<<<<<<<<<<<<
@@ -5823,7 +5818,7 @@
   }
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":238
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":238
  *             if not hasfields and not copy_shape:
  *                 # do not call releasebuffer
  *                 info.obj = None             # <<<<<<<<<<<<<<
@@ -5839,7 +5834,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":241
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":241
  *             else:
  *                 # need to call releasebuffer
  *                 info.obj = self             # <<<<<<<<<<<<<<
@@ -5854,7 +5849,7 @@
   }
   __pyx_L11:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":243
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":243
  *                 info.obj = self
  * 
  *             if not hasfields:             # <<<<<<<<<<<<<<
@@ -5864,7 +5859,7 @@
   __pyx_t_1 = (!__pyx_v_hasfields);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":244
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":244
  * 
  *             if not hasfields:
  *                 t = descr.type_num             # <<<<<<<<<<<<<<
@@ -5873,7 +5868,7 @@
  */
     __pyx_v_t = __pyx_v_descr->type_num;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":245
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":245
  *             if not hasfields:
  *                 t = descr.type_num
  *                 if ((descr.byteorder == '>' and little_endian) or             # <<<<<<<<<<<<<<
@@ -5888,7 +5883,7 @@
     }
     if (!__pyx_t_2) {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":246
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":246
  *                 t = descr.type_num
  *                 if ((descr.byteorder == '>' and little_endian) or
  *                     (descr.byteorder == '<' and not little_endian)):             # <<<<<<<<<<<<<<
@@ -5908,7 +5903,7 @@
     }
     if (__pyx_t_1) {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":247
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":247
  *                 if ((descr.byteorder == '>' and little_endian) or
  *                     (descr.byteorder == '<' and not little_endian)):
  *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
@@ -5930,7 +5925,7 @@
     }
     __pyx_L13:;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":248
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":248
  *                     (descr.byteorder == '<' and not little_endian)):
  *                     raise ValueError(u"Non-native byte order not supported")
  *                 if   t == NPY_BYTE:        f = "b"             # <<<<<<<<<<<<<<
@@ -5943,7 +5938,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":249
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":249
  *                     raise ValueError(u"Non-native byte order not supported")
  *                 if   t == NPY_BYTE:        f = "b"
  *                 elif t == NPY_UBYTE:       f = "B"             # <<<<<<<<<<<<<<
@@ -5956,7 +5951,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":250
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":250
  *                 if   t == NPY_BYTE:        f = "b"
  *                 elif t == NPY_UBYTE:       f = "B"
  *                 elif t == NPY_SHORT:       f = "h"             # <<<<<<<<<<<<<<
@@ -5969,7 +5964,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":251
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":251
  *                 elif t == NPY_UBYTE:       f = "B"
  *                 elif t == NPY_SHORT:       f = "h"
  *                 elif t == NPY_USHORT:      f = "H"             # <<<<<<<<<<<<<<
@@ -5982,7 +5977,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":252
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":252
  *                 elif t == NPY_SHORT:       f = "h"
  *                 elif t == NPY_USHORT:      f = "H"
  *                 elif t == NPY_INT:         f = "i"             # <<<<<<<<<<<<<<
@@ -5995,7 +5990,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":253
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":253
  *                 elif t == NPY_USHORT:      f = "H"
  *                 elif t == NPY_INT:         f = "i"
  *                 elif t == NPY_UINT:        f = "I"             # <<<<<<<<<<<<<<
@@ -6008,7 +6003,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":254
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":254
  *                 elif t == NPY_INT:         f = "i"
  *                 elif t == NPY_UINT:        f = "I"
  *                 elif t == NPY_LONG:        f = "l"             # <<<<<<<<<<<<<<
@@ -6021,7 +6016,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":255
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":255
  *                 elif t == NPY_UINT:        f = "I"
  *                 elif t == NPY_LONG:        f = "l"
  *                 elif t == NPY_ULONG:       f = "L"             # <<<<<<<<<<<<<<
@@ -6034,7 +6029,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":256
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":256
  *                 elif t == NPY_LONG:        f = "l"
  *                 elif t == NPY_ULONG:       f = "L"
  *                 elif t == NPY_LONGLONG:    f = "q"             # <<<<<<<<<<<<<<
@@ -6047,7 +6042,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":257
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":257
  *                 elif t == NPY_ULONG:       f = "L"
  *                 elif t == NPY_LONGLONG:    f = "q"
  *                 elif t == NPY_ULONGLONG:   f = "Q"             # <<<<<<<<<<<<<<
@@ -6060,7 +6055,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":258
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":258
  *                 elif t == NPY_LONGLONG:    f = "q"
  *                 elif t == NPY_ULONGLONG:   f = "Q"
  *                 elif t == NPY_FLOAT:       f = "f"             # <<<<<<<<<<<<<<
@@ -6073,7 +6068,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":259
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":259
  *                 elif t == NPY_ULONGLONG:   f = "Q"
  *                 elif t == NPY_FLOAT:       f = "f"
  *                 elif t == NPY_DOUBLE:      f = "d"             # <<<<<<<<<<<<<<
@@ -6086,7 +6081,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":260
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":260
  *                 elif t == NPY_FLOAT:       f = "f"
  *                 elif t == NPY_DOUBLE:      f = "d"
  *                 elif t == NPY_LONGDOUBLE:  f = "g"             # <<<<<<<<<<<<<<
@@ -6099,7 +6094,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":261
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":261
  *                 elif t == NPY_DOUBLE:      f = "d"
  *                 elif t == NPY_LONGDOUBLE:  f = "g"
  *                 elif t == NPY_CFLOAT:      f = "Zf"             # <<<<<<<<<<<<<<
@@ -6112,7 +6107,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":262
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":262
  *                 elif t == NPY_LONGDOUBLE:  f = "g"
  *                 elif t == NPY_CFLOAT:      f = "Zf"
  *                 elif t == NPY_CDOUBLE:     f = "Zd"             # <<<<<<<<<<<<<<
@@ -6125,7 +6120,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":263
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":263
  *                 elif t == NPY_CFLOAT:      f = "Zf"
  *                 elif t == NPY_CDOUBLE:     f = "Zd"
  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"             # <<<<<<<<<<<<<<
@@ -6138,7 +6133,7 @@
       goto __pyx_L14;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":264
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":264
  *                 elif t == NPY_CDOUBLE:     f = "Zd"
  *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
  *                 elif t == NPY_OBJECT:      f = "O"             # <<<<<<<<<<<<<<
@@ -6152,7 +6147,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":266
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":266
  *                 elif t == NPY_OBJECT:      f = "O"
  *                 else:
  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
@@ -6178,7 +6173,7 @@
     }
     __pyx_L14:;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":267
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":267
  *                 else:
  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  *                 info.format = f             # <<<<<<<<<<<<<<
@@ -6187,7 +6182,7 @@
  */
     __pyx_v_info->format = __pyx_v_f;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":268
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":268
  *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  *                 info.format = f
  *                 return             # <<<<<<<<<<<<<<
@@ -6200,7 +6195,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":270
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":270
  *                 return
  *             else:
  *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)             # <<<<<<<<<<<<<<
@@ -6209,7 +6204,7 @@
  */
     __pyx_v_info->format = ((char *)malloc(255));
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":271
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":271
  *             else:
  *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
  *                 info.format[0] = '^' # Native data types, manual alignment             # <<<<<<<<<<<<<<
@@ -6218,7 +6213,7 @@
  */
     (__pyx_v_info->format[0]) = '^';
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":272
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":272
  *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
  *                 info.format[0] = '^' # Native data types, manual alignment
  *                 offset = 0             # <<<<<<<<<<<<<<
@@ -6227,7 +6222,7 @@
  */
     __pyx_v_offset = 0;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":275
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":275
  *                 f = _util_dtypestring(descr, info.format + 1,
  *                                       info.format + _buffer_format_string_len,
  *                                       &offset)             # <<<<<<<<<<<<<<
@@ -6237,7 +6232,7 @@
     __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 255), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_f = __pyx_t_9;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":276
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":276
  *                                       info.format + _buffer_format_string_len,
  *                                       &offset)
  *                 f[0] = 0 # Terminate format string             # <<<<<<<<<<<<<<
@@ -6270,7 +6265,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":278
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":278
  *                 f[0] = 0 # Terminate format string
  * 
  *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
@@ -6284,7 +6279,7 @@
   __Pyx_RefNannySetupContext("__releasebuffer__");
   __Pyx_INCREF((PyObject *)__pyx_v_self);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":279
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":279
  * 
  *         def __releasebuffer__(ndarray self, Py_buffer* info):
  *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
@@ -6294,7 +6289,7 @@
   __pyx_t_1 = PyArray_HASFIELDS(((PyArrayObject *)__pyx_v_self));
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":280
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":280
  *         def __releasebuffer__(ndarray self, Py_buffer* info):
  *             if PyArray_HASFIELDS(self):
  *                 stdlib.free(info.format)             # <<<<<<<<<<<<<<
@@ -6306,7 +6301,7 @@
   }
   __pyx_L5:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":281
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":281
  *             if PyArray_HASFIELDS(self):
  *                 stdlib.free(info.format)
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
@@ -6316,7 +6311,7 @@
   __pyx_t_1 = ((sizeof(npy_intp)) != (sizeof(Py_ssize_t)));
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":282
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":282
  *                 stdlib.free(info.format)
  *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
  *                 stdlib.free(info.strides)             # <<<<<<<<<<<<<<
@@ -6332,7 +6327,7 @@
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":755
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":755
  * ctypedef npy_cdouble     complex_t
  * 
  * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
@@ -6345,7 +6340,7 @@
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew1");
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":756
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":756
  * 
  * cdef inline object PyArray_MultiIterNew1(a):
  *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
@@ -6371,7 +6366,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":758
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":758
  *     return PyArray_MultiIterNew(1, <void*>a)
  * 
  * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
@@ -6384,7 +6379,7 @@
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew2");
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":759
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":759
  * 
  * cdef inline object PyArray_MultiIterNew2(a, b):
  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
@@ -6410,7 +6405,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":761
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":761
  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
  * 
  * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
@@ -6423,7 +6418,7 @@
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew3");
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":762
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":762
  * 
  * cdef inline object PyArray_MultiIterNew3(a, b, c):
  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
@@ -6449,7 +6444,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":764
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":764
  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
  * 
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
@@ -6462,7 +6457,7 @@
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew4");
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":765
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":765
  * 
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
@@ -6488,7 +6483,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":767
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":767
  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
  * 
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
@@ -6501,7 +6496,7 @@
   PyObject *__pyx_t_1 = NULL;
   __Pyx_RefNannySetupContext("PyArray_MultiIterNew5");
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":768
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":768
  * 
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
@@ -6527,7 +6522,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":770
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":770
  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
  * 
  * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
@@ -6562,7 +6557,7 @@
   __pyx_v_new_offset = Py_None; __Pyx_INCREF(Py_None);
   __pyx_v_t = Py_None; __Pyx_INCREF(Py_None);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":777
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":777
  *     cdef int delta_offset
  *     cdef tuple i
  *     cdef int endian_detector = 1             # <<<<<<<<<<<<<<
@@ -6571,7 +6566,7 @@
  */
   __pyx_v_endian_detector = 1;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":778
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":778
  *     cdef tuple i
  *     cdef int endian_detector = 1
  *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
@@ -6580,7 +6575,7 @@
  */
   __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":781
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":781
  *     cdef tuple fields
  * 
  *     for childname in descr.names:             # <<<<<<<<<<<<<<
@@ -6599,7 +6594,7 @@
     __pyx_v_childname = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":782
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":782
  * 
  *     for childname in descr.names:
  *         fields = descr.fields[childname]             # <<<<<<<<<<<<<<
@@ -6613,7 +6608,7 @@
     __pyx_v_fields = ((PyObject *)__pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":783
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":783
  *     for childname in descr.names:
  *         fields = descr.fields[childname]
  *         child, new_offset = fields             # <<<<<<<<<<<<<<
@@ -6636,7 +6631,7 @@
       {__pyx_filename = __pyx_f[1]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":785
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":785
  *         child, new_offset = fields
  * 
  *         if (end - f) - (new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
@@ -6661,7 +6656,7 @@
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (__pyx_t_6) {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":786
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":786
  * 
  *         if (end - f) - (new_offset - offset[0]) < 15:
  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
@@ -6683,7 +6678,7 @@
     }
     __pyx_L5:;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":788
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":788
  *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
  * 
  *         if ((child.byteorder == '>' and little_endian) or             # <<<<<<<<<<<<<<
@@ -6698,7 +6693,7 @@
     }
     if (!__pyx_t_7) {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":789
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":789
  * 
  *         if ((child.byteorder == '>' and little_endian) or
  *             (child.byteorder == '<' and not little_endian)):             # <<<<<<<<<<<<<<
@@ -6718,7 +6713,7 @@
     }
     if (__pyx_t_6) {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":790
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":790
  *         if ((child.byteorder == '>' and little_endian) or
  *             (child.byteorder == '<' and not little_endian)):
  *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
@@ -6740,7 +6735,7 @@
     }
     __pyx_L6:;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":800
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":800
  * 
  *         # Output padding bytes
  *         while offset[0] < new_offset:             # <<<<<<<<<<<<<<
@@ -6757,7 +6752,7 @@
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       if (!__pyx_t_6) break;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":801
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":801
  *         # Output padding bytes
  *         while offset[0] < new_offset:
  *             f[0] = 120 # "x"; pad byte             # <<<<<<<<<<<<<<
@@ -6766,7 +6761,7 @@
  */
       (__pyx_v_f[0]) = 120;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":802
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":802
  *         while offset[0] < new_offset:
  *             f[0] = 120 # "x"; pad byte
  *             f += 1             # <<<<<<<<<<<<<<
@@ -6775,7 +6770,7 @@
  */
       __pyx_v_f += 1;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":803
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":803
  *             f[0] = 120 # "x"; pad byte
  *             f += 1
  *             offset[0] += 1             # <<<<<<<<<<<<<<
@@ -6785,7 +6780,7 @@
       (__pyx_v_offset[0]) += 1;
     }
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":805
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":805
  *             offset[0] += 1
  * 
  *         offset[0] += child.itemsize             # <<<<<<<<<<<<<<
@@ -6794,7 +6789,7 @@
  */
     (__pyx_v_offset[0]) += __pyx_v_child->elsize;
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":807
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":807
  *         offset[0] += child.itemsize
  * 
  *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
@@ -6804,7 +6799,7 @@
     __pyx_t_6 = (!PyDataType_HASFIELDS(__pyx_v_child));
     if (__pyx_t_6) {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":808
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":808
  * 
  *         if not PyDataType_HASFIELDS(child):
  *             t = child.type_num             # <<<<<<<<<<<<<<
@@ -6817,7 +6812,7 @@
       __pyx_v_t = __pyx_t_3;
       __pyx_t_3 = 0;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":809
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":809
  *         if not PyDataType_HASFIELDS(child):
  *             t = child.type_num
  *             if end - f < 5:             # <<<<<<<<<<<<<<
@@ -6827,7 +6822,7 @@
       __pyx_t_6 = ((__pyx_v_end - __pyx_v_f) < 5);
       if (__pyx_t_6) {
 
-        /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":810
+        /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":810
  *             t = child.type_num
  *             if end - f < 5:
  *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
@@ -6849,7 +6844,7 @@
       }
       __pyx_L10:;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":813
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":813
  * 
  *             # Until ticket #99 is fixed, use integers to avoid warnings
  *             if   t == NPY_BYTE:        f[0] =  98 #"b"             # <<<<<<<<<<<<<<
@@ -6868,7 +6863,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":814
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":814
  *             # Until ticket #99 is fixed, use integers to avoid warnings
  *             if   t == NPY_BYTE:        f[0] =  98 #"b"
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"             # <<<<<<<<<<<<<<
@@ -6887,7 +6882,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":815
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":815
  *             if   t == NPY_BYTE:        f[0] =  98 #"b"
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"             # <<<<<<<<<<<<<<
@@ -6906,7 +6901,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":816
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":816
  *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"             # <<<<<<<<<<<<<<
@@ -6925,7 +6920,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":817
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":817
  *             elif t == NPY_SHORT:       f[0] = 104 #"h"
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
  *             elif t == NPY_INT:         f[0] = 105 #"i"             # <<<<<<<<<<<<<<
@@ -6944,7 +6939,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":818
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":818
  *             elif t == NPY_USHORT:      f[0] =  72 #"H"
  *             elif t == NPY_INT:         f[0] = 105 #"i"
  *             elif t == NPY_UINT:        f[0] =  73 #"I"             # <<<<<<<<<<<<<<
@@ -6963,7 +6958,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":819
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":819
  *             elif t == NPY_INT:         f[0] = 105 #"i"
  *             elif t == NPY_UINT:        f[0] =  73 #"I"
  *             elif t == NPY_LONG:        f[0] = 108 #"l"             # <<<<<<<<<<<<<<
@@ -6982,7 +6977,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":820
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":820
  *             elif t == NPY_UINT:        f[0] =  73 #"I"
  *             elif t == NPY_LONG:        f[0] = 108 #"l"
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"             # <<<<<<<<<<<<<<
@@ -7001,7 +6996,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":821
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":821
  *             elif t == NPY_LONG:        f[0] = 108 #"l"
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"             # <<<<<<<<<<<<<<
@@ -7020,7 +7015,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":822
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":822
  *             elif t == NPY_ULONG:       f[0] = 76  #"L"
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"             # <<<<<<<<<<<<<<
@@ -7039,7 +7034,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":823
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":823
  *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"             # <<<<<<<<<<<<<<
@@ -7058,7 +7053,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":824
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":824
  *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"             # <<<<<<<<<<<<<<
@@ -7077,7 +7072,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":825
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":825
  *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"             # <<<<<<<<<<<<<<
@@ -7096,7 +7091,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":826
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":826
  *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf             # <<<<<<<<<<<<<<
@@ -7117,7 +7112,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":827
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":827
  *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd             # <<<<<<<<<<<<<<
@@ -7138,7 +7133,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":828
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":828
  *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg             # <<<<<<<<<<<<<<
@@ -7159,7 +7154,7 @@
         goto __pyx_L11;
       }
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":829
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":829
  *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
  *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"             # <<<<<<<<<<<<<<
@@ -7179,7 +7174,7 @@
       }
       /*else*/ {
 
-        /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":831
+        /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":831
  *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
  *             else:
  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
@@ -7202,7 +7197,7 @@
       }
       __pyx_L11:;
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":832
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":832
  *             else:
  *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
  *             f += 1             # <<<<<<<<<<<<<<
@@ -7214,7 +7209,7 @@
     }
     /*else*/ {
 
-      /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":836
+      /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":836
  *             # Cython ignores struct boundary information ("T{...}"),
  *             # so don't output it
  *             f = _util_dtypestring(child, f, end, offset)             # <<<<<<<<<<<<<<
@@ -7228,7 +7223,7 @@
   }
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":837
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":837
  *             # so don't output it
  *             f = _util_dtypestring(child, f, end, offset)
  *     return f             # <<<<<<<<<<<<<<
@@ -7258,7 +7253,7 @@
   return __pyx_r;
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":952
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":952
  * 
  * 
  * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
@@ -7273,7 +7268,7 @@
   __Pyx_INCREF((PyObject *)__pyx_v_arr);
   __Pyx_INCREF(__pyx_v_base);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":954
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":954
  * cdef inline void set_array_base(ndarray arr, object base):
  *      cdef PyObject* baseptr
  *      if base is None:             # <<<<<<<<<<<<<<
@@ -7283,7 +7278,7 @@
   __pyx_t_1 = (__pyx_v_base == Py_None);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":955
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":955
  *      cdef PyObject* baseptr
  *      if base is None:
  *          baseptr = NULL             # <<<<<<<<<<<<<<
@@ -7295,7 +7290,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":957
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":957
  *          baseptr = NULL
  *      else:
  *          Py_INCREF(base) # important to do this before decref below!             # <<<<<<<<<<<<<<
@@ -7304,7 +7299,7 @@
  */
     Py_INCREF(__pyx_v_base);
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":958
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":958
  *      else:
  *          Py_INCREF(base) # important to do this before decref below!
  *          baseptr = <PyObject*>base             # <<<<<<<<<<<<<<
@@ -7315,7 +7310,7 @@
   }
   __pyx_L3:;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":959
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":959
  *          Py_INCREF(base) # important to do this before decref below!
  *          baseptr = <PyObject*>base
  *      Py_XDECREF(arr.base)             # <<<<<<<<<<<<<<
@@ -7324,7 +7319,7 @@
  */
   Py_XDECREF(__pyx_v_arr->base);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":960
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":960
  *          baseptr = <PyObject*>base
  *      Py_XDECREF(arr.base)
  *      arr.base = baseptr             # <<<<<<<<<<<<<<
@@ -7338,7 +7333,7 @@
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":962
+/* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":962
  *      arr.base = baseptr
  * 
  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
@@ -7352,7 +7347,7 @@
   __Pyx_RefNannySetupContext("get_array_base");
   __Pyx_INCREF((PyObject *)__pyx_v_arr);
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":963
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":963
  * 
  * cdef inline object get_array_base(ndarray arr):
  *     if arr.base is NULL:             # <<<<<<<<<<<<<<
@@ -7362,7 +7357,7 @@
   __pyx_t_1 = (__pyx_v_arr->base == NULL);
   if (__pyx_t_1) {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":964
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":964
  * cdef inline object get_array_base(ndarray arr):
  *     if arr.base is NULL:
  *         return None             # <<<<<<<<<<<<<<
@@ -7377,7 +7372,7 @@
   }
   /*else*/ {
 
-    /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/numpy.pxd":966
+    /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/numpy.pxd":966
  *         return None
  *     else:
  *         return <object>arr.base             # <<<<<<<<<<<<<<
@@ -7599,7 +7594,7 @@
   0, /*tp_setattro*/
   &__pyx_tp_as_buffer_cKDTree, /*tp_as_buffer*/
   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
-  __Pyx_DOCSTR("kd-tree for quick nearest-neighbor lookup\n\n    This class provides an index into a set of k-dimensional points\n    which can be used to rapidly look up the nearest neighbors of any\n    point. \n\n    The algorithm used is described in Maneewongvatana and Mount 1999. \n    The general idea is that the kd-tree is a binary trie, each of whose\n    nodes represents an axis-aligned hyperrectangle. Each node specifies\n    an axis and splits the set of points based on whether their coordinate\n    along that axis is greater than or less than a particular value. \n\n    During construction, the axis and splitting point are chosen by the \n    \"sliding midpoint\" rule, which ensures that the cells do not all\n    become long and thin. \n\n    The tree can be queried for the r closest neighbors of any given point \n    (optionally returning only those within some maximum distance of the \n    point). It can also be queried, with a substantial gain in efficiency, \n    for the r approximate closest neighbors.\n\n    For large dimensions (20 is already large) do not expect this to run \n    significantly faster than brute force. High-dimensional nearest-neighbor\n    queries are a substantial open problem in computer science.\n    "), /*tp_doc*/
+  __Pyx_DOCSTR("kd-tree for quick nearest-neighbor lookup\n\n    This class provides an index into a set of k-dimensional points\n    which can be used to rapidly look up the nearest neighbors of any\n    point. \n\n    The algorithm used is described in Maneewongvatana and Mount 1999. \n    The general idea is that the kd-tree is a binary trie, each of whose\n    nodes represents an axis-aligned hyperrectangle. Each node specifies\n    an axis and splits the set of points based on whether their coordinate\n    along that axis is greater than or less than a particular value. \n\n    During construction, the axis and splitting point are chosen by the \n    \"sliding midpoint\" rule, which ensures that the cells do not all\n    become long and thin. \n\n    The tree can be queried for the r closest neighbors of any given point \n    (optionally returning only those within some maximum distance of the \n    point). It can also be queried, with a substantial gain in efficiency, \n    for the r approximate closest neighbors.\n\n    For large dimensions (20 is already large) do not expect this to run \n    significantly faster than brute force. High-dimensional nearest-neighbor\n    queries are a substantial open problem in computer science.\n\n    Parameters\n    ----------\n    data : array-like, shape (n,m)\n        The n data points of dimension mto be indexed. This array is \n        not copied unless this is necessary to produce a contiguous \n        array of doubles, and so modifying this data will result in \n        bogus results.\n    leafsize : positive integer\n        The number of points at which the algorithm switches over to\n        brute-force.\n\n    "), /*tp_doc*/
   __pyx_tp_traverse_5scipy_7spatial_7ckdtree_cKDTree, /*tp_traverse*/
   __pyx_tp_clear_5scipy_7spatial_7ckdtree_cKDTree, /*tp_clear*/
   0, /*tp_richcompare*/
@@ -7656,7 +7651,6 @@
   {&__pyx_kp_u_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 1, 0, 0},
   {&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0},
   {&__pyx_kp_u_13, __pyx_k_13, sizeof(__pyx_k_13), 0, 1, 0, 0},
-  {&__pyx_kp_u_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 1, 0, 0},
   {&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0},
   {&__pyx_n_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 1},
   {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0},
@@ -7668,7 +7662,6 @@
   {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1},
   {&__pyx_n_s____build, __pyx_k____build, sizeof(__pyx_k____build), 0, 0, 1, 1},
   {&__pyx_n_s____free_tree, __pyx_k____free_tree, sizeof(__pyx_k____free_tree), 0, 0, 1, 1},
-  {&__pyx_n_s____init__, __pyx_k____init__, sizeof(__pyx_k____init__), 0, 0, 1, 1},
   {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
   {&__pyx_n_s____query, __pyx_k____query, sizeof(__pyx_k____query), 0, 0, 1, 1},
   {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
@@ -7844,7 +7837,7 @@
   /*--- Function import code ---*/
   /*--- Execution code ---*/
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":3
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":3
  * # Copyright Anne M. Archibald 2008
  * # Released under the scipy license
  * import numpy as np             # <<<<<<<<<<<<<<
@@ -7856,7 +7849,7 @@
   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__np, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":7
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":7
  * cimport stdlib
  * 
  * import kdtree             # <<<<<<<<<<<<<<
@@ -7868,7 +7861,7 @@
   if (PyObject_SetAttr(__pyx_m, __pyx_n_s__kdtree, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":9
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":9
  * import kdtree
  * 
  * cdef double infinity = np.inf             # <<<<<<<<<<<<<<
@@ -7884,16 +7877,16 @@
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_v_5scipy_7spatial_7ckdtree_infinity = __pyx_t_3;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":517
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":515
  * 
  *     def query(cKDTree self, object x, int k=1, double eps=0, double p=2,
  *             double distance_upper_bound=infinity):             # <<<<<<<<<<<<<<
- *         """query the kd-tree for nearest neighbors
+ *         """Query the kd-tree for nearest neighbors.
  * 
  */
   __pyx_k_4 = __pyx_v_5scipy_7spatial_7ckdtree_infinity;
 
-  /* "/Users/mb312/dev_trees/scipy-work/scipy/spatial/ckdtree.pyx":1
+  /* "/Users/rgommers/Code/scipy/scipy/spatial/ckdtree.pyx":1
  * # Copyright Anne M. Archibald 2008             # <<<<<<<<<<<<<<
  * # Released under the scipy license
  * import numpy as np
@@ -7902,7 +7895,7 @@
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __pyx_t_1 = PyObject_GetAttr(__pyx_m, __pyx_n_s__cKDTree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__query); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_GetAttrString(__pyx_t_4, "__doc__");
@@ -7910,20 +7903,10 @@
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_kp_u_13), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_GetAttr(__pyx_m, __pyx_n_s__cKDTree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__query); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_GetAttrString(__pyx_t_4, "__doc__");
-  __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_kp_u_14), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
-  /* "/Users/mb312/usr/local/lib/python2.6/site-packages/Cython/Includes/stdlib.pxd":2
+  /* "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Cython-0.12.1-py2.6-macosx-10.3-fat.egg/Cython/Includes/stdlib.pxd":2
  * 
  * cdef extern from "stdlib.h" nogil:             # <<<<<<<<<<<<<<
  *     void free(void *ptr)

Modified: trunk/scipy/spatial/ckdtree.pyx
===================================================================
--- trunk/scipy/spatial/ckdtree.pyx	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/scipy/spatial/ckdtree.pyx	2011-02-20 13:30:33 UTC (rev 7164)
@@ -179,6 +179,18 @@
     For large dimensions (20 is already large) do not expect this to run 
     significantly faster than brute force. High-dimensional nearest-neighbor
     queries are a substantial open problem in computer science.
+
+    Parameters
+    ----------
+    data : array-like, shape (n,m)
+        The n data points of dimension mto be indexed. This array is 
+        not copied unless this is necessary to produce a contiguous 
+        array of doubles, and so modifying this data will result in 
+        bogus results.
+    leafsize : positive integer
+        The number of points at which the algorithm switches over to
+        brute-force.
+
     """
 
     cdef innernode* tree 
@@ -193,20 +205,6 @@
     cdef object indices
     cdef np.int32_t* raw_indices
     def __init__(cKDTree self, data, int leafsize=10):
-        """Construct a kd-tree.
-
-        Parameters:
-        ===========
-
-        data : array-like, shape (n,m)
-            The n data points of dimension mto be indexed. This array is 
-            not copied unless this is necessary to produce a contiguous 
-            array of doubles, and so modifying this data will result in 
-            bogus results.
-        leafsize : positive integer
-            The number of points at which the algorithm switches over to
-            brute-force.
-        """
         cdef np.ndarray[double, ndim=2] inner_data
         cdef np.ndarray[double, ndim=1] inner_maxes
         cdef np.ndarray[double, ndim=1] inner_mins
@@ -515,14 +513,13 @@
 
     def query(cKDTree self, object x, int k=1, double eps=0, double p=2, 
             double distance_upper_bound=infinity):
-        """query the kd-tree for nearest neighbors
+        """Query the kd-tree for nearest neighbors.
 
-        Parameters:
-        ===========
-
-        x : array-like, last dimension self.m
+        Parameters
+        ----------
+        x : array_like, last dimension self.m
             An array of points to query.
-        k : integer
+        k : int
             The number of nearest neighbors to return.
         eps : nonnegative float
             Return approximate nearest neighbors; the kth returned value 
@@ -539,17 +536,17 @@
             queries, it may help to supply the distance to the nearest neighbor
             of the most recent point.
 
-        Returns:
-        ========
-        
-        d : array of floats
+        Returns
+        -------
+        d : ndarray of floats
             The distances to the nearest neighbors. 
             If x has shape tuple+(self.m,), then d has shape tuple+(k,).
             Missing neighbors are indicated with infinite distances.
-        i : array of integers
+        i : ndarray of ints
             The locations of the neighbors in self.data.
             If x has shape tuple+(self.m,), then i has shape tuple+(k,).
             Missing neighbors are indicated with self.n.
+
         """
         cdef np.ndarray[int, ndim=2] ii
         cdef np.ndarray[double, ndim=2] dd

Modified: trunk/scipy/stats/mstats_basic.py
===================================================================
--- trunk/scipy/stats/mstats_basic.py	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/scipy/stats/mstats_basic.py	2011-02-20 13:30:33 UTC (rev 7164)
@@ -907,8 +907,12 @@
 
 def ks_twosamp_old(data1, data2):
     """ Computes the Kolmogorov-Smirnov statistic on 2 samples.
-    Returns: KS D-value, p-value
-    #"""
+
+    Returns
+    -------
+    KS D-value, p-value
+
+    """
     (data1, data2) = [ma.asarray(d).compressed() for d in (data1,data2)]
     return stats.ks_2samp(data1,data2)
 
@@ -920,12 +924,12 @@
 def threshold(a, threshmin=None, threshmax=None, newval=0):
     """Clip array to a given value.
 
-Similar to numpy.clip(), except that values less than threshmin or
-greater than threshmax are replaced by newval, instead of by
-threshmin and threshmax respectively.
+    Similar to numpy.clip(), except that values less than threshmin or
+    greater than threshmax are replaced by newval, instead of by
+    threshmin and threshmax respectively.
 
-Parameters
-----------
+    Parameters
+    ----------
     a : ndarray
         Input data
     threshmin : {None, float} optional
@@ -935,11 +939,11 @@
     newval : {0, float} optional
         Value outside the thresholds.
 
-Returns
--------
+    Returns
+    -------
     a, with values less (greater) than threshmin (threshmax) replaced with newval.
 
-"""
+    """
     a = ma.array(a, copy=True)
     mask = np.zeros(a.shape, dtype=bool)
     if threshmin is not None:
@@ -1082,6 +1086,7 @@
 
 def trim(a, limits=None, inclusive=(True,True), relative=False, axis=None):
     """Trims an array by masking the data outside some given limits.
+
     Returns a masked version of the input array.
    %s
 

Modified: trunk/scipy/stats/stats.py
===================================================================
--- trunk/scipy/stats/stats.py	2011-02-20 09:58:04 UTC (rev 7163)
+++ trunk/scipy/stats/stats.py	2011-02-20 13:30:33 UTC (rev 7164)
@@ -1656,14 +1656,18 @@
 
 def obrientransform(*args):
     """
-Computes a transform on input data (any number of columns).  Used to
-test for homogeneity of variance prior to running one-way stats.  Each
-array in *args is one level of a factor.  If an F_oneway() run on the
-transformed data and found significant, variances are unequal.   From
-Maxwell and Delaney, p.112.
+    Computes a transform on input data (any number of columns).
 
-Returns: transformed data for use in an ANOVA
-"""
+    Used to test for homogeneity of variance prior to running one-way stats.
+    Each array in *args is one level of a factor.  If an F_oneway() run on the
+    transformed data and found significant, variances are unequal.   From
+    Maxwell and Delaney, p.112.
+
+    Returns
+    -------
+    Transformed data for use in an ANOVA
+
+    """
     TINY = 1e-10
     k = len(args)
     n = zeros(k)
@@ -1696,7 +1700,6 @@
     Calculates the signal-to-noise ratio, defined as the ratio between the mean
     and the standard deviation.
 
-
     Parameters
     ----------
     a: array-like
@@ -1707,7 +1710,6 @@
     ddof : integer, optional, default 0
         degrees of freedom correction for standard deviation
 
-
     Returns
     -------
     array containing the value of the ratio of the mean to the standard
@@ -3389,7 +3391,10 @@
     Sciences.  New York: McGraw-Hill.  Code adapted from |Stat rankind.c
     code.
 
-    Returns: T correction factor for U or H
+    Returns
+    -------
+    T correction factor for U or H
+
     """
     sorted,posn = fastsort(asarray(rankvals))
     n = len(sorted)
@@ -3651,7 +3656,10 @@
     I. Non-inferential methods and statistical models.  Phil Trans Royal Soc
     Lond B 354: 1239-1260.
 
-    Returns: statistic, p-value ???
+    Returns
+    -------
+    statistic, p-value ???
+
     """
     if len(para) != len(data):
         raise ValueError("data and para must be same length in aglm")




More information about the Scipy-svn mailing list