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

Refactor push and pop gate functions to use Base functions #109

Closed
Tracked by #82
tpoisot opened this issue Mar 27, 2023 · 1 comment · Fixed by #112 or #116
Closed
Tracked by #82

Refactor push and pop gate functions to use Base functions #109

tpoisot opened this issue Mar 27, 2023 · 1 comment · Fixed by #112 or #116
Assignees
Milestone

Comments

@tpoisot
Copy link

tpoisot commented Mar 27, 2023

I'm going through a tutorial with Calcul Québec right now, and I was wondering why the methods are called push_gate! and pop_gate! instead of overloading Base.push! and Base.pop!, since the types used as arguments would allow dispatch.

I'd be happy to open a PR if that would be a welcome change.

@plerouxanyon
Copy link
Collaborator

That is a good point. We are in the process of reworking the Circuit interface and I'd like this to be included. See #82.

@fSosaRey Please take note of this.

@plerouxanyon plerouxanyon changed the title Renaming push_ / pop_ ? Refactor push and pop gate functions to use Base functions Mar 28, 2023
@plerouxanyon plerouxanyon added this to the 1.0 - Stable release milestone Mar 28, 2023
@plerouxanyon plerouxanyon linked a pull request Apr 3, 2023 that will close this issue
fSosaRey referenced this issue Apr 4, 2023
* feat: signatures of DiagonalOperator

* fix: diagonalOperator struct

* feat: add test for DiagonalOperator

* feat: prototype implementation of DiagonalOperator for Phase and Pi_8 (or T) gates

* feat:benchmarking and plots

* docs: comments

* fix: remove files unrelated to this branch

* fix: added test for full coverage of AbstractGate

* fix: remove unneeded dependencies

* fix: add coverage for ajoint(DiagonalOperator) and printout

* fix: add test for get_inverse(DiagonalGate)

* feat: added support for DiagonalOperator with N targets

* fix: DiagonalOperator Ctor from complex-valued array

* fix: compatibility with Julia 1.6: UnitRange using different types for start and stop

* feat: all diagonal gates integrated into existing features and test

* fix: remove obsolete pi_8_diag

* feat: implementation and testing of OffDiagonal Gates SigmaX and SigmaY

* docs: comments

* feat: add tests for AntiDiagonalOperators

* feat: extend Base for Diagonal and AntiDiagonal Operators

* fix: tests pass when combining Diagonal and AntiDiagonal Operators

* feat: refactor tests that are common to all AbstractOperators.

* fix: tests dont access internal variables, AntiDiagonalOperator can only be constructed for single target

* fix: renaming files

* feat: all remaining gates converted to DenseOperators.

* docs: update for dense gates

* fix: compatibility with Julia 1.6.7

* feat: Gate printout specialization for ParameterizedGates

* fix: add test for inverse(control_z)

* feat: add a get_parameters() method to all AbstractGates

* feat: update QuantumCircuits to use AbstractGates

* fix: controlled gates signature

* after rebasing from feat/abstract-dense-gates

* feat: QuantumCircuit interface, creation of labels for printout from parameters

* fix: renaming functions and clarify documentation

* fix: renaming function to get_circuit_gate

---------

Co-authored-by: Paul le Roux <pleroux@anyonsys.com>
Co-authored-by: FacundoLM2 <facundo.sosa-rey@polymtl.ca>
@fSosaRey fSosaRey closed this as completed Apr 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants