Make sagemath with pari 2.17 more deterministic #4
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.
This affects two number field functions which cause doctest unstability:
reduced_basis()
uses lll to reduce the basis; the new FLATTER algorithm in pari 2.17 is quite non-deterministic.Workaround: pass a flag to
qflll()
so pari does not use FLATTER.pari_bnf()
this uses and caches the output ofbnfinit()
which I guess is also using lll to reduce the relations (bnf[4]
) which causes non-determinism (fundamental units, finding generators of ideals, printing ideals).Workaround: use
setrand(1)
just before callingbnfinit()
. It's hard to do this just on doctests since number fields are cached so the field may have been already constructed for another doctest way before the doctest that fails.A third commit just adjusts doctests for the changed ideal display.
After this, it seems doctests are almost ok for pari 2.17 (in 64 bit / 32 bit, long / no long)
@antonio-rojas