code: def _jacobian_both(nodes, degree, dimension):
      r
      _, num_nodes = nodes.shape
      result = np.empty((2 * dimension, num_nodes - degree - 1), order="F")
      result[:dimension, :] = jacobian_s(nodes, degree, dimension)
      result[dimension:, :] = jacobian_t(nodes, degree, dimension)
      return result
docs: r"""Compute :math:`s` and :math:`t` partial of :math:`B`.
  
      .. note::
  
         There is also a Fortran implementation of this function, which
         will be used if it can be built.
  
      Args:
          nodes (numpy.ndarray): Array of nodes in a surface.
          degree (int): The degree of the surface.
          dimension (int): The dimension the surface lives in.
  
      Returns:
          numpy.ndarray: Nodes of the Jacobian surfaces in
              B |eacute| zier form.