Skip to main content

Haiqu.statevector_run(circuits, job_name=None, job_description=None)

Run quantum circuits on a statevector simulator and obtain exact amplitudes of the wavefunctions. For the behaviour before 1.7.0, which returned a RunJobModel, use Legacy.statevector_run() (haiqu.legacy.statevector_run). This execution type is restricted to non-parametrized circuits up to 24 qubits in size. Circuits may contain Haiqu gates, but no mid-circuit measurements or other logical operations. Final measurements are mandatory, but ignored: the statevector is measured over all qubits in their standard Qiskit order. The returned amplitude ordering matches the indexing convention used by amplitude-based data loaders (vector_loading(), block_vector_loading(), function_loading(), distribution_loading(), mps_loading()): index i corresponds to the computational-basis ket whose binary label has rightmost bit = qubit 0.
  • Parameters:
    • circuits (QuantumCircuit | list *[*QuantumCircuit ] | CircuitModel | list *[*CircuitModel ]) — The quantum circuit(s) to execute. Can be a single circuit or a list of circuits.
    • job_name (str | None) — The name for the job. If None (default), a name will be automatically generated.
    • job_description (str | None) — The description for the job.
  • Returns: The Hybrid job that will execute the circuit. : Call job.result() to retrieve a list of complex-valued statevectors (one numpy array per input circuit), each of length 2**num_qubits in standard Qiskit ordering (rightmost bit = qubit 0). In a notebook, a link to the job on the Dashboard is also displayed when haiqu.verbosity is "high".
  • Return type: HybridJobModel

Examples

Single circuit:
Multiple circuits: