From 38fcd45825b1434423c6679d99f3c2ab34638d20 Mon Sep 17 00:00:00 2001 From: Fredrik Johansson <fredrik.johansson@gmail.com> Date: Fri, 10 Jan 2025 13:14:00 +0100 Subject: [PATCH 1/2] Improve algorithm selection in fmpz_mat_rref --- src/fmpz_mat/rref.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/fmpz_mat/rref.c b/src/fmpz_mat/rref.c index b3ce047e6c..9d6cba8dee 100644 --- a/src/fmpz_mat/rref.c +++ b/src/fmpz_mat/rref.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2011-2012 Fredrik Johansson + Copyright (C) 2011-2012, 2025 Fredrik Johansson Copyright (C) 2014 Alex J. Best This file is part of FLINT. @@ -15,9 +15,10 @@ slong fmpz_mat_rref(fmpz_mat_t R, fmpz_t den, const fmpz_mat_t A) { - if (FLINT_MIN(A->c, A->r) <= 20) - return fmpz_mat_rref_fflu(R, den, A); - else if (A->r <= 105 && A->c >= 1.4 * A->r) + slong r = A->r; + slong c = A->c; + + if (r <= 3 || c <= 2 || (r <= 40 && c > r) || (r > 40 && r <= 100 && c > r + (r - 40) / 60.0 * r)) return fmpz_mat_rref_fflu(R, den, A); else return fmpz_mat_rref_mul(R, den, A); From 8b0b8cf364f8ea3fa7a8beaeaface82de5d2ac25 Mon Sep 17 00:00:00 2001 From: Fredrik Johansson <fredrik.johansson@gmail.com> Date: Fri, 10 Jan 2025 13:27:03 +0100 Subject: [PATCH 2/2] slight param tweak --- src/fmpz_mat/rref.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fmpz_mat/rref.c b/src/fmpz_mat/rref.c index 9d6cba8dee..84ef9a11ed 100644 --- a/src/fmpz_mat/rref.c +++ b/src/fmpz_mat/rref.c @@ -18,7 +18,7 @@ fmpz_mat_rref(fmpz_mat_t R, fmpz_t den, const fmpz_mat_t A) slong r = A->r; slong c = A->c; - if (r <= 3 || c <= 2 || (r <= 40 && c > r) || (r > 40 && r <= 100 && c > r + (r - 40) / 60.0 * r)) + if (r <= 3 || c <= 2 || (r <= 20 && c > r) || (r > 20 && r <= 100 && c > r + (r - 20) / 80.0 * r)) return fmpz_mat_rref_fflu(R, den, A); else return fmpz_mat_rref_mul(R, den, A);