From 014f47967ffc68067cde80d9c1fe7ee31ce49041 Mon Sep 17 00:00:00 2001 From: BrunoLiegiBastonLiegi Date: Wed, 24 Sep 2025 13:23:51 +0200 Subject: [PATCH] fix: changed arg names --- src/qibotn/backends/__init__.py | 7 +++++-- src/qibotn/backends/quimb.py | 15 ++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/qibotn/backends/__init__.py b/src/qibotn/backends/__init__.py index 4a5dbdd..9cc1fe7 100644 --- a/src/qibotn/backends/__init__.py +++ b/src/qibotn/backends/__init__.py @@ -4,7 +4,7 @@ from qibo.config import raise_error from qibotn.backends.abstract import QibotnBackend from qibotn.backends.cutensornet import CuTensorNet # pylint: disable=E0401 -from qibotn.backends.quimb import QuimbBackend # pylint: disable=E0401 +from qibotn.backends.quimb import QuimbBackend PLATFORMS = ("cutensornet", "qutensornet", "qmatchatea") @@ -27,7 +27,10 @@ class MetaBackend: return CuTensorNet(runcard) elif platform == "quimb": # pragma: no cover quimb_backend = kwargs.get("quimb_backend", "numpy") - return QuimbBackend(quimb_backend) + contraction_optimizer = kwargs.get("quimb_backend", "auto-hq") + return QuimbBackend( + quimb_backend=quimb_backend, contraction_optimizer=contraction_optimizer + ) elif platform == "qmatchatea": # pragma: no cover from qibotn.backends.qmatchatea import QMatchaTeaBackend diff --git a/src/qibotn/backends/quimb.py b/src/qibotn/backends/quimb.py index d948bf9..6efaad7 100644 --- a/src/qibotn/backends/quimb.py +++ b/src/qibotn/backends/quimb.py @@ -41,15 +41,17 @@ GATE_MAP = { if not __name__ == "__main__": - def __init__(self, engine="numpy"): + def __init__(self, quimb_backend="numpy", contraction_optimizer="auto-hq"): super(self.__class__, self).__init__() self.name = "qibotn" self.platform = "quimb" - self.engine = engine + self.backend = quimb_backend self.configure_tn_simulation() - self.setup_backend_specifics(quimb_backend=engine) + self.setup_backend_specifics( + quimb_backend=quimb_backend, contractions_optimizer=contraction_optimizer + ) def configure_tn_simulation( self, @@ -300,13 +302,16 @@ if not __name__ == "__main__": The corresponding Quimb operator. """ op_str = op_str.lower() + # breakpoint() op = qu.pauli(op_str[0]) for c in op_str[1:]: op = op & qu.pauli(c) return op -def QuimbBackend(quimb_backend: str = "numpy") -> QibotnBackend: +def QuimbBackend( + quimb_backend: str = "numpy", contraction_optimizer="auto-hq" +) -> QibotnBackend: bases = (QibotnBackend,) methods = { "__init__": __init__, @@ -332,4 +337,4 @@ def QuimbBackend(quimb_backend: str = "numpy") -> QibotnBackend: else: raise_error(ValueError, f"Unsupported quimb backend: {quimb_backend}") - return type("QuimbBackend", bases, methods)(quimb_backend) + return type("QuimbBackend", bases, methods)(quimb_backend, contraction_optimizer)