docs: def simulate_sweep(
          self,
          program: Union[circuits.Circuit, schedules.Schedule],
          params: study.Sweepable,
          qubit_order: ops.QubitOrderOrList = ops.QubitOrder.DEFAULT,
          initial_state: Any = None,
      ) -> List['SimulationTrialResult']:
          """Simulates the supplied Circuit or Schedule.
  
          This method returns a result which allows access to the entire
          wave function. In contrast to simulate, this allows for sweeping
          over different parameter values.
  
          Args:
              program: The circuit or schedule to simulate.
              params: Parameters to run with the program.
              qubit_order: Determines the canonical ordering of the qubits. This
                  is often used in specifying the initial state, i.e. the
                  ordering of the computational basis states.
              initial_state: The initial state for the simulation. The form of
                  this state depends on the simulation implementation. See
                  documentation of the implementing class for details.
  
          Returns:
              List of SimulationTrialResults for this run, one for each
              possible parameter resolver.
          """
          circuit = (program if isinstance(program, circuits.Circuit)
                     else program.to_circuit())
          param_resolvers = study.to_resolvers(params)
  
          trial_results = []
          qubit_order = ops.QubitOrder.as_qubit_order(qubit_order)
          for param_resolver in param_resolvers:
              all_step_results = self.simulate_moment_steps(circuit,
                                                            param_resolver,
                                                            qubit_order,
                                                            initial_state)
              measurements = {}  # type: Dict[str, np.ndarray]
              for step_result in all_step_results:
                  for k, v in step_result.measurements.items():
                      measurements[k] = np.array(v, dtype=bool)
              trial_results.append(
                  self._create_simulator_trial_result(
                      params=param_resolver,
                      measurements=measurements,
                      final_simulator_state=step_result.simulator_state()))
          return trial_results