Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Witt vectors redone #39355

Draft
wants to merge 38 commits into
base: develop
Choose a base branch
from
Draft

Conversation

fchapoton
Copy link
Contributor

@fchapoton fchapoton commented Jan 20, 2025

This is based on the work from #11457, refreshed and cleaned up a little bit.

Still needs a lot of work on documentation and doctests : there are currently ZERO doctests.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

nielrenned and others added 2 commits January 20, 2025 21:43
The skeleton of the planned structure of Witt Vectors is implemented. There is essentially no functionality
yet.
@fchapoton fchapoton marked this pull request as draft January 21, 2025 08:34
Copy link

github-actions bot commented Jan 21, 2025

Documentation preview for this PR (built with commit 3d34b15; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

fchapoton and others added 22 commits January 21, 2025 10:58
The term "Witt ring" refers to various objects

Use "Witt vector ring" instead to remove any confusion
In the litterature, p-typical Witt vectors refer to this construction
as oppososed to big Witt vectors
Remove the wrong mentions in the code to reflect that
Greatly simplifying it in the same time
Remove the 'auto' and 'none' keyword
and handle None instead
Add more liberty and exceptions in the general constructor
I had no clue what "otf" meant
so I changed to a clearer algorithm name
r-mb added 5 commits February 13, 2025 18:29
We add documentation for every method, and also provide tests
Thanks to the tests we discovered bugs which have been fixed
The fix led to the use of __classcall_private__ instead of the previous constructor
@r-mb
Copy link

r-mb commented Feb 13, 2025

@fchapoton C'est bon pour moi, si les tests passent.

@r-mb
Copy link

r-mb commented Feb 13, 2025

To everyone: I did a major cleanup of @nielrenned's code on Witt vectors during SageDays 128. My hope is to see this code finally merged into SageMath.
There was a few edge case bugs and some rare implementations missing, but from what I can tell after being a long time user of that code is that it is robust and mathematically correct, and I hope my changes did not affect that.

I wonder though whether the function _fast_char_p_power is at the right place, and if we shouldn't instead look into why exponentiation of polynomials is so slow when it shouldn't. Also, I was surprised to see that no function in all of SageMath does what WittVectorRing._generate_binomial_table does: computing a table of binomial coefficients.

@r-mb r-mb added s: needs review sd128 tickets of Sage Days 128 Le Teich and removed s: needs work labels Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
s: needs review sd128 tickets of Sage Days 128 Le Teich
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants