Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests for the Clifford operator class #13

Merged

Conversation

ShellyGarion
Copy link

@ShellyGarion ShellyGarion commented Mar 10, 2020

Summary

Add tests for the Clifford gates. Depends on Qiskit#3938

Details and comments

  • Add tests for 1-qubit gates

  • Add tests for 1-qubit group relations

  • Add tests for 2-qubit gates

  • Add tests for 2-qubit group relations

@ShellyGarion
Copy link
Author

The v and w gates are not implemented well, since they do not satisfy the group identities, in particular not the identity v*w=i (the phases are not OK).
See the following output of the tests:

sdg*h=v: Clifford: Stabilizer = ['+X'], Destabilizer = ['+Y']  vs  Clifford: Stabilizer = ['-X'], Destabilizer = ['+Y']
h*s=w: Clifford: Stabilizer = ['+Y'], Destabilizer = ['+Z']  vs  Clifford: Stabilizer = ['-Y'], Destabilizer = ['-Z']
vw=i: Clifford: Stabilizer = ['+Z'], Destabilizer = ['-X']  vs  Clifford: Stabilizer = ['+Z'], Destabilizer = ['+X']

@chriseclectic
Copy link
Owner

@ShellyGarion W and V gates should be fixed now

@ShellyGarion ShellyGarion changed the title [WIP] tests for the Clifford operator class Tests for the Clifford operator class Mar 12, 2020
@ShellyGarion
Copy link
Author

The tests for the Clifford gates are complete.

@chriseclectic chriseclectic merged commit dd00c87 into chriseclectic:symplectic/clifford Mar 12, 2020
chriseclectic pushed a commit that referenced this pull request Apr 8, 2020
Fill in prelude about Pulse changes
chriseclectic pushed a commit that referenced this pull request May 21, 2021
* Implement ripple-carry adder circuit (#11)

* Implement initial draft of ripple-carry adder circuit

* Switch to ancilla register for ancilla qubits

* Remove padding for simpler implementation

* Add small fixes from review

* Add initial unit tests

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Switch carry out from ancilla to usual register

* Update __init__ docstring with raises

* Add suggestions from review; Clean-up

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add additional test for ripple-carry adder

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Implement QFT adder (#22)

* Implement initial draft of ripple-carry adder circuit

* Switch to ancilla register for ancilla qubits

* Remove padding for simpler implementation

* Add small fixes from review

* Add initial unit tests

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Switch carry out from ancilla to usual register

* Update __init__ docstring with raises

* Add suggestions from review; Clean-up

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add additional test for ripple-carry adder

* Implement initial QFT adder circuit

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Fix QFT adder carry out; Switch to non-modular as default

* Expand adder tests with QFT adder

* Rename test_adder.py -> test_adders.py

* Include additional QFT adder documentation

* Fix typos

* Fix documentation math

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add non-modular test as default

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Remove duplicate file after merge

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Implemented classical adder in QFT paper (#13)

* empty

* empty

* Implemented classical adder in QFT paper

* Implemented classical adder in QFT paper

* fix classicaladd imports

* fix missing imports

* Added the tests part for ClassicalAdd

* move cin to bottom

* Updated the documentation and test parts for ClassicalAdder

* Updated init files

* Deleted adder folder from the git repository

* Deleted test_classicaladd.py

* Deleted old classicaladder file

* Deleted __init__.py file from repository

* Updated classical_adder file

Co-authored-by: Cryoris <jules.gacon@googlemail.com>
Co-authored-by: Julien Gacon <gaconju@gmail.com>

* unify tests

* inject base class ``Adder``

* add reno

* fix lint

* fix trailing whitespace in line beginning

* rework docstrings for less duplication

* several updates

* modular RippleCarryAdder
* test that ancillas are uncomputed
* fix ClassicalAdder ancilla uncompute
* replace all to_instruction by to_gate

* lint

* rename classical to plain, make plain modular

* Renamed PlainAdder to VBERippleCarryAdder (#29)

Co-authored-by: Cryoris <jules.gacon@googlemail.com>

* rename modular->fixed point

and fix lint

* add author names to adders

* add comment on how the test works

* black

* add fixed/half/full, misses test for full

* add test for "full"

* black

* update docstrings

* fix sphinx

* rename fixed-point to fixed-sized

Co-authored-by: Mantas Čepulkovskis <60826723+mantcep@users.noreply.github.com>
Co-authored-by: Manjula <64902594+ManjulaGandhi@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
chriseclectic pushed a commit that referenced this pull request Jun 8, 2021
* Implement initial draft of ripple-carry adder circuit

* Switch to ancilla register for ancilla qubits

* Remove padding for simpler implementation

* Add small fixes from review

* Add initial unit tests

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Switch carry out from ancilla to usual register

* Update __init__ docstring with raises

* Add suggestions from review; Clean-up

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add additional test for ripple-carry adder

* Implement initial QFT adder circuit

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Fix QFT adder carry out; Switch to non-modular as default

* Expand adder tests with QFT adder

* Rename test_adder.py -> test_adders.py

* Include additional QFT adder documentation

* Fix typos

* Implement ripple-carry adder circuit (#11)

* Implement initial draft of ripple-carry adder circuit

* Switch to ancilla register for ancilla qubits

* Remove padding for simpler implementation

* Add small fixes from review

* Add initial unit tests

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Switch carry out from ancilla to usual register

* Update __init__ docstring with raises

* Add suggestions from review; Clean-up

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add additional test for ripple-carry adder

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Fix documentation math

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add non-modular test as default

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Remove duplicate file after merge

* Implement QFT adder (#22)

* Implement initial draft of ripple-carry adder circuit

* Switch to ancilla register for ancilla qubits

* Remove padding for simpler implementation

* Add small fixes from review

* Add initial unit tests

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Switch carry out from ancilla to usual register

* Update __init__ docstring with raises

* Add suggestions from review; Clean-up

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add additional test for ripple-carry adder

* Implement initial QFT adder circuit

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Fix QFT adder carry out; Switch to non-modular as default

* Expand adder tests with QFT adder

* Rename test_adder.py -> test_adders.py

* Include additional QFT adder documentation

* Fix typos

* Fix documentation math

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Add non-modular test as default

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Remove duplicate file after merge

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* Implemented classical adder in QFT paper (#13)

* empty

* empty

* Implemented classical adder in QFT paper

* Implemented classical adder in QFT paper

* fix classicaladd imports

* fix missing imports

* Added the tests part for ClassicalAdd

* move cin to bottom

* Updated the documentation and test parts for ClassicalAdder

* Updated init files

* Deleted adder folder from the git repository

* Deleted test_classicaladd.py

* Deleted old classicaladder file

* Deleted __init__.py file from repository

* Updated classical_adder file

Co-authored-by: Cryoris <jules.gacon@googlemail.com>
Co-authored-by: Julien Gacon <gaconju@gmail.com>

* unify tests

* inject base class ``Adder``

* add reno

* fix lint

* Implement initial classical multiplier

* Implement test for multipliers

* Update docstring

* fix trailing whitespace in line beginning

* rework docstrings for less duplication

* Change instructions to gates in adder circuits

* Generalize multiplier for any adder

* Expand multiplier test with all adders

* Fix pylint errors

* Implement review suggestions

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>

* several updates

* modular RippleCarryAdder
* test that ancillas are uncomputed
* fix ClassicalAdder ancilla uncompute
* replace all to_instruction by to_gate

* lint

* rename classical to plain, make plain modular

* Implement initial QFT multiplier draft

* Update QFT multiplier docstring

* Create common multiplier class

* Renamed PlainAdder to VBERippleCarryAdder (#29)

Co-authored-by: Cryoris <jules.gacon@googlemail.com>

* rename modular->fixed point

and fix lint

* add author names to adders

* add comment on how the test works

* black

* Fix common multiplier errors

* Update classical multiplier default adder name

* Fix QFT multiplier registers

* Implement tests for multipliers

* Fix lint

* Add black formatter changes

* Switch to adder object instead of type

* Update classical multiplier drawing

* Switch to PhaseGate in QFT multiplier

* Rename multipliers

* Implement modulo in QFT multiplier

* Update to half adder in cumulative multiplier

* Make number of output qubits optional

* Implement modular cumulative multiplier

* Add test for modular multiplication

* Fix wrong parameter name

* Expand common multiplier class with checks; Add more tests for multipliers

* Add black and lint changes

* Add releasenote

* Attempt cyclic import fix

* Attempt to fix cyclic import once more

* Update qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Update qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Update qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Update qiskit/circuit/library/arithmetic/multipliers/multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Update qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Add additional test cases

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Include circuit diagram for QFT multiplier

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Update docstring as suggested

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Move num_result_qubits logic to parent class

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Switch to NotImplementedError for cumulative multiplier

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Add black changes

* Update Multiplier class docstring

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Add lint changes

* Update qiskit/circuit/library/arithmetic/multipliers/multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Update qiskit/circuit/library/arithmetic/multipliers/multiplier.py

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Add black and pylint fixes

Co-authored-by: Julien Gacon <jules.gacon@googlemail.com>
Co-authored-by: Julien Gacon <gaconju@gmail.com>
Co-authored-by: Manjula <64902594+ManjulaGandhi@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants