Differences between revisions 5 and 6
Revision 5 as of 2023-02-02 20:47:52
Size: 7462
Editor: mkoeppe
Comment:
Revision 6 as of 2023-02-05 16:21:10
Size: 7578
Editor: mathzeta2
Comment:
Deletions are marked like this. Additions are marked like this.
Line 93: Line 93:
(Remark: It might be worth looking at the [[https://github.com/thetensor-space|TensorSpace]] project for Magma.)

GSoC 2023: Ideas Page

Introduction

Welcome to SageMath's Ideas Page for GSoC 2023! (Last year 2022)

Please subscribe to the sage-gsoc mailing list and the GAP developer list for discussion on possible GAP GSoC projects. Also, make sure you have gone through the information regarding application procedures, requirements and general advice. The Application Template is also available on that wiki page. Archives of past GSoC project ideas can be found here.

All projects will start with an introduction phase to learn about SageMath’s (or sister projects') internal organization and to get used to their established development process. We also require you to show us that you are able to execute actual development by submitting a relevant patch and/or reviewing a ticket of the project you are interested in applying to. The developer guide is a great comprehensive resource that can guide you through your first steps in contributing to SageMath.

Apart from the project ideas listed below, there is also a comprehensive list of future feature wishes in our trac issue tracker. They might contain the perfect project idea for you we didn't even think about!

Project Ideas

Here is a list of project proposals with identified mentors. Other well-motivated proposals from students involving SageMath in a substantial way will be gladly considered, as well.

Improve (free) module implementations

Mentor

Travis Scrimshaw

Area

Linear Algebra, Performance, Refactoring

Skills

Understanding of linear algebra and object-oriented programming. Cython experience is highly recommended.

Length

175 hours

Difficulty

Medium-easy

SageMath has multiple implementations of free modules:

1. Finite dimensional coordinate representations in the "standard" basis using FreeModule that provides both a dense and sparse implementation. 2. Using CombinatorialFreeModule (CFM) as (possibly infinite dimensional) sparse vectors.

There are various benefits to each implementation. However, they are largely disjoint and would mutually benefit from having a common base classes. In particular, having a dense implementation for CFM elements for applications that require heavier use of (dense) linear algebra. The goal of this project is to refactor these classes to bring them closer together (although they will likely remain separate as they are likely not fully compatible implementations for the parents).

Improve exterior algebra and Gröbner bases code and expand to graded commutative algebras

Mentor

Travis Scrimshaw

Area

Algebra, Performance

Skills

Understanding of abstract algebra and Cython. Knowledge of Gröbner basis is strongly recommended.

Length

175 hour and 350 hour variants

Difficulty

Medium-hard

The exterior (or Grassmann) algebra is a fundamental object in mathematics that recently obtained an implementation of Gröbner bases. However, it is currently quite slow with a goal to improve it (see, e.g., #34437). The second goal of this project would be to implement Gröbner bases for the general graded commutative algebra code within Sage. This includes possibly redoing the underlying implementation to to not rely on the more generic plural for computations (except perhaps those involving ideals). For the ambitious, these computations would be extracted to an independent C++ library for many common rings (implemented using other libraries).

Implement Schubert and Grothendieck polynomials

Mentor

Travis Scrimshaw

Area

Algebra, Combinatorics, Schubert Calculus

Skills

Foundations in combinatorics, experience reading research papers.

Length

175 hours

Difficulty

Medium-hard

Schubert calculus can roughly be stated as the study of the intersections of lines, through which certain algebras arise that can be represented using Schubert polynomials and Grothendieck polynomials. The main goal of this project is to finish the implementation started in #6629, as well as implement the symmetric Grothendieck polynomials and their duals in symmetric functions. There are also new methods to compute completions in the ring of symmetric functions, allowing expansions of Grothendieck polynomials in Schur functions.

Tensor operations in Sage using Python libraries as backends

Mentor

Matthias Koeppe

Area

Linear/multilinear algebra

Skills

Solid knowledge of linear algebra, Python experience, ideally experience with numpy, PyTorch, JAX, or TensorFlow

Length

350 hours

Difficulty

Hard

In this project, we develop new backends for the tensor modules from the SageManifolds project. Amongst the goals of the project are such elements as a fast implementation of tensor operations using numpy and using TensorFlow Core and PyTorch.

(Remark: It might be worth looking at the TensorSpace project for Magma.)

Enhanced optimization solver interfaces for Sage

Mentor

Matthias Koeppe

Area

Optimization

Skills

Solid knowledge of linear optimization, Python experience, ideally experience with Python optimization interfaces

Length

350 hours

Difficulty

Hard

See Meta-ticket #26511: Use Python optimization interfaces: SCIP, cvxpy, PuLP, Pyomo, cylp...

Connecting manifolds and optimization

Mentor

Matthias Koeppe

Area

Optimization, Differential Geometry

Skills

Solid knowledge of nonlinear optimization, basic knowledge of differential geometry, Python experience, ideally experience with Python optimization interfaces

Length

350 hours

Difficulty

Hard

See Meta-ticket #26511, Meta-ticket #30525

GSoC/2023 (last edited 2024-02-21 18:53:09 by mkoeppe)