Google Summer of Code 2021 summary
Published:
In this post, I will give an overview of my work for the SageMath open-source mathematical software. If you are new to this blog, I suggest that you start reading from the first post.
I will list here a brief overview of the work I did and explain the new features that will be available in SageMath in a future release of the software (probably SageMath 9.5). A more detailed list can be found here.
Work done during the summer
Ticket #31559: The class
ModularFormsRing
now manipulates formal object.The old implementation of the ring of modular forms was a little bit outdated. Now, the elements of this ring in SageMath are instances of the class
GradedModularFormElement
which inherit from the classElement
:
Ticket #32168: Fixed conversion between modular forms spaces.
It is well known that a modular form \(f\) of weight \(k\), level \(N\) and nebentypus \(\chi\) is modular over \(\Gamma_1(N)\). However, it was not always possible to convert a modular form between different spaces:
This bug is now fixed:
Ticket #32135: implemented
to_polynomial
andfrom_polynomial
for the ring of modular forms (see this blog post for more info).Ticket #31512: implemented the ring of quasimodular forms.
A new parent class was implemented, named
QuasiModularForms
. This class is similar to the classModularFormsRing
. See this blog post for more info about quasimodular forms.
Ticket #32336: implemented
to_polynomial
andfrom_polynomial
for quasimodular forms.These two methods are similar to the ones implemented for the ring of modular forms.
Ticket #32343: implemented the Serre derivative of modular forms.
The Serre derivative of a modular form is an operator that sends a weight \(k\) modular form to a weight \(k+2\) modular form. It is defined by \(f \mapsto q\frac{df}{dq} - \frac{k}{12}E_2 f\).
Ticket #32357: implemented derivative of quasimodular forms and graded modular forms.
The derivative of a modular form \(f \mapsto q\tfrac{df}{dq}\) is not necessarily a modular form. However, it is a quasimodular form. Using the Serre derivative, it was possible to implement this derivative of a graded modular form and a quasiform:
Ticket 32366: implement the q-bracket.
This ticket is still a work in progress, but its goal is to implement the q-bracket using the tools provided in the paper of Zagier: Partitions, quasimodular forms and the Bloch-Okounkov theorem. More details about this \(q\)-bracket is given in this post.
More details about this project can be found in the task ticket #31560. This ticket list all the work done so far, and what is to be done in the future.
Reviewed tickets
In addition to these new feature, I also reviewed some tickets. Reviewing tickets is a really important part of SageMath development as everything must be peer reviewed before being officially included in the software. In other words, no reviewers \(=\) no new feature/bug fix. Here’s the list of tickets I reviewed during the summer:
Last words
The GSoC 2021 program is already finished and it was an enriching and captivating experience. I perfected my Python programming skills while working on a subject that I’m passionated about: modular forms. Moreover, I thoroughly enjoyed working in collaboration with my mentor as I learned a lot from him. Thank you for reading this blog. If you have any questions or suggestions do not hesitate to contact me via email.