fixing parametrization flag and updating relevant test scripts

This commit is contained in:
Mattia Robbiano
2025-09-20 17:00:07 +02:00
parent 9853e86deb
commit 271a44576d
3 changed files with 284 additions and 489 deletions

View File

@@ -376,45 +376,6 @@ class QuimbBackend(QibotnBackend, NumpyBackend):
return A_new, B_new, C_new
# def _qibo_circuit_to_quimb(self, qibo_circ, quimb_circuit_type=qtn.Circuit, **circuit_kwargs):
# """
# Convert a Qibo Circuit to a Quimb Circuit.
# Parameters
# ----------
# qibo_circ : qibo.models.circuit.Circuit
# The circuit to convert.
# quimb_circuit_type : type
# The Quimb circuit class to use (Circuit, CircuitMPS, etc).
# circuit_kwargs : dict
# Extra arguments to pass to the Quimb circuit constructor.
# Returns
# -------
# circ : quimb.tensor.circuit.Circuit
# The converted circuit.
# """
# nqubits = qibo_circ.nqubits
# quimb_gates = []
# circ = quimb_circuit_type(nqubits, **circuit_kwargs)
# for gate in qibo_circ.queue:
# gname = getattr(gate, "name", None)
# qname = GATE_MAP.get(gname, None)
# if qname is None:
# continue # skip measurements and unknown gates
# # Handle parametrized gates (Qibo: .parameters, Quimb: expects flat tuple)
# params = getattr(gate, "parameters", ())
# qubits = getattr(gate, "qubits", ())
# # Quimb expects (*params, *qubits)
# gate_spec = (qname,) + tuple(params) + tuple(qubits)
# quimb_gates.append(gate_spec)
# circ.apply_gates(quimb_gates)
# return circ
def _qibo_circuit_to_quimb(self, qibo_circ, quimb_circuit_type=qtn.Circuit, **circuit_kwargs):
"""
Convert a Qibo Circuit to a Quimb Circuit.
@@ -446,8 +407,11 @@ class QuimbBackend(QibotnBackend, NumpyBackend):
qubits = getattr(gate, "qubits", ())
# Check if the gate is parametrized
is_parametrized = isinstance(gate, ParametrizedGate)
is_parametrized = (
isinstance(gate, ParametrizedGate)
and getattr(gate, "trainable", True)
)
# import pdb; pdb.set_trace()
if is_parametrized:
circ.apply_gate(
qname,