API References

Circuit Cutting

Circuit Cutting (qiskit_addon_cutting).

Circuit Cutting

cut_wires

Transform all CutWire instructions in a circuit to Move instructions marked for cutting.

expand_observables

Expand observable(s) according to the qubit mapping between original_circuit and final_circuit.

partition_circuit_qubits

Replace all nonlocal gates belonging to more than one partition with instances of TwoQubitQPDGate.

partition_problem

Separate an input circuit and observable(s).

cut_gates

Transform specified gates into TwoQubitQPDGates.

generate_cutting_experiments

Generate cutting subexperiments and their associated coefficients.

reconstruct_expectation_values

Reconstruct an expectation value from the results of the sub-experiments.

PartitionedCuttingProblem

The result of decomposing and separating a circuit and observable(s).

instructions.CutWire

An instruction for denoting a wire cut location.

instructions.Move

A two-qubit instruction representing a reset of the second qubit followed by a swap.

Automatic Cut Finding

find_cuts

Find cut locations in a circuit, given optimization parameters and cutting constraints.

OptimizationParameters

Specify parameters that control the optimization.

DeviceConstraints

Specify the constraints (qubits per subcircuit) that must be respected.

Quasi-Probability Decomposition (QPD)

qpd.QPDBasis

Basis in which to decompose an operation.

qpd.BaseQPDGate

Base class for a gate to be decomposed using quasiprobability decomposition.

qpd.SingleQubitQPDGate

Single qubit gate to be decomposed using quasiprobability decomposition.

qpd.TwoQubitQPDGate

Two qubit gate to be decomposed using quasiprobability decomposition.

qpd.WeightType

Type of weight associated with a QPD sample.

qpd.generate_qpd_weights

Generate weights from the joint quasiprobability distribution.

qpd.decompose_qpd_instructions

Replace all QPD instructions in the circuit with local Qiskit operations and measurements.

qpd.qpdbasis_from_instruction

Generate a QPDBasis object, given a supported operation.

Utilities

Utility functions.

Bitwise utilities (qiskit_addon_cutting.utils.bitwise)

Bitwise utilities.

bit_count(x, /)

Count number of set bits.

Iteration utilities (qiskit_addon_cutting.utils.iteration)

Iteration utilities.

unique_by_id(iterable, /)

Return unique objects in iterable, by identity.

unique_by_eq(iterable, /)

Return unique objects in iterable, by equality.

Observable grouping (qiskit_addon_cutting.utils.observable_grouping)

Module for conducting Pauli observable grouping.

observables_restricted_to_subsystem(qubits, ...)

Restrict each observable to its support on a given subsystem.

CommutingObservableGroup(general_observable, ...)

Set of mutually qubit-wise commuting observables.

ObservableCollection(observables, /)

Collection of observables organized for efficient taking of measurements.

Simulation (qiskit_addon_cutting.utils.simulation)

Simulation of precise measurement outcome probabilities.

simulate_statevector_outcomes(qc, /)

Return each classical outcome along with its precise probability.

ExactSampler(*[, options])

Sampler which returns exact probabilities for each possible outcome.

Transforms (qiskit_addon_cutting.utils.transforms)

Functions for manipulating quantum circuits.

separate_circuit(circuit[, partition_labels])

Separate the circuit into its disconnected components.

SeparatedCircuits(subcircuits, qubit_map)

Named tuple for result of separate_circuit().

Transpiler passes (qiskit_addon_cutting.utils.transpiler_passes)

Transpiler passes useful for circuit knitting.

RemoveFinalReset(*args, **kwargs)

Remove reset when it is the final instruction on a qubit wire.

ConsolidateResets(*args, **kwargs)

Consolidate a run duplicate resets in to a single reset.