Skip to content

Commit 2b03cfc

Browse files
committed
Abstract class PauliHamiltonian with two subclasses
1 parent fd2d1ec commit 2b03cfc

File tree

6 files changed

+872
-316
lines changed

6 files changed

+872
-316
lines changed

src/qrisp/operators/pauli/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
# -*- coding: utf-8 -*-
2020

21-
from qrisp.operators.pauli.pauli_hamiltonian import *
21+
from qrisp.operators.pauli.unbound_pauli_hamiltonian import *
2222
from qrisp.operators.pauli.bound_pauli_hamiltonian import *
2323
from qrisp.operators.pauli.pauli_measurement import *
2424
from qrisp.operators.pauli.pauli import *

src/qrisp/operators/pauli/bound_pauli_hamiltonian.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def __sub__(self,other):
191191
result = BoundPauliHamiltonian(res_terms_dict)
192192
return result
193193

194-
def __sub__(self,other):
194+
def __rsub__(self,other):
195195
"""
196196
Returns the difference of the operator other and self.
197197

src/qrisp/operators/pauli/pauli.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,30 @@
1717
"""
1818

1919
from qrisp.circuit.qubit import Qubit
20-
from qrisp.operators.pauli.pauli_hamiltonian import PauliHamiltonian
20+
from qrisp.operators.pauli.unbound_pauli_hamiltonian import UnboundPauliHamiltonian
2121
from qrisp.operators.pauli.bound_pauli_hamiltonian import BoundPauliHamiltonian
22-
from qrisp.operators.pauli.pauli_term import PauliTerm
22+
from qrisp.operators.pauli.unbound_pauli_term import UnboundPauliTerm
2323
from qrisp.operators.pauli.bound_pauli_term import BoundPauliTerm
2424

2525
def X(arg):
2626
if isinstance(arg,int):
27-
return PauliHamiltonian({PauliTerm({arg:"X"}):1})
27+
return UnboundPauliHamiltonian({UnboundPauliTerm({arg:"X"}):1})
2828
elif isinstance(arg, Qubit):
2929
return BoundPauliHamiltonian({BoundPauliTerm({arg:"X"}):1})
3030
else:
3131
raise Exception("Cannot initialize operator from type "+str(type(arg)))
3232

3333
def Y(arg):
3434
if isinstance(arg,int):
35-
return PauliHamiltonian({PauliTerm({arg:"Y"}):1})
35+
return UnboundPauliHamiltonian({UnboundPauliTerm({arg:"Y"}):1})
3636
elif isinstance(arg, Qubit):
3737
return BoundPauliHamiltonian({BoundPauliTerm({arg:"Y"}):1})
3838
else:
3939
raise Exception("Cannot initialize operator from type "+str(type(arg)))
4040

4141
def Z(arg):
4242
if isinstance(arg,int):
43-
return PauliHamiltonian({PauliTerm({arg:"Z"}):1})
43+
return UnboundPauliHamiltonian({UnboundPauliTerm({arg:"Z"}):1})
4444
elif isinstance(arg, Qubit):
4545
return BoundPauliHamiltonian({BoundPauliTerm({arg:"Z"}):1})
4646
else:

0 commit comments

Comments
 (0)