Source code for qiskit_quimb.circuit
# (C) Copyright IBM 2024.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
from __future__ import annotations
import quimb.tensor
from qiskit.circuit import QuantumCircuit
from qiskit_quimb.gate import quimb_gates
[docs]
def quimb_circuit(
circuit: QuantumCircuit,
quimb_circuit_class: type[quimb.tensor.Circuit] = quimb.tensor.Circuit,
**kwargs,
) -> quimb.tensor.Circuit:
"""Convert a Qiskit circuit to a quimb circuit.
The quimb circuit is constructed using the ``from_gates`` method of the quimb
circuit class (``quimb.tensor.Circuit`` by default), passing along the keyword
arguments from ``kwargs``.
Args:
circuit: The Qiskit circuit.
quimb_circuit_class: The ``quimb.tensor.Circuit`` subclass to use.
Returns:
The quimb circuit.
"""
return quimb_circuit_class.from_gates(
quimb_gates(circuit), N=circuit.num_qubits, **kwargs
)