a more reasonable sorting of complex numbers #2033
Open
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.
In the current sorting, we have
z < conjugate(z)
andconjugate(z) < z
.I propose sorting on the real part; if they overlap, use the imaginary part.
Note that in the library,
_acb_vec_sort_pretty
is used to sort polynomials' roots, which are multisets of non-overlapping balls.Therefore, we will obtain a predictable and stable sorting with the new comparison function.
PS: this will break some tests at Sagemath, as the roots will now come in a different order, but this is how I got into this rabbit hole.