Skip to content

Improve and use operations for row/column reductions in matrix objects #4565

@fingolfin

Description

@fingolfin

Now that PR #4517 is merged, resolving issue #3962, we can think about improving and using the new interfaces. Some tasks on this that come to mind:

  • benchmark their performance when used on old-style list-of-list matrices (as done in this comment of mine) and then try to tune that; e.g. by using InstallEarlyMethod (see PR Add InstallEarlyMethod which allows installing special methods that bypass method selection (and thus its overhead) #4557) to install special methods dealing with IsPlistRep matrices before method dispatch kicks in
  • write some new "interesting" code (resp. adapt some existing code to) using these new APIs; say an implementation of Gaussian elimination;
    • e.g. the TriangulizeMat "generic method for mutable matrices" starting in lib/matrix.gi:2996 or the SemiEchelonMatDestructive resp. SemiEchelonMatTransformationDestructive methods in matrix.gi: i.e., take that code and modify it to use the new APIs, then benchmark before/after on both old-style and new-style matrices to see how it affects performance
  • add more tests, esp. once we have a proper MatrixObj implementation which is not IsRowlistMatrix
  • .... more?

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind: enhancementLabel for issues suggesting enhancements; and for pull requests implementing enhancements

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions