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
<https://doc.sagemath.org/html/en/reference/combinat/sage/combinat/free_module.html>
Free module tutorial
<https://doc.sagemath.org/html/en/reference/modules/sage/modules/tutorial_free_modules.html>
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.
On Saturday 24 February 2024 at 20:01:49 UTC+5:30 tcscrims wrote:
> Dear Dhrumil,
> Thank you for your interest. You can find all of the information
> related to developing for Sage in our developer's guide:
>
> https://doc.sagemath.org/html/en/developer/
>
> For a list of project ideas and the application template, you can find the
> information on the following wiki pages, respectively:
>
> https://wiki.sagemath.org/GSoC/2024
> https://wiki.sagemath.org/GSoC/Contributors
>
> Best,
> Travis
>
> On Wednesday, February 21, 2024 at 9:36:12 PM UTC+9 [email protected]
> wrote:
>
>> 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
>>
>
--
You received this message because you are subscribed to the Google Groups
"sage-gsoc" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-gsoc/e361b66a-d0f5-456a-b227-ae0e52548a1en%40googlegroups.com.