Skip to content

Commit

Permalink
Change JKMN Majorana definition so mapped Hamiltonian is real (#219)
Browse files Browse the repository at this point in the history
* JKMN now ensures a real fermion Hamiltonian is now mapped to a real qubit Hamiltonian
  • Loading branch information
JamesB-1qbit authored Sep 22, 2022
1 parent 0121c27 commit ca162e4
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions tangelo/toolboxes/qubit_mappings/jkmn.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ def _jkmn_dict(n_qubits):
stjkmn_map[2*tup[0]] = tjkmn_map[2*i]
stjkmn_map[2*tup[0]+1] = tjkmn_map[2*i+1]
elif tup[1] == 'Y' and (tup[0], 'X') in q2:
stjkmn_map[2*tup[0]+1] = tjkmn_map[2*i]
stjkmn_map[2*tup[0]] = tjkmn_map[2*i+1]
stjkmn_map[2*tup[0]] = -tjkmn_map[2*i]
stjkmn_map[2*tup[0]+1] = tjkmn_map[2*i+1]

return stjkmn_map

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ def test_jkmn(self):
jkmn_operator += QubitOperator(((0, "X"), (2, "Z"), (3, "Y")), 0.125j)
jkmn_operator += QubitOperator(((0, "Y"), (1, "Z"), (3, "X")), -0.125j)
jkmn_operator += QubitOperator(((0, "Y"), (1, "Z"), (3, "Y")), 0.125)
jkmn_operator += QubitOperator(((0, "Z"), (1, "X"), (2, "X")), 0.25j)
jkmn_operator += QubitOperator(((0, "Z"), (1, "X"), (2, "Y")), 0.25)
jkmn_operator += QubitOperator(((0, "Z"), (1, "Y"), (2, "X")), -0.25)
jkmn_operator += QubitOperator(((0, "Z"), (1, "Y"), (2, "Y")), 0.25j)
jkmn_operator += QubitOperator(((0, "Z"), (1, "X"), (2, "X")), 0.25)
jkmn_operator += QubitOperator(((0, "Z"), (1, "X"), (2, "Y")), -0.25j)
jkmn_operator += QubitOperator(((0, "Z"), (1, "Y"), (2, "X")), 0.25j)
jkmn_operator += QubitOperator(((0, "Z"), (1, "Y"), (2, "Y")), 0.25)

fermion = FermionOperator(((1, 0), (2, 1)), 1.0) + FermionOperator(((0, 1), (3, 0)), 0.5)

Expand Down

0 comments on commit ca162e4

Please sign in to comment.