Opened 4 years ago
Last modified 2 years 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: |
Description
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
- Reviewers set to rbeezer, jason
comment:2 Changed 2 years ago by
- Cc kedlaya added
Another relevant ticket: #9888.