test some adjacent toffoli gates
This commit is contained in:
parent
60a11f143e
commit
b98ffcb396
17
lib.py
17
lib.py
@ -650,6 +650,7 @@ class UnitaryOperator(LinearTransformation, UnitaryMatrix):
|
||||
extended_m[1].append(I)
|
||||
else:
|
||||
this_partial = self.partials[next_partial]
|
||||
# TODO: This works only with C_partial :(((
|
||||
if this_partial == C_partial:
|
||||
extended_m[0].append(s("|0><0|"))
|
||||
extended_m[1].append(s("|1><1|"))
|
||||
@ -1002,9 +1003,12 @@ def test_partials():
|
||||
assert CNOT.on(s("|1000>"), which_qbit=[0, 3]) == s("|1001>")
|
||||
|
||||
# test Toffoli gate
|
||||
# assert TOFF.on(s("|000>")) == s("|000>")
|
||||
# assert TOFF.on(s("|100>")) == s("|100>")
|
||||
# assert TOFF.on(s("|110>")) == s("|111>")
|
||||
assert TOFF.on(s("|000>")) == s("|000>")
|
||||
assert TOFF.on(s("|100>")) == s("|100>")
|
||||
assert TOFF.on(s("|110>")) == s("|111>")
|
||||
assert TOFF.on(s("|111>")) == s("|110>")
|
||||
|
||||
# TODO: This doesn't work :(((
|
||||
# assert TOFF.on(s("|1100>"), which_qbit=[0, 1, 3]) == s("|1101>")
|
||||
|
||||
|
||||
@ -1275,13 +1279,6 @@ class QuantumCircuit(object):
|
||||
self.add_row(row_data)
|
||||
|
||||
def compose_quantum_state(self, step):
|
||||
partials = [op for op in step if isinstance(op, PartialQubit)]
|
||||
# TODO: No more than 1 TwoQubitGate **OR** UnitaryOperator can be
|
||||
# used in a step
|
||||
for partial in partials:
|
||||
two_qubit_op = partial.operator
|
||||
two_qubit_op.verify_step()
|
||||
return two_qubit_op.compose(step)
|
||||
return reduce((lambda x, y: x * y), step)
|
||||
|
||||
def step(self):
|
||||
|
Loading…
Reference in New Issue
Block a user