-
Notifications
You must be signed in to change notification settings - Fork 181
Description
I just discussed that I want this with @ThomasBreuer and that I was surprised it is not in the manual as I recalled discussing it years ago. I just wrote a text describing what I want, but now deleted it, as I discovered it it is there -- just not in the manual.
And because of that, it is also not utilized as it should be. For example, this probably explains why issue #6236 is there in the first place, i.e., why DefaultMatrixRepForBaseDomain(Integers mod 4); returns IsPlistMatrixRep and not IsZmodnZMatrixRep: because if one doesn't know an operation exists, it is difficult to realize providing a method for it might be a good idea!
And I think this method is useful beyond being used to implementing Matrix(R, list) etc. generically. For example, when calling GL(dim,ring) one gets a group over "classic" plist matrices. If one wants it over MatrixObj, there is no good way right now, but logical would be to allow specifying this with a filter argument. Say perhaps we allow the option filter argument to also be a matrixobj filter and cleverly interpret this as "the user wants a matrix group over matrixObj with that filter"). Then the user could write, say, GL(IsZmodnZMatrixRep, 5, Integers mod 4).
But which filter should a user provide? Of course the one best suited for matrices over ring, i.e. DefaultMatrixRepForBaseDomain(ring)!
And once one has that, one can also allow GL(IsMatrixObj, dim, ring) as a shorthand for GL(DefaultMatrixRepForBaseDomain(ring), dim, ring).
(Disclaimer: perhaps this is idea of specifying a matrixObj filter/rep as first argument is non-workable or bad for other reasons. But this is just one example, and I think the general idea why the "default rep" is useful is clear. BTW in OSCAR this very roughly corresponds to dense_matrix_type.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status