-
Notifications
You must be signed in to change notification settings - Fork 1
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
[WIP] DerivableInterfaces refactor #39
base: main
Are you sure you want to change the base?
Conversation
Looks like a great start! Definitely more transparent this way. |
5a8301c
to
af37448
Compare
af37448
to
caee0b1
Compare
I have to apologize for the mess: this PR is somewhat growing uncontrollably. It would be great if you could maybe give your opinion on where this is going. |
I presumed that this would be large PR given how disruptive ITensor/DerivableInterfaces.jl#28 is. It all looks pretty reasonable to me so far, maybe it will just warrant you giving me a summary once the dust settles a bit with the two PRs. But right now the scope seems fine, unless you want to split it up into separate PRs for your own sanity. I see basically there are:
So maybe 2. and 3. could be split off into their own PRs since they look pretty self-contained. |
(I forgot that the constructors are already in a separate PR, i.e. #33, so that will already simplify this PR when that gets merged.) |
This is a WIP implementation of some of the things that were discussed, also in light of the upcoming
DerivableInterfaces
changes.Builds on top of #31.
For now, it mostly contains a more built out version of the indexing, with a little more care towards boundschecking.
I have not yet started testing, just wanted to get an initial implementation going to allow for possible early feedback.
Notable changes:
isstored
,set/get(un)storedindex
now work for cartesian, boolean and linear indices, since they have more support viato_indices
and a canonical entry pointAbstractSparseArrayInterface
file became rather unwieldy, I split off the parts that are just generic indexing functions into a separate file@derive T trait
machinery