This CircuitSweepExecutor
will compile the circuit
using quilc as a parameterized pyquil.api.QuantumExecutable
and on each iteration of resolvers
, rather than resolving the circuit
with cirq.protocols.resolve_parameters
, it will attempt to cast the resolver to a dict and pass it as a memory map to to pyquil.api.QuantumComputer
.
cirq_rigetti.circuit_sweep_executors.with_quilc_parametric_compilation(
*,
quantum_computer: QuantumComputer,
circuit: cirq.Circuit,
resolvers: Sequence[cirq.ParamResolverOrSimilarType],
repetitions: int,
transformer: cirq_rigetti.circuit_transformers.CircuitTransformer
= cirq_rigetti.circuit_transformers.default
) -> Sequence[cirq.Result]
Args |
quantum_computer
|
The pyquil.api.QuantumComputer against which to execute the circuit.
|
circuit
|
The cirq.Circuit to transform into a pyquil.Program and executed on the
quantum_computer .
|
resolvers
|
A sequence of parameter resolvers that this executor will write to memory
on a copy of the pyquil.api.QuantumExecutable for each parameter sweep.
|
repetitions
|
Number of times to run each iteration through the resolvers . For a given
resolver, the cirq.Result will include a measurement for each repetition.
|
transformer
|
A callable that transforms the cirq.Circuit into a pyquil.Program .
You may pass your own callable or any function from cirq_rigetti.circuit_transformers .
|
Returns |
A list of cirq.Result , each corresponding to a resolver in resolvers .
|