-
Notifications
You must be signed in to change notification settings - Fork 34
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
Lazy identities via FillArrays #94
Conversation
Codecov Report
@@ Coverage Diff @@
## master #94 +/- ##
==========================================
+ Coverage 96.49% 96.65% +0.15%
==========================================
Files 26 26
Lines 3398 3410 +12
==========================================
+ Hits 3279 3296 +17
+ Misses 119 114 -5
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
https://github.com/qojulia/QuantumOptics.jl/blob/master/test/test_timeevolution_schroedinger.jl#L103 now fails because We could catch calls to |
Maybe we can add |
Yeah, we could. I'm slightly wary because apparently sparse operators worked before. I suppose there could be cases for which one knows some symmetry is preserved and so sparsity makes sense..? Simplest example is a diagonal Hamiltonian and initial state. |
@Krastanov Do you know the best way to avoid Aqua complaining about this without disabling too may tests? |
I will look into this tonight (Apr 22nd) |
Actually, it seems you already have set the If not all flags are supported, I occasionally just do |
@amilsted the code here looks good as far as I can tell. Performance also lives up to the previous one (except for the explicit isometries case), though I only ran some quick checks. Regarding the test failure in |
Breakage should no longer fail after qojulia/QuantumOptics.jl#362 is merged. |
@david-pl @Krastanov Do you think this is okay to merge? |
Looks good to me! Should we make an issue for the note you have?
|
Makes
identityoperator()
return aDataOperator
containingFillArrays.Eye
, which is a lazy representation of an identity matrix, as suggested in #90.LazyTensor
mul!()
.SimpleIsometry
, used internally by LazyTensormul!()
, withEye
.beta=0
inmul!()
on lazy operators.mul!()
whenalpha==0
.NOTE: Currently, a tensor product of lazy identities gives us a Diagonal DataOperator, rather than a big Eye.