sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.33k stars 452 forks source link

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

Open mkoeppe opened 2 years ago

mkoeppe commented 2 years ago

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

Other imports that are not covered by sagemath-categories:

Compile-time dependencies:

Related questions and tasks:

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 commented 2 years ago

Description changed:

--- 
+++ 
@@ -1,3 +1,4 @@
+This distribution package would [depend on sagemath-categories](https://62488f7aa5c73d4ec648d8d3--sagemath-tobias.netlify.app/developer/packaging_sage_library.html#hierarchy-of-distribution-packages) and would be a dependency of **sagemath-standard-no-symbolics**. Relation to **sagemath-graphs** and **sagemath-singular** to be determined.

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

Description changed:

--- 
+++ 
@@ -1,4 +1,9 @@
-This distribution package would [depend on sagemath-categories](https://62488f7aa5c73d4ec648d8d3--sagemath-tobias.netlify.app/developer/packaging_sage_library.html#hierarchy-of-distribution-packages) and would be a dependency of **sagemath-standard-no-symbolics**. Relation to **sagemath-graphs** and **sagemath-singular** to be determined.
+This distribution package **sagemath-combinat** would [depend on sagemath-categories](https://62488f7aa5c73d4ec648d8d3--sagemath-tobias.netlify.app/developer/packaging_sage_library.html#hierarchy-of-distribution-packages) 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
+- 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`?
+- Which modules in `sage.combinat` need GAP? It comes in via `sage.groups.perm_gps`

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

Description changed:

--- 
+++ 
@@ -2,9 +2,14 @@

 - Relation to **sagemath-graphs** (for posets, ...) to be determined
 - Relation to **sagemath-singular** (for polynomials) to be determined
-- 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/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`?
 - Which modules in `sage.combinat` need GAP? It comes in via `sage.groups.perm_gps`
-
+- `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`

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

Description changed:

--- 
+++ 
@@ -2,7 +2,6 @@

 - Relation to **sagemath-graphs** (for posets, ...) to be determined
 - Relation to **sagemath-singular** (for polynomials) to be determined
-- `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`?
 - Which modules in `sage.combinat` need GAP? It comes in via `sage.groups.perm_gps`
 - `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`
@@ -10,6 +9,22 @@
 - `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`
+- `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`
+- TBD: letters r-z

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

Description changed:

--- 
+++ 
@@ -19,7 +19,7 @@
 - `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`
+- `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`
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -3,6 +3,9 @@
 - 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
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -29,5 +29,11 @@
 - `src/sage/combinat/root_system/associahedron.py` uses `sage.geometry.polyhedron`
 - TBD: letters r-z

+
+Related questions and tasks:
+- Deployment of GAP - possibly via #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
+- Fast univariate and multivariate polynomials without dependency on Singular - possibly via cibuildwheel of [python-flint](https://github.com/fredrik-johansson/python-flint), [flint-py](https://pypi.org/project/flint-py/), or [symengine](https://pypi.org/project/symengine/). Possible synergies with the SymPy project
+
+
 Part of Meta-ticket #29705: Modularize sagelib into separate distributions (pip-installable packages) sagemath-...
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -33,7 +33,7 @@
 Related questions and tasks:
 - Deployment of GAP - possibly via #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
 - Fast univariate and multivariate polynomials without dependency on Singular - possibly via cibuildwheel of [python-flint](https://github.com/fredrik-johansson/python-flint), [flint-py](https://pypi.org/project/flint-py/), or [symengine](https://pypi.org/project/symengine/). Possible synergies with the SymPy project
-
+- [lrcalc](https://pypi.org/project/lrcalc/#files) needs cibuildwheel workflow

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

Description changed:

--- 
+++ 
@@ -29,6 +29,8 @@
 - `src/sage/combinat/root_system/associahedron.py` uses `sage.geometry.polyhedron`
 - TBD: letters r-z

+Compile-time dependencies:
+- `symmetrica` - Cython bindings in `sage.libs.symmetrica`

 Related questions and tasks:
 - Deployment of GAP - possibly via #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -30,7 +30,7 @@
 - TBD: letters r-z

 Compile-time dependencies:
-- `symmetrica` - Cython bindings in `sage.libs.symmetrica`
+- `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 #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -36,6 +36,7 @@
 - Deployment of GAP - possibly via #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
 - Fast univariate and multivariate polynomials without dependency on Singular - possibly via cibuildwheel of [python-flint](https://github.com/fredrik-johansson/python-flint), [flint-py](https://pypi.org/project/flint-py/), or [symengine](https://pypi.org/project/symengine/). Possible synergies with the SymPy project
 - [lrcalc](https://pypi.org/project/lrcalc/#files) needs cibuildwheel workflow
+- use of `sage_eval` in constructors

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

Description changed:

--- 
+++ 
@@ -34,7 +34,7 @@

 Related questions and tasks:
 - Deployment of GAP - possibly via #31404 (Replace most of sage.libs.gap with gappy) + cibuildwheel of gappy
-- Fast univariate and multivariate polynomials without dependency on Singular - possibly via cibuildwheel of [python-flint](https://github.com/fredrik-johansson/python-flint), [flint-py](https://pypi.org/project/flint-py/), or [symengine](https://pypi.org/project/symengine/). Possible synergies with the SymPy project
+- Fast univariate and multivariate polynomials (over which rings??) without dependency on Singular - possibly via cibuildwheel of [python-flint](https://github.com/fredrik-johansson/python-flint), [flint-py](https://pypi.org/project/flint-py/), or [symengine](https://pypi.org/project/symengine/). Possible synergies with the SymPy project
 - [lrcalc](https://pypi.org/project/lrcalc/#files) needs cibuildwheel workflow
 - use of `sage_eval` in constructors