<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _compute_length(nodes):
 r"""Approximately compute the length of a curve. .. _QUADPACK: https://en.wikipedia.org/wiki/QUADPACK If ``degree`` is :math:`n`, then the Hodograph curve :math:`B'(s)` is degree :math:`d = n - 1`. Using this curve, we approximate the integral: .. math:: \int_{B\left(\left[0, 1\right]\right)} 1 \, d\mathbf{x} = \int_0^1 \left\lVert B'(s) \right\rVert_2 \, ds using `QUADPACK`_ (via SciPy). .. 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: float: The length of the curve. Raises: OSError: If SciPy is not installed. """

    _, num_nodes = np.shape(nodes)
    # NOTE: We somewhat replicate code in ``evaluate_hodograph()``
    #       here. This is so we don't re-compute the nodes for the first
    #       derivative every time it is evaluated.
    first_deriv = (num_nodes - 1) * (nodes[:, 1:] - nodes[:, :-1])
    if num_nodes == 2:
        # NOTE: We convert to 1D to make sure NumPy uses vector norm.
        return np.linalg.norm(first_deriv[:, 0], ord=2)

    if _scipy_int is None:
        raise OSError("This function requires SciPy for quadrature.")

    size_func = functools.partial(vec_size, first_deriv)
    length, _ = _scipy_int.quad(size_func, 0.0, 1.0)
    return length