-
Notifications
You must be signed in to change notification settings - Fork 8
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
Support for non-trivial array connections #9
Comments
Absolute minimal semantics is:
Full, but potentially inconvenient, functionality for fixed-size arrays is provided by 1 + 2, since all other connections can be built up from this for fixed-size arrays. For dynamic arrays something like 5/6 (slices, semi-defined slices) is needed at a minimum, and very convenient for fixed-size arrays. 3+4 might then be handled as special cases of 5+6. Start initial PR with just 0/1/2, then expand for 5/6 (+3/4). Case 7 can be postponed to a later release. |
I think part of this proposal is reasonable, specifically:
I'm against the suggestion to allow connection of scalar to an entire array, meaning every element in the array. I believe it is a rare special case, and the semantic would be too hidden. If needed you can handle that with a block that does conversion between array and scalar. |
Web meeting 2023-09-15 |
I have implemented 0-2 in the #8 PR via start/endIndices attributes on connections. |
Based on discussion in #8, trivial connections between array connectors will be possible. Trivial here means that both arrays match regarding the number of dimensions and the sizes of these dimensions.
It needs to be decided which other connections should be supported by SSP.
some examples of connections that could/should be considered (a is a scalar; A,B,C are 2d arrays)
We might also consider slices of arrays:
5. fixed slices: a -> A(1:3,2), A(1:3,1:2) -> B(2:4,1:2)
6. semi-defined slices: A(1:4,:) -> B(2:5,:)
Or even more complex connections like:
7. A(1:x;:) -> C(1:x;:), B(1:x;:) -> C(x:2*x;:), where x is a structuralParameter
The text was updated successfully, but these errors were encountered: