code: def _elevate_nodes(nodes):
      r
      dimension, num_nodes = np.shape(nodes)
      new_nodes = np.empty((dimension, num_nodes + 1), order="F")
      multipliers = np.arange(1, num_nodes, dtype=_FLOAT64)[np.newaxis, :]
      denominator = float(num_nodes)
      new_nodes[:, 1:-1] = (
          multipliers * nodes[:, :-1]
          + (denominator - multipliers) * nodes[:, 1:]
      )
      # Hold off on division until the end, to (attempt to) avoid round-off.
      new_nodes /= denominator
      # After setting the internal nodes (which require division), set the
      # boundary nodes.
      new_nodes[:, 0] = nodes[:, 0]
      new_nodes[:, -1] = nodes[:, -1]
      return new_nodes
docs: r"""Degree-elevate a B |eacute| zier curves.
  
      Does this by converting the current nodes :math:`v_0, \ldots, v_n`
      to new nodes :math:`w_0, \ldots, w_{n + 1}` where
  
      .. math::
  
         \begin{align*}
         w_0 &= v_0 \\
         w_j &= \frac{j}{n + 1} v_{j - 1} + \frac{n + 1 - j}{n + 1} v_j \\
         w_{n + 1} &= v_n
         \end{align*}
  
      .. note::
  
         There is also a Fortran implementation of this function, which
         will be used if it can be built.
  
      Args:
          nodes (numpy.ndarray): The nodes defining a curve.
  
      Returns:
          numpy.ndarray: The nodes of the degree-elevated curve.