-
-
Notifications
You must be signed in to change notification settings - Fork 48
✨ Add unitary matrix to QCO dialect #1426
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
Open
taminob
wants to merge
46
commits into
main
Choose a base branch
from
taminob/mlir-qco-unitary-matrix-definition
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,206
−59
Open
Changes from all commits
Commits
Show all changes
46 commits
Select commit
Hold shift + click to select a range
f6c61d0
:heavy_plus_sign: Add Eigen library for linear algebra
taminob e1077e3
:sparkles: Implement unitary matrix definition for standard gates
taminob bbef22a
fix coderabbit issues
taminob 1cfac4a
add draft for unittest of unitary matrix
taminob aa23610
implement ctrl matrix
taminob 7b2a4ff
add unittests for ctrl-x gate
taminob 406083a
fix getFastUnitaryMatrix
taminob a839928
update license header
taminob 923c8d7
rename UnitaryMatrixTest to QcoUnitaryMatrixTest
taminob 295d689
add basic test case for UnitaryOpInterface::getFastUnitaryMatrix()
taminob fa5f5ad
move Eigen dependency to cmake/ExternalDependencies.cmake
taminob db5ffb0
update Eigen to 5.0.1
taminob 842952a
remove Windows ARM Eigen workaround (EIGEN_DONT_ALIGN_STATICALLY
taminob ecfd8e1
remove (partially implemented) permutate() utility function
taminob a7ea22d
fix interface include in QCODialect.h
taminob 340c7d2
move gphase matrix to source file
taminob 5179257
:art: Rework unitary matrix proposal
taminob 3e90f13
🎨 pre-commit fixes
pre-commit-ci[bot] 434f82d
Cleanup to satisfy coderabittai
taminob db55c69
make eigen dependency not conditional
taminob b52ae0f
replace std::numbers by llvm::numbers because of windows+osx CI
taminob be7ad3f
Revert "replace std::numbers by llvm::numbers because of windows+osx CI"
taminob 944d27a
fix linter and CI issues
taminob 15a5cd7
another round of coderabittai
taminob e43f1e7
add more tests and fix multiple bugs
taminob d8e759a
swap qubit order according to qiskit for some two-qubit gates
taminob b9f8495
Revert "swap qubit order according to qiskit for some two-qubit gates"
taminob 0411386
fix xx-minus-yy gate definition
taminob 058debc
fix combine4x4UnitaryMatrices test
taminob 86cd803
add 8x8 matrix to dynamic matrix test
taminob 62b5133
resolve linter issues
taminob 9d9f385
fix dynamic to static matrix conversion
taminob 006f378
simplify control flow to make coderabbitai happy
taminob 12bcd7c
make include cleaner happy
taminob 7422c30
♻️ Refactor setup of Eigen dependency
burgholzer 7542b6d
🚚 move clang-tidy config to mlir file
burgholzer 3f7b998
Merge branch 'refs/heads/main' into taminob/mlir-qco-unitary-matrix-d…
burgholzer 16dc21c
♻️ tweak interface implementation to make it more performant
burgholzer a0a3bfc
🎨 misc. tweaks for matrix implementations
burgholzer 8254355
add overflow check
taminob fe3df31
:white_check_mark: Add two test cases to increase coverage
taminob 261ca04
:recycle: Move BUILD_MQT_CORE_MLIR before ExternalDependencies
taminob 5a8de62
Merge remote-tracking branch 'origin/main' into taminob/mlir-qco-unit…
taminob b586a06
fix minor linter issues
taminob 12f6aaf
minor renames in QCOInterface refactorings
taminob ad87192
remove compile-time fail again for wrong matrix type
taminob File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: munich-quantum-toolkit/core
Length of output: 590
🌐 Web query:
Eigen unsupported module stability KroneckerProduct API guarantees💡 Result:
Short answer: There are no formal stability/ABI/API guarantees for Eigen's "unsupported" modules (including KroneckerProduct). They are labeled "unsupported" and provided "as is"; they may change, be moved into supported code, or be modified between releases, so you should not rely on long‑term API/ABI stability without pinning a specific Eigen version or vendoring the code. Use eval()/copies as documented when assigning results. [1][2][3]
Sources:
🏁 Script executed:
Repository: munich-quantum-toolkit/core
Length of output: 99
🏁 Script executed:
Repository: munich-quantum-toolkit/core
Length of output: 1287
🏁 Script executed:
Repository: munich-quantum-toolkit/core
Length of output: 1060
🏁 Script executed:
Repository: munich-quantum-toolkit/core
Length of output: 91
🏁 Script executed:
Repository: munich-quantum-toolkit/core
Length of output: 593
Eigen unsupported module lacks stability guarantees.
The
unsupported/Eigen/KroneckerProductheader is from Eigen's unsupported module, which is provided "as is" without formal ABI/API stability guarantees. These modules may change, be modified, or moved between releases. Ensure the team is aligned on pinning a specific Eigen version or has a plan for handling potential API changes before merging.Also applies to: 32-32