-
Notifications
You must be signed in to change notification settings - Fork 165
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
list assignment for matrix objects #4533
Comments
Really? I thought the agreement was the opposite, i.e., that {} is only for lists. After all, it can not be efficiently implemented for general matrix objects... See #4356 for proposed syntax extension that might make sense for matrix objects. |
O.k., it is more complicated. The problem in #4517 is about |
Discussed this with Thomas today. One thing I wasn't aware is that But the GAP kernel currently has some checks in the code implementing A maybe easier approach would be change the checks to test for "IsDenseList OR IsRowListMatrix" (here I am assuming that any |
The documentation of the relevant operations for objects in `IsRowListMatrix` (list access, list assignment, `IsBound[]`, ...) implies that such objects are "dense" (although they need not be lists), and this follows also from the fact that such an object `M` is in `IsMatrixObj` and hence admits entry access `M[i,j]`, for `i`and `j` up to `NumberRows( M )` and `NumberColumns( M )`, respectively. However, it is better to say this explicitly (see also gap-system#4533).
The documentation of the relevant operations for objects in `IsRowListMatrix` (list access, list assignment, `IsBound[]`, ...) implies that such objects are "dense" (although they need not be lists), and this follows also from the fact that such an object `M` is in `IsMatrixObj` and hence admits entry access `M[i,j]`, for `i`and `j` up to `NumberRows( M )` and `NumberColumns( M )`, respectively. However, it is better to say this explicitly (see also #4533).
The following happens in GAP 4.11.1 as well as in the master branch.
The point is that the operation
{}:=
(ASSS_LIST
) callsAsssListCheck
, and this callsRequireDenseList
for the third argument (the right hand side of the assignment). However, the matrix objects in question aren't lists, in particular they are not dense lists.We want
{}:=
for manipulation matrix objects that aren't lists, thus the checks must be changed.The text was updated successfully, but these errors were encountered: