Skip to content

MatrixObj: document DefaultMatrixRepForBaseDomain and DefaultVectorRepForBaseDomain #6237

@fingolfin

Description

@fingolfin

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

No one assigned

    Labels

    kind: enhancementLabel for issues suggesting enhancements; and for pull requests implementing enhancementstopic: documentationIssues and PRs related to documentationtopic: library

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions