code: def _evaluate_cartesian_multi(nodes, degree, param_vals, dimension):
      r
      num_vals, _ = param_vals.shape
      result = np.empty((dimension, num_vals), order="F")
      for index, (s, t) in enumerate(param_vals):
          result[:, index] = evaluate_barycentric(
              nodes, degree, 1.0 - s - t, s, t
          )[:, 0]
      return result
docs: r"""Compute multiple points on the surface.
  
      .. note::
  
         There is also a Fortran implementation of this function, which
         will be used if it can be built.
  
      Args:
          nodes (numpy.ndarray): Control point nodes that define the surface.
          degree (int): The degree of the surface define by ``nodes``.
          param_vals (numpy.ndarray): Array of parameter values (as a
              ``N x 2`` array).
          dimension (int): The dimension the surface lives in.
  
      Returns:
          numpy.ndarray: The evaluated points, where columns correspond to
          rows of ``param_vals`` and the rows to the dimension of the
          underlying surface.