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

Modularization of sagelib: Break out separate package sagemath-combinat #33660

Open
mkoeppe opened this issue Apr 8, 2022 · 12 comments · May be fixed by #35095
Open

Modularization of sagelib: Break out separate package sagemath-combinat #33660

mkoeppe opened this issue Apr 8, 2022 · 12 comments · May be fixed by #35095

Comments

@mkoeppe
Copy link
Member

mkoeppe commented Apr 8, 2022

This distribution package sagemath-combinat would depend on sagemath-categories and would be a dependency of sagemath-standard-no-symbolics.

  • Relation to sagemath-graphs (for posets, ...) to be determined
  • Relation to sagemath-singular (for polynomials) to be determined
  • Which modules in sage.combinat need GAP? It comes in via sage.groups.perm_gps

Other imports that are not covered by sagemath-categories:

  • src/sage/combinat/binary_recurrence_sequences.py uses number fields, finite fields, and sage.functions.log
  • src/sage/combinat/cluster_algebra_quiver/ uses finite fields, sage.geometry.fan
  • src/sage/combinat/colored_permutations.py uses number fields
  • src/sage/combinat/crystals/kirillov_reshetikhin.py, mv_polytopes.py use sage.geometry.polyhedron
  • src/sage/combinat/designs uses sage.schemes, finite fields, GAP, sage.groups.additive_abelian, sage.numerical.mip, sage.graphs
  • src/sage/combinat/finite_state_machine.py uses sage.symbolic
  • src/sage/combinat/k_regular_sequence.py uses sage.symbolic.operators, sage.functions
  • src/sage/combinat/k_tableau.py uses sage.functions.generalized
  • src/sage/combinat/lr_tableau.py uses lrcalc
  • src/sage/combinat/matrices/dancing_links.pyx uses sage.sat, sage.numerical.mip
  • src/sage/combinat/matrices/hadamard_matrix.py uses finite fields, sage.graphs.strongly_regular_db
  • src/sage/combinat/matrices/latin.py uses GAP, finite fields
  • src/sage/combinat/partition.py uses FLINT, GAP
  • src/sage/combinat/partition_algebra.py uses sage.functions
  • src/sage/combinat/partition_tuple.py uses PARI
  • src/sage/combinat/path_tableaux/frieze.py uses sage.functions.trig, sage.geometry.hyperbolic_space
  • src/sage/combinat/plane_partition.py uses sage.functions.trig (but only for plotting)
  • src/sage/combinat/posets/hasse_cython.pyx has a compile-time dependency on FLINT (found with git grep cimport src/sage/combinat) for Matrix_integer_dense. Can this dependency be replaced by Matrix_numpy_integer_dense?
  • src/sage/combinat/posets/posets.py uses everything
  • src/sage/combinat/ribbon_tableau.py uses sage.symbolic.ring
  • src/sage/combinat/root_system/associahedron.py uses sage.geometry.polyhedron
  • src/sage/combinat/root_system/cartan_matrix.py defines a subclass of Matrix_integer_sparse (depends on FLINT), also uses sage.graphs
  • TBD: letters r-z

Compile-time dependencies:

  • symmetrica - Cython bindings in sage.libs.symmetrica make run-time imports (late_import) from sage.combinat, sage.rings.polynomial -- and sage.functions for sqrt

Related questions and tasks:

  • Deployment of GAP - possibly via Replace most of sage.libs.gap with gappy #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
  • Fast univariate and multivariate polynomials (over which rings??) without dependency on Singular - possibly via cibuildwheel of python-flint, flint-py, or symengine. Possible synergies with the SymPy project
  • lrcalc needs cibuildwheel workflow
  • use of sage_eval in constructors

Part of Meta-ticket #29705: Modularize sagelib into separate distributions (pip-installable packages) sagemath-...

CC: @anneschilling

Component: refactoring

Issue created by migration from https://trac.sagemath.org/ticket/33660

@mkoeppe mkoeppe added this to the sage-9.6 milestone Apr 8, 2022
@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.8 Apr 8, 2022
@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment