fix: changed arg names
This commit is contained in:
@@ -4,7 +4,7 @@ from qibo.config import raise_error
|
|||||||
|
|
||||||
from qibotn.backends.abstract import QibotnBackend
|
from qibotn.backends.abstract import QibotnBackend
|
||||||
from qibotn.backends.cutensornet import CuTensorNet # pylint: disable=E0401
|
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")
|
PLATFORMS = ("cutensornet", "qutensornet", "qmatchatea")
|
||||||
|
|
||||||
@@ -27,7 +27,10 @@ class MetaBackend:
|
|||||||
return CuTensorNet(runcard)
|
return CuTensorNet(runcard)
|
||||||
elif platform == "quimb": # pragma: no cover
|
elif platform == "quimb": # pragma: no cover
|
||||||
quimb_backend = kwargs.get("quimb_backend", "numpy")
|
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
|
elif platform == "qmatchatea": # pragma: no cover
|
||||||
from qibotn.backends.qmatchatea import QMatchaTeaBackend
|
from qibotn.backends.qmatchatea import QMatchaTeaBackend
|
||||||
|
|
||||||
|
|||||||
@@ -41,15 +41,17 @@ GATE_MAP = {
|
|||||||
|
|
||||||
if not __name__ == "__main__":
|
if not __name__ == "__main__":
|
||||||
|
|
||||||
def __init__(self, engine="numpy"):
|
def __init__(self, quimb_backend="numpy", contraction_optimizer="auto-hq"):
|
||||||
super(self.__class__, self).__init__()
|
super(self.__class__, self).__init__()
|
||||||
|
|
||||||
self.name = "qibotn"
|
self.name = "qibotn"
|
||||||
self.platform = "quimb"
|
self.platform = "quimb"
|
||||||
self.engine = engine
|
self.backend = quimb_backend
|
||||||
|
|
||||||
self.configure_tn_simulation()
|
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(
|
def configure_tn_simulation(
|
||||||
self,
|
self,
|
||||||
@@ -300,13 +302,16 @@ if not __name__ == "__main__":
|
|||||||
The corresponding Quimb operator.
|
The corresponding Quimb operator.
|
||||||
"""
|
"""
|
||||||
op_str = op_str.lower()
|
op_str = op_str.lower()
|
||||||
|
# breakpoint()
|
||||||
op = qu.pauli(op_str[0])
|
op = qu.pauli(op_str[0])
|
||||||
for c in op_str[1:]:
|
for c in op_str[1:]:
|
||||||
op = op & qu.pauli(c)
|
op = op & qu.pauli(c)
|
||||||
return op
|
return op
|
||||||
|
|
||||||
|
|
||||||
def QuimbBackend(quimb_backend: str = "numpy") -> QibotnBackend:
|
def QuimbBackend(
|
||||||
|
quimb_backend: str = "numpy", contraction_optimizer="auto-hq"
|
||||||
|
) -> QibotnBackend:
|
||||||
bases = (QibotnBackend,)
|
bases = (QibotnBackend,)
|
||||||
methods = {
|
methods = {
|
||||||
"__init__": __init__,
|
"__init__": __init__,
|
||||||
@@ -332,4 +337,4 @@ def QuimbBackend(quimb_backend: str = "numpy") -> QibotnBackend:
|
|||||||
else:
|
else:
|
||||||
raise_error(ValueError, f"Unsupported quimb backend: {quimb_backend}")
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user