-
Notifications
You must be signed in to change notification settings - Fork 5
[Features] project_isometric and PolarNewton
#67
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
Conversation
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
|
Some random benchmark for julia> @benchmark left_polar!($Ac, ($W, $P)) setup=(copy!($Ac, $A))
BenchmarkTools.Trial: 24 samples with 1 evaluation per sample.
Range (min … max): 207.428 ms … 232.445 ms ┊ GC (min … max): 0.12% … 10.51%
Time (median): 208.516 ms ┊ GC (median): 0.11%
Time (mean ± σ): 211.400 ms ± 8.050 ms ┊ GC (mean ± σ): 1.53% ± 3.52%
█
▃█▆█▅▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆ ▁
207 ms Histogram: frequency by time 232 ms <
Memory estimate: 53.57 MiB, allocs estimate: 130.
julia> @benchmark left_polar!($Ac, ($W, $P), PolarNewton()) setup=(copy!($Ac, $A))
BenchmarkTools.Trial: 45 samples with 1 evaluation per sample.
Range (min … max): 106.843 ms … 133.498 ms ┊ GC (min … max): 0.00% … 0.33%
Time (median): 112.492 ms ┊ GC (median): 0.41%
Time (mean ± σ): 112.160 ms ± 3.850 ms ┊ GC (mean ± σ): 0.39% ± 0.11%
▁ ▁█
▃▁▃█▃▆▁▅▅█▃▁█▅██▅▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃ ▁
107 ms Histogram: frequency by time 133 ms <
Memory estimate: 38.79 MiB, allocs estimate: 121. |
|
Ok I managed to screw up this PR with git rebase on the current main. |
|
Ok, I managed to recover. So this now includes the If the tests pass, this is ready for a review. |
lkdvos
left a comment
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.
Overall looks great to me. Left a couple small comments, but otherwise happy to merge.
| export project_hermitian, project_antihermitian, project_isometric | ||
| export project_hermitian!, project_antihermitian!, project_isometric! |
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.
I'm slightly unhappy with project_isometric vs isisometry. Is it at all reasonable to have project_isometry, or does that not really make sense? Happy to leave as is too, just noticing this here.
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.
That is a good catch. But I would prefer isisometric, as all other checks are also using the adjective form, e.g. ishermitian, ...
I know this constitutes yet another breaking change 😄 .
I guess unitary is the odd duck, as that is both an adjective and a noun.
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.
In case a breaking change is not warranted, I guess we can take comfort in the fact that the list of is... functions in Base has both nouns and adjectives in there.
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.
For what it's worth, I slightly prefer isisometric and project_isometric (and I agree that it is nice if they match).
|
I addressed all the issues except for the |
|
Ok, I'll merge when the tests turn green. |
* Bump v0.6 * rename `gaugefix` -> `fixgauge` * reduce unnecessary warnings * fix `copy_input` signatures in Mooncake tests * Add changelog to docs
PolarNewton implementation. This is branched off and requires #64 .