Skip to content

Commit 38fcd45

Browse files
Improve algorithm selection in fmpz_mat_rref
1 parent c9c581c commit 38fcd45

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/fmpz_mat/rref.c

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Copyright (C) 2011-2012 Fredrik Johansson
2+
Copyright (C) 2011-2012, 2025 Fredrik Johansson
33
Copyright (C) 2014 Alex J. Best
44
55
This file is part of FLINT.
@@ -15,9 +15,10 @@
1515
slong
1616
fmpz_mat_rref(fmpz_mat_t R, fmpz_t den, const fmpz_mat_t A)
1717
{
18-
if (FLINT_MIN(A->c, A->r) <= 20)
19-
return fmpz_mat_rref_fflu(R, den, A);
20-
else if (A->r <= 105 && A->c >= 1.4 * A->r)
18+
slong r = A->r;
19+
slong c = A->c;
20+
21+
if (r <= 3 || c <= 2 || (r <= 40 && c > r) || (r > 40 && r <= 100 && c > r + (r - 40) / 60.0 * r))
2122
return fmpz_mat_rref_fflu(R, den, A);
2223
else
2324
return fmpz_mat_rref_mul(R, den, A);

0 commit comments

Comments
 (0)