Opened 4 years ago

Last modified 19 months ago

#19076 new enhancement

Unifying modn matrices

Reported by: kartikv Owned by:
Priority: major Milestone: sage-6.9
Component: linear algebra Keywords: matrix, sparse, modn, int
Cc: kedlaya Merged in:
Authors: Kartik Venkatram Reviewers: rbeezer, jason
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:


This is a consolidation of several matrix related tickets, e.g. #2705, #10734, #11161, #12177, #12679, #13177, #13915, #15104, ... basically, the world of matrices over finite fields. The fundamental issues are the following

  • there is inconsistency over the size of fields that are allowed to use the "fast" matrix methods. Specifically, some places use mod_int and either a int_fast64_t or a long, while other places use int or int32_t specifically. Moreover, the size of the maximum modulus differs even when the sizes of the representations are the same.
  • because of this, there are many cases when fast methods could be used but aren't: the code generally just reverts to generic matrices and slow internal operations
  • the code totally ignores linbox's support for GMP-based matrix operations, which are not quite as fast as word-size ones but are still better than Sage internal operations

I intend to build a consolidated class framework for modular vectors and matrices, with system-optimized choice of crossover between small and large moduli and uniform use of linbox throughout. As part of this, I also intent to consolidate the existing code and update it to modern standards, e.g. move pxi files to pxd, add kwargs to all overloadable functions, etc.

Change History (3)

comment:1 Changed 4 years ago by kartikv

  • Reviewers set to rbeezer, jason

comment:2 Changed 19 months ago by kedlaya

  • Cc kedlaya added

comment:3 Changed 19 months ago by kedlaya

Another relevant ticket: #9888.

Note: See TracTickets for help on using tickets.