LU factorization with full pivoting #2541
-
|
Hey, I'm just learning how to use FLINT through Julia's FLINT_jll. So far, I have 3 questions: (1) Does the library allow computing the LU factorization of a not-necessarily-square not-necessarily-full-rank matrix, say, over the rationals ( (2) Are small finite fields implemented to avoid unnecessary RAM usage. E.g. do elements from fields Z/2, Z/3, Z/5, Z/7, Z/11, Z/13 require 1 byte (which is enough) or more? More generally, do elements from prime fields Z/p, where (3) Is the LU factorization of a matrix with entries from a finite field optimized to use multithreading, cache-blocking, vectorization? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 6 replies
-
|
As for (2), Fredrik has implemented As for (3), I'm not an expert, but it does not look like it uses multithreading. I'm not so sure about cache-blocking (you'd have to look more carefully about this), but vectorization should be implemented, at least in parts of the code (but perhaps not optimally). |
Beta Was this translation helpful? Give feedback.
-
|
(1) Yes, functions like (2) It is possible to use compact representations, e.g. (3) Yes, but our implementations of these techniques are far from optimal. Note that FLINT can be configured to use BLAS for matrix multiplication. This gives the best performance if you want to compute LU factorizations of large matrices over finite fields. |
Beta Was this translation helpful? Give feedback.
It is sufficient that$m(p-1)^2 < 2^p$ where $p$ is the mantissa precision of the type, though one can extend the range with intermediate reductions. There are several papers where you can read about this, e.g. https://membres-ljk.imag.fr/Jean-Guillaume.Dumas/Publications/Field_blas.pdf