code: def elevate(self):
          r
          new_nodes = _curve_helpers.elevate_nodes(self._nodes)
          return Curve(new_nodes, self._degree + 1, _copy=False)
docs: r"""Return a degree-elevated version of the current curve.
  
          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*}
  
          .. image:: ../../images/curve_elevate.png
             :align: center
  
          .. testsetup:: curve-elevate
  
             import numpy as np
             import bezier
  
          .. doctest:: curve-elevate
             :options: +NORMALIZE_WHITESPACE
  
             >>> nodes = np.asfortranarray([
             ...     [0.0, 1.5, 3.0],
             ...     [0.0, 1.5, 0.0],
             ... ])
             >>> curve = bezier.Curve(nodes, degree=2)
             >>> elevated = curve.elevate()
             >>> elevated
             <Curve (degree=3, dimension=2)>
             >>> elevated.nodes
             array([[0., 1., 2., 3.],
                    [0., 1., 1., 0.]])
  
          .. testcleanup:: curve-elevate
  
             import make_images
             make_images.curve_elevate(curve, elevated)
  
          Returns:
              Curve: The degree-elevated curve.