You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
CC: @kedlaya
Component: linear algebra
Keywords: matrix, sparse, modn, int
Author: Kartik Venkatram
Reviewer: rbeezer, jason
Issue created by migration from https://trac.sagemath.org/ticket/19076
The text was updated successfully, but these errors were encountered: