def vec_size(nodes, s_val):
    r"""Compute :math:`\|B(s)\|_2`.

    .. note::

        This is a helper for :func:`_compute_length` and does not have
        a Fortran speedup.

    Intended to be used with ``functools.partial`` to fill in the
    value of ``nodes`` and create a callable that only accepts ``s_val``.

    Args:
        nodes (numpy.ndarray): The nodes defining a curve.
        s_val (float): Parameter to compute :math:`B(s)`.

    Returns:
        float: The norm of :math:`B(s)`.
    """
    result_vec = evaluate_multi(nodes, np.asfortranarray([s_val]))
    # NOTE: We convert to 1D to make sure NumPy uses vector norm.
    return np.linalg.norm(result_vec[:, 0], ord=2)
r"""Compute :math:`\|B(s)\|_2`.

    .. note::

        This is a helper for :func:`_compute_length` and does not have
        a Fortran speedup.

    Intended to be used with ``functools.partial`` to fill in the
    value of ``nodes`` and create a callable that only accepts ``s_val``.

    Args:
        nodes (numpy.ndarray): The nodes defining a curve.
        s_val (float): Parameter to compute :math:`B(s)`.

    Returns:
        float: The norm of :math:`B(s)`.