Skip to content

Commit 91fbac5

Browse files
chore: adding todos for cirq multi observable
1 parent 5cc3f56 commit 91fbac5

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

mpqp/execution/providers/google.py

+13-6
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ def run_local(job: Job) -> Result:
179179
)
180180
else:
181181
return extract_result_OBSERVABLE_shot_noise(
182+
# TODO: here precise the 'grouper' argument of measure_observable to precise the pauli grouping strategy
182183
measure_observables(
183184
cirq_circuit,
184185
observables=( # pyright: ignore[reportArgumentType]
@@ -248,10 +249,10 @@ def run_local_processor(job: Job) -> Result:
248249
from cirq.ops.linear_combinations import PauliSum as Cirq_PauliSum
249250
from cirq.ops.pauli_string import PauliString as Cirq_PauliString
250251

251-
# TODO: update this to take into account the case when we have list of Observables
252252
if TYPE_CHECKING:
253253
assert isinstance(job.measure, ExpectationMeasure)
254254

255+
# TODO: update this to take into account the case when we have list of Observables
255256
cirq_obs = job.measure.observable.to_other_language(
256257
language=Language.CIRQ, circuit=cirq_circuit
257258
)
@@ -264,7 +265,10 @@ def run_local_processor(job: Job) -> Result:
264265
)
265266
return extract_result_OBSERVABLE_processors(
266267
simulator.get_sampler(job.device.value).sample_expectation_values(
267-
cirq_circuit, observables=cirq_obs, num_samples=job.measure.shots
268+
# TODO: update for multi-observable runs
269+
cirq_circuit,
270+
observables=cirq_obs,
271+
num_samples=job.measure.shots,
268272
),
269273
job,
270274
)
@@ -351,6 +355,7 @@ def extract_result_OBSERVABLE_processors(
351355
NotImplementedError: If the job does not contain a measurement (i.e.,
352356
``job.measure`` is ``None``).
353357
"""
358+
# TODO: update for multi-observable runs
354359
if job.measure is None:
355360
raise NotImplementedError("job.measure is None")
356361
mean = 0
@@ -377,12 +382,13 @@ def extract_result_OBSERVABLE_ideal(
377382
but this might result in slightly unexpected results.
378383
379384
Args:
380-
result : The result of the simulation.
381-
job : The original job.
385+
results: The result of the simulation.
386+
job: The original job.
382387
383388
Returns:
384389
The formatted result.
385390
"""
391+
# TODO: update for multi-observable runs
386392
if job.measure is None:
387393
raise NotImplementedError("job.measure is None")
388394
return Result(job, sum(map(lambda r: r.real, results)), 0, job.measure.shots)
@@ -395,12 +401,13 @@ def extract_result_OBSERVABLE_shot_noise(
395401
"""Extracts the result from an observable-based job.
396402
397403
Args:
398-
result : The result of the simulation.
399-
job : The original job.
404+
results: The result of the simulation.
405+
job: The original job.
400406
401407
Returns:
402408
The formatted result.
403409
"""
410+
# TODO: update for multi-observable runs
404411
if job.measure is None:
405412
raise NotImplementedError("job.measure is None")
406413
pauli_mono = PauliString.from_other_language(

0 commit comments

Comments
 (0)