def _evaluate_objective_multiple(objective_function, arg_batch,<EOL>batch_evaluate_objective):
n_points = tf.shape(input=arg_batch)[<NUM_LIT:0>]<EOL>if batch_evaluate_objective:<EOL><INDENT>return objective_function(arg_batch), n_points<EOL><DEDENT>return tf.map_fn(objective_function, arg_batch), n_points<EOL>
Evaluates the objective function on a batch of points.

    If `batch_evaluate_objective` is True, returns
    `objective function(arg_batch)` else it maps the `objective_function`
    across the `arg_batch`.

    Args:
      objective_function: A Python callable that accepts a single `Tensor` of
        rank 'R > 1' and any shape 's' and returns a scalar `Tensor` of real dtype
        containing the value of the function at that point. If
        `batch a `Tensor` of shape `[batch_size] + s ` where `batch_size` is the
        size of the batch of args. In this case, the expected return value is a
        `Tensor` of shape `[batch_size]`.
      arg_batch: A `Tensor` of real dtype. The batch of arguments at which to
        evaluate the `objective_function`. If `batch_evaluate_objective` is False,
        `arg_batch` will be unpacked along the zeroth axis and the
        `objective_function` will be applied to each element.
      batch_evaluate_objective: `bool`. Whether the `objective_function` can
        evaluate a batch of arguments at once.

    Returns:
      A tuple containing:
        objective_values: A `Tensor` of real dtype and shape `[batch_size]`.
          The value of the objective function evaluated at the supplied
          `arg_batch`.
        num_evaluations: An `int32` scalar `Tensor`containing the number of
          points on which the objective function was evaluated (i.e `batch_size`).