code: def _compute_edge_nodes(nodes, degree):
      
      dimension, _ = np.shape(nodes)
      nodes1 = np.empty((dimension, degree + 1), order="F")
      nodes2 = np.empty((dimension, degree + 1), order="F")
      nodes3 = np.empty((dimension, degree + 1), order="F")
      curr2 = degree
      curr3 = -1
      for i in six.moves.xrange(degree + 1):
          nodes1[:, i] = nodes[:, i]
          nodes2[:, i] = nodes[:, curr2]
          nodes3[:, i] = nodes[:, curr3]
          # Update the indices.
          curr2 += degree - i
          curr3 -= i + 2
      return nodes1, nodes2, nodes3
docs: Compute the nodes of each edges of a surface.
  
      .. note::
  
         There is also a Fortran implementation of this function, which
         will be used if it can be built.
  
      Args:
          nodes (numpy.ndarray): Control point nodes that define the surface.
          degree (int): The degree of the surface define by ``nodes``.
  
      Returns:
          Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]: The nodes in
          the edges of the surface.