Interested in contributing to SageMath and participating in GSoC 2024

205 views
Skip to first unread message

Dhrumil Raigagla

unread,
Feb 21, 2024, 7:36:12 AMFeb 21
to sage-gsoc
Hello SageMath community,

I am Dhrumil Raigagla, a final year undergraduate pursuing B.Tech in Information Technology at VJTI, Mumbai.
I am interested in contributing to SageMath and participating in GSoC 2024.

Over the years, I have had immense curiosity in mathematics(including linear algebra, discrete mathematics, number theory). This interest of mine aligns with projects of SageMath.
I also went through the project proposals of SageMath for GSoC 2024.

I am proficient in python and C++ and now, have around 3 years of programming experience in both of these languages.
Along with this, I have worked on developing a python module for spectroscopy in my internship at Tata Institute of Fundamental Research(TIFR).
Further, I have also worked on other python projects and have explored various technologies like version control systems, java backend, web development, etc.

Any guidance on how to get started and make contributions to SageMath will be appreciated.
Further, along with contribution guidelines, it will be beneficial if you can provide some important pointers regarding GSoC application and selection.

Regards,
Dhrumil Raigagla

tcscrims

unread,
Feb 24, 2024, 9:31:49 AMFeb 24
to sage-gsoc
Dear Dhrumil,
   Thank you for your interest. You can find all of the information related to developing for Sage in our developer's guide:


For a list of project ideas and the application template, you can find the information on the following wiki pages, respectively:


Best,
Travis

Dhrumil Raigagla

unread,
Mar 18, 2024, 4:03:34 AMMar 18
to sage-gsoc
Hello Dr. Travis Scrimshaw and SageMath community,

I am Dhrumil,  a final year undergraduate pursuing B.Tech. in Information Technology. I have been associated with SageMath community for about a month now and wish to contribute to SageMath by participating in GSoC 2024.

My current progress : 
        (1) Have successfully installed the developer version of Sage and ran a few examples locally to get acquainted.
        (2) To contribute to Sage, I first revisited all the abstract algebra basics of groups, rings, vector spaces, modules, etc.
        (3) I tried to solve a few good first issues and have linked 2 PRs to the issues.

I am particularly interested in "Improve (free) module implementations" project. 
To understand the project, I have followed documentation and tutorial available 
Combinatorial free module documentation
Free module tutorial

Here is my approach and interpretation of the project - 
 
SageMath has multiple implementations of free modules :  FreeModule - sage.modules.free_module    and  CombinatorialFreeModule - sage.combinat.free_module

Potential Project Implementation steps : 

(1) Creating a common abstract base class
this will contain all the common methods and attributes of both the implementations
Eg) Both implementations have basis() method, this can be included in the common base class. Similarly change_ring() function is also common. 

(2) Integration of dense representation for CFM
Improvising the CFM implementation to support dense representations for applications requiring heavy use of dense linear algebra.

(3) Refactoring both the implementations
Improving code readability, eliminating redundant code, deprecating unwanted methods

(4) Proper documentation and testing with some examples

I am unclear on a few things in the project. 

Q1) I was going through the codebase of sage.combinat.free_module and sage.modules.free_module
They have quite a number of methods (some with same names and some with other names)
What are the major methods which are to be shifted to a common base class and which methods need to be explicitly present in the respective implementation classes only?

Q2) Also, I am unclear on why is there still a need to keep both the implementations of free module? Can't there just be 1 free module implementation?

It would be beneficial if you can help me understand the project better.
I am also planning to write a proposal on the project. Once I draft the proposal, It would be helpful if we can discuss the project proposal in order to better address the project's objectives and implementation. 

Along with this project, I am also interested in "Coordinate the graded commutative algebra and exterior algebra implementations and Gröbner bases" project.  I do not entirely understand this project at the moment and currently, I am exploring Grobner basis.
Please can you also provide me some resource in order to understand Singular's plural library implementation as well as SageMath's implementation of exterior algebra

Regards, 
Dhrumil.

tcscrims

unread,
Mar 22, 2024, 4:16:25 AMMar 22
to sage-gsoc
Dear Dhrumil,
   I am happy to answer any specific question that you have.

A1) Any method whose implementation is common to the classes you want to combine. (Note also there are methods that can be provided by the category. There might be some things might be moved here, but most should already be here.) Note that this project is mostly not about bring things to common base classes but the functionality and uses provided by the two implementations (and any appropriate subclasses). That would also include closing speed differences between the two and more generic support for the infinite dimensional case.

A2) No, they provide completely different behaviors and have different uses. There are also specialized implementations for different base rings and other external libraries.

I can provide more specific feedback once there is a project proposal.

For the other project, you can easily find the documentation and implementations for plural and Sage's exterior algebra online and within the respective codebases. This would be a good starting point.

Best,
Travis
Reply all
Reply to author
Forward
0 new messages