-
Couldn't load subscription status.
- Fork 0
Add ndims type parameter to AbstractArrayInterface
#42
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
Merged
Merged
Changes from 9 commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
fbb9192
Add ndims type parameter to ArrayInterface
mtfishman 3011bfc
Remove ndims type parameter from Concatenated
mtfishman 741c75c
Mark as breaking
mtfishman 70f82e1
Slight name improvement
mtfishman ecd8379
Bump subdir packages
mtfishman d9faf8c
Test and generalize arraytype
mtfishman 1942bdd
Remove arraytype, use similar instead
mtfishman 51fbbb1
Add missing test dep
mtfishman 2c34966
Merge branch 'main' into mf/arrayinterface_ndims
mtfishman a2ab28d
Improve Concatenated constructors
mtfishman 8c3705b
Cleanup
mtfishman ce0ee30
Refactor constructors more
mtfishman 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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| name = "DerivableInterfaces" | ||
| uuid = "6c5e35bf-e59e-4898-b73c-732dcc4ba65f" | ||
| authors = ["ITensor developers <[email protected]> and contributors"] | ||
| version = "0.4.5" | ||
| version = "0.5.0" | ||
|
|
||
| [deps] | ||
| Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" | ||
|
|
||
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
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.
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.
With this new call to
similar, do you need to set the interface ndims already at this point? I guess this would be automatically determined from theaxlater down the line, so I'm just wondering if there is any difference.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's true, when you call
similar, thendimsin the interface will get overridden by the axes input tosimilar. I kept it in case there is some other use case where storing thendimsin the interface is useful, but I admit I don't have a particular use case in mind forConcatenated.I suppose what this does is catch cases where a user specifies an interface but it actually has the wrong
ndimsfor the concatenation expression, I guess that could be checked.But also thinking about this particular constructor, it should change the
Interfacetype since that mean this constructor doesn't satisfyT(args...) isa T, so I'll change this one.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 the latest commits I propose a compromise. If the interface object is passed explicitly, it is taken "as is" and isn't modified, even if the
ndimsaren't specified or are incorrect, but when it is constructed from the arguments the correctndimsare computed explicitly.That matches the behavior of
Broadcasted:That seems reasonable, since the interface is meant to be something where you can specify it to decide on the dispatch, I think we shouldn't be too opinionated about modifying what the user input since it may have been deliberate.