Improve algorithm selection in fmpz_mat_rref #2144
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Should fix #2129.
Based on the following profiling data with
randtestmatrices. For each row, the initial number is the number of rowsr. Forc = 1, 2, ...columns we printfwhenfmpz_mat_ffluis faster andMwhenfmpz_mat_rref_mulif faster. The fraction on the right is the ratioc / rof the largestcwhereMwins.We see that
Mbasically wins exactly whenc <= rforrup to about 20 and in an extended triangular region forr <= 100. Presumablyfflustill wins forr > 100for ratios much larger than 2 but this doesn't seem particularly worth optimizing for (and the profiles take a long time to run).