Classes

class qiskit_rigetti.RigettiQCSProvider(*, compiler_timeout: float = 10.0, execution_timeout: float = 10.0, client_configuration: pyquil.api.QCSClient | None = None)

Class for representing the set of Rigetti backends.

Parameters:
  • execution_timeout – Time limit for execution requests, in seconds.

  • compiler_timeout – Time limit for compiler requests, in seconds.

  • client_configuration – QCS client configuration. If one is not provided, a default will be loaded.

backends(name: str | None = None, **__: Any)

Get the list of RigettiQCSBackend corresponding to the available Quantum Processors.

Parameters:

name – An optional QPU name to match against (e.g. “Aspen-9”). If provided, only matching backends will be returned.

Returns:

The list of matching backends.

Return type:

List[RigettiQCSBackend]

get_simulator(*, num_qubits: int, noisy: bool = False)

Get a simulator (QVM).

Parameters:
  • num_qubits – Number of qubits the simulator should have

  • noisy – Whether or not the simulator should simulate noise

Returns:

A backend representing the simulator

Return type:

RigettiQCSBackend

class qiskit_rigetti.RigettiQCSBackend(*, compiler_timeout: float, execution_timeout: float, client_configuration: pyquil.api.QCSClient, backend_configuration: qiskit.providers.models.QasmBackendConfiguration, provider: qiskit.providers.Provider | None, auto_set_coupling_map: bool = True, qc: pyquil.api.QuantumComputer | None = None, **fields: Any)

Class for representing a Rigetti backend, which may target a real QPU or a simulator.

Parameters:
  • execution_timeout – Time limit for execution requests, in seconds.

  • compiler_timeout – Time limit for compiler requests, in seconds.

  • client_configuration – QCS client configuration.

  • backend_configuration – Backend configuration.

  • provider – Parent provider.

  • qc – The QuantumComputer this backend represents to Qiskit.

  • auto_set_coupling_map – When True, this will set the QasmBackendConfiguration coupling_map based on the QuantumComputer topology if the existing coupling_map is empty.

  • fields – Keyword arguments for the values to use to override the default options.

property coupling_map
property qc
run(run_input: qiskit.QuantumCircuit | List[qiskit.QuantumCircuit], **options: Any)

Run the quantum circuit(s) using this backend.

Parameters:
  • run_input – Either a single QuantumCircuit to run or a list of them to run in parallel.

  • **options – Execution options to forward to RigettiQCSJob.

Returns:

The job that has been started. Wait for it by calling RigettiQCSJob.result()

Return type:

RigettiQCSJob

class qiskit_rigetti.RigettiQCSJob(*, job_id: str, circuits: List[qiskit.QuantumCircuit], options: Dict[str, Any], qc: pyquil.api.QuantumComputer, backend: qiskit.providers.Backend, configuration: qiskit.providers.models.QasmBackendConfiguration)

Class for representing execution jobs sent to Rigetti backends.

Parameters:
  • job_id – Unique identifier for this job

  • circuits – List of circuits to execute

  • options – Execution options (e.g. “shots”)

  • qc – Quantum computer to run against

  • backendRigettiQCSBackend that created this job

  • configuration – Configuration from parent backend

abstract cancel()
Raises:

NotImplementedError – There is currently no way to cancel this job.

result()

Wait until the job is complete, then return a result.

Raises:

JobError – If there was a problem running the Job or retrieving the result

status()

Get the current status of this Job

If this job was RUNNING when you called it, this function will block until the job is complete.

abstract submit()
Raises:

NotImplementedError – This class uses the asynchronous pattern, so this method should not be called.

class qiskit_rigetti.QuilCircuit(*regs: qiskit.circuit.register.Register | int | Sequence[qiskit.circuit.bit.Bit], name: str | None = None, global_phase: qiskit.circuit.parameterexpression.ParameterValueType = 0, metadata: dict | None = None)

A qiskit.circuit.QuantumCircuit extension with added support for standard Quil gates:

https://github.com/rigetti/quilc/blob/master/src/quil/stdgates.quil

can(alpha: float, beta: float, gamma: float, qubit1: Any, qubit2: Any)

Apply qiskit_rigetti.gates.can.CanonicalGate.

cphase00(theta: float, control_qubit: Any, target_qubit: Any)

Apply qiskit_rigetti.gates.cphase.CPhase00.

cphase01(theta: float, control_qubit: Any, target_qubit: Any)

Apply qiskit_rigetti.gates.cphase.CPhase01.

cphase10(theta: float, control_qubit: Any, target_qubit: Any)

Apply qiskit_rigetti.gates.cphase.CPhase10.

piswap(theta: float, qubit1: Any, qubit2: Any)

Apply qiskit_rigetti.gates.xy.XYGate.

pswap(theta: float, qubit1: Any, qubit2: Any)

Apply qiskit_rigetti.gates.pswap.PSwapGate.

xy(theta: float, qubit1: Any, qubit2: Any)

Apply qiskit_rigetti.gates.xy.XYGate.