FixTaylorCluster for non-square (finite) Hamiltonians - #511
FixTaylorCluster for non-square (finite) Hamiltonians#511VictorVanthilt wants to merge 5 commits into
TaylorCluster for non-square (finite) Hamiltonians#511Conversation
| end | ||
|
|
||
| function _get_threelevel_linds(virtual_sz, linds) | ||
| row_threelevels_linds = Int[] |
There was a problem hiding this comment.
Do we have to allocate this before running over it? Is it not easier to just inline this function into the loop?
There was a problem hiding this comment.
[edit] I see you need this below
| (I[1] in row_threelevel_linds || I[4] in col_threelevel_linds) && delete!(slice, I) | ||
| end |
There was a problem hiding this comment.
can we check the properties that define the threelevel_linds instead, mapping it to a cartesian index first?
There was a problem hiding this comment.
I'm not quite sure I fully understood your comment but I changed the code to first make the set of CartesianIndices that fall in a to-be-deleted row/column. I then loop over the intersection of this set and the nonzero_keys. This avoids a lot of misses in the "for key in nonzero_keys" loop.
lmk if this is not what you meant
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
|
I don't understand this test failure, I can't see what failed from the logs. |
Description
The TaylorCluster algorithm's "loopback" algorithm involves removing the rows and columns that are labled by level-labels only containing 1's and "3"'s. Currently the rows and columns were removed using the right-virtualsize of the Hamiltonian as the "3" level.
To be correct for non-square Hamiltonians, we need to remove the columns with a "3" level based on the right-virtualsize and the rows based on the left-virtual size. This PR implements this.
Checklist
julia --project=test test/runtests.jl, or the relevant subset)docs/src/)[Unreleased]indocs/src/changelog.md, if this PR is user-facing (new feature, behavior change, bug fix, deprecation, or removal)