Main repository of SageMath. Now open for Issues and Pull Requests.
SageMath version 10.2 (released Dec 3, 2023)
# needs
in posets folder by @fchapoton in https://github.com/sagemath/sage/pull/36114
partn_ref.data_structures
(partial) + some pep8 by @fchapoton in https://github.com/sagemath/sage/pull/36140
debian-buster
and fedora-29
by @mkoeppe in https://github.com/sagemath/sage/pull/35810
sage.categories
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/35945
is_chebyshev
and is_Lattes
for one dimensional projective dynamical systems by @guojing0 in https://github.com/sagemath/sage/pull/36000
sage.arith
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36057
Matrix_modn_dense_template
matrices by @marizee in https://github.com/sagemath/sage/pull/36059
sage.{cpython,data_structures,databases,ext,parallel,structure}
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36067
sage.{matrix,modules,probability,stats,quadratic_forms,tensor}
: Update # needs
, modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/36070
Polynomial_ZZ_pEX
in .pxd
file by @GiacomoPope in https://github.com/sagemath/sage/pull/36071
sage.{interacts,misc,repl,typeset}
: Update # needs
, modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/36078
sage.geometry.polyhedron
: fix doctest error due to modularization by @dcoudert in https://github.com/sagemath/sage/pull/36089
Matrix_modn_dense_template
by @marizee in https://github.com/sagemath/sage/pull/36093
Polynomial_ZZ_pEX
by @GiacomoPope in https://github.com/sagemath/sage/pull/36097
sage.crypto
: Update # needs
, modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/36106
sage.functions
: Decouple from sage.symbolic.expression
and mpmath
, update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/35716
sage.combinat.root_system
: Modularization fixes, # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36136
sage.graphs
by @dcoudert in https://github.com/sagemath/sage/pull/36142
src/sage/algebras/quantum_groups/quantum_group_gap.py
by @dcoudert in https://github.com/sagemath/sage/pull/36149
sage.rings.finite_rings.element_*
: Remove unused imports by @mkoeppe in https://github.com/sagemath/sage/pull/36105
sage.rings
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36152
sage.misc.rest_index_of_methods
to fix the documentation of graphs. by @dcoudert in https://github.com/sagemath/sage/pull/36179
sage.misc.sageinspect
: fix doctest warnings due to modularisation by @dcoudert in https://github.com/sagemath/sage/pull/36183
cimport
s by @mkoeppe in https://github.com/sagemath/sage/pull/36207
sage.schemes
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36102
sage/combinat/posets/*
by @dcoudert in https://github.com/sagemath/sage/pull/36225
min_spanning_tree
robust to incomparable vertex labels by @dcoudert in https://github.com/sagemath/sage/pull/36232
sage -t
: Distinguish .pxd from .pyx in doctest basenames by @mkoeppe in https://github.com/sagemath/sage/pull/36238
bootstrap
by @mkoeppe in https://github.com/sagemath/sage/pull/36240
MPowerSeries
: Don't go through symbolics to compute exp(0), log(1) by @mkoeppe in https://github.com/sagemath/sage/pull/36260
pyproject.toml
files by @mkoeppe in https://github.com/sagemath/sage/pull/36263
equals
, is_isomorphism
by @mkoeppe in https://github.com/sagemath/sage/pull/35964
sage.groups
: Modularization fixes, # needs
, doctest cosmetics by @mkoeppe in https://github.com/sagemath/sage/pull/36168
sage --fixdoctests --update-known-test-failures
; silence modularized distributions in CI by @mkoeppe in https://github.com/sagemath/sage/pull/36264
sage.graphs
: some care with return ... else statements in some .pyx files by @dcoudert in https://github.com/sagemath/sage/pull/36278
sage.finance
, deprecated in #32427 (2021) by @mkoeppe in https://github.com/sagemath/sage/pull/36303
sage.media
, sage.structure.graphics_file
: Remove; deprecated in #12673, #32988 by @mkoeppe in https://github.com/sagemath/sage/pull/36305
sage.docs
: Remove; deprecated in #33763 by @mkoeppe in https://github.com/sagemath/sage/pull/36306
sage.rings
: Remove code deprecated in #23204, #24483, #24371, #24511, #25848, #26105, #28481, #29010, #29412, #30332, #30372, #31345, #32375, #32606, #32610, #32612, #32641, #32660, #32750, #32869, #33602 by @mkoeppe in https://github.com/sagemath/sage/pull/36307
ecm
: Work around build failure with Xcode 15 by @mkoeppe in https://github.com/sagemath/sage/pull/36345
ipympl
/pkgconfig
/widgetsnbextension
to wheel packages, drop build deps by @mkoeppe in https://github.com/sagemath/sage/pull/36267
sage.graphs.generic_graph
: some care with return ... else statements by @dcoudert in https://github.com/sagemath/sage/pull/36275
sage.rings.padics
: Import fixes (modularization) by @mkoeppe in https://github.com/sagemath/sage/pull/36261
sage.sets
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36272
sage.graphs
, sage.combinat.{designs,posets}
, sage.sandpiles
: Update # needs by @mkoeppe in https://github.com/sagemath/sage/pull/36273
sage.graphs
: some care with return ... else statements in graph.py
, digraph.py
and bipartite_graph.py
by @dcoudert in https://github.com/sagemath/sage/pull/36277
packaging
, update flit_core
to 3.9.0, pip
to 23.2.1 by @mkoeppe in https://github.com/sagemath/sage/pull/36363
pkgs/sage-conf_conda
by @mkoeppe in https://github.com/sagemath/sage/pull/36367
configure --enable-system-site-packages
: First check all non-site packages by @mkoeppe in https://github.com/sagemath/sage/pull/36382
sage --package list
: Sort output, add switches --{in,ex}clude-dependencies
by @mkoeppe in https://github.com/sagemath/sage/pull/36393
OperationTable.color_table
by @rburing in https://github.com/sagemath/sage/pull/36397
bootstrap-conda
: Refactor, generate versioned environment files by @mkoeppe in https://github.com/sagemath/sage/pull/36405
scipy
to 1.11.3, meson_python
to 0.14.0, meson
to 1.2.2 by @mkoeppe in https://github.com/sagemath/sage/pull/36412
configure --config-cache --enable-ccache
by @mkoeppe in https://github.com/sagemath/sage/pull/36415
src/sage/combinat/posets/posets.py
by @dcoudert in https://github.com/sagemath/sage/pull/36464
centos-7
, fedora-30
, ubuntu-xenial
by @mkoeppe in https://github.com/sagemath/sage/pull/36476
sage.symbolics
: Remove code deprecated in #18036, #29738, #32386, #32638, #32665, #34215 by @mkoeppe in https://github.com/sagemath/sage/pull/36304
matplotlib
to 3.8.0, pillow
to 10.0.1 by @mkoeppe in https://github.com/sagemath/sage/pull/36320
build/pkgs/setuptools_scm
: Update to 8.0.4, add fixes for version 8 by @mkoeppe in https://github.com/sagemath/sage/pull/36400
setuptools
update by @mkoeppe in https://github.com/sagemath/sage/pull/36411
ubuntu-focal-standard
without waiting for other platforms by @mkoeppe in https://github.com/sagemath/sage/pull/36430
build*.yml
through a new script .ci/retrofit-worktree.sh
by @mkoeppe in https://github.com/sagemath/sage/pull/36442
make sagemath_categories-check
, make pypi-wheels-check
by @mkoeppe in https://github.com/sagemath/sage/pull/36452
tomli
from some build dependencies by @mkoeppe in https://github.com/sagemath/sage/pull/36454
build/pkgs/cython
: Update to 3.0.4 by @mkoeppe in https://github.com/sagemath/sage/pull/36416
cycle_basis
for graphs with multiple edges by @dcoudert in https://github.com/sagemath/sage/pull/36493
networkx
, scipy
, ipywidgets
: Update version ranges in conda.txt
by @mkoeppe in https://github.com/sagemath/sage/pull/36513
build/pkgs/sagenb_export
: Fix install-requires.txt by @mkoeppe in https://github.com/sagemath/sage/pull/36514
sage.schemes.toric
: Remove pyright 'is possibly unbound' warnings by @mkoeppe in https://github.com/sagemath/sage/pull/36516
pkgs/sagemath-{bliss,sirocco,tdlib}
: Fix sdists by @mkoeppe in https://github.com/sagemath/sage/pull/36520
pkgs/sagemath-standard
: Fix sdist by @mkoeppe in https://github.com/sagemath/sage/pull/36532
build/pkgs/pip
: Increase lower version bound; upgrade pip
, wheel
, packaging
, platformdirs
by @mkoeppe in https://github.com/sagemath/sage/pull/36540
build/pkgs/nauty
: Upgrade to 2.8.6, require nauty >= 2.8 by @mkoeppe in https://github.com/sagemath/sage/pull/36541
src/sage/misc/cython.py
: Fix the workaround for setuptools_scm by @mkoeppe in https://github.com/sagemath/sage/pull/36552
sage.{dynamics,schemes}
: Modularization fixes, docstring cosmetics, update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36271
src/sage/rings/polynomial/skew_polynomial_finite_field.pyx
by @dcoudert in https://github.com/sagemath/sage/pull/36647
sage.misc.lazy_attribute
: Add typestub file for pyright by @mkoeppe in https://github.com/sagemath/sage/pull/36517
pkgs/sagemath-{objects,categories,environment,repl}
: Move metadata from setup.cfg
to pyproject.toml
by @mkoeppe in https://github.com/sagemath/sage/pull/36563
sage.numerical
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36567
sage.manifolds
, sage.tensor
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36568
sage.matrix
, sage.modules
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36569
sage.cpython
module multiple times by @tobiasdiez in https://github.com/sagemath/sage/pull/36590
sage.{matrix,matroids,modules,stats}
by @mkoeppe in https://github.com/sagemath/sage/pull/36594
sage.{coding,combinat,graphs}
by @mkoeppe in https://github.com/sagemath/sage/pull/36595
sage.{geometry,groups,numerical,plot}
by @mkoeppe in https://github.com/sagemath/sage/pull/36596
sage.libs.ntl
by @tobiasdiez in https://github.com/sagemath/sage/pull/36605
itertools.pairwise
by @dcoudert in https://github.com/sagemath/sage/pull/36609
sage.libs
except .ntl
by @mkoeppe in https://github.com/sagemath/sage/pull/36612
standard-pre
, decrease for standard
, minimal-pre
by @mkoeppe in https://github.com/sagemath/sage/pull/36616
sage.modular
: Update # needs
, doctest cosmetics by @mkoeppe in https://github.com/sagemath/sage/pull/36618
sage.combinat
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36619
sage.rings.padics
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36259
pkgs/sage-conf_pypi
: Repair after #36400, #36435 by @mkoeppe in https://github.com/sagemath/sage/pull/36533
zeromq
to 4.3.5, pyzmq
to 25.1.1, patch out broken tests in setup by @mkoeppe in https://github.com/sagemath/sage/pull/36663
centos-7
after #36435, remove gentoo-python3.12
for now, use conda-forge
with -python3.11
by @mkoeppe in https://github.com/sagemath/sage/pull/36534
make -j N
; but use make -j 1
on ubuntu-trusty
by @mkoeppe in https://github.com/sagemath/sage/pull/36671
build/pkgs/nauty
: Handle SAGE_FAT_BINARY
by @mkoeppe in https://github.com/sagemath/sage/pull/36707
opensuse-tumbleweed-minimal
: Ensure gawk is present by @mkoeppe in https://github.com/sagemath/sage/pull/36712
openblas
: Update to 0.3.25 by @mkoeppe in https://github.com/sagemath/sage/pull/36722
build/pkgs/pillow
: Allow discovery of libjpeg, upgrade to 10.1.0 by @mkoeppe in https://github.com/sagemath/sage/pull/36731
make SPKG-uninstall
for Python packages after #36452 by @mkoeppe in https://github.com/sagemath/sage/pull/36737
Release Manager: @vbraun
Full Changelog: https://github.com/sagemath/sage/compare/10.1...10.2
SageMath version 10.1 (released Aug 20, 2023)
sage.rings.factorint
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35502
is_SymbolicVariable
, is_SymbolicEquation
by @mkoeppe in https://github.com/sagemath/sage/pull/35505
modular/
folder by @fchapoton in https://github.com/sagemath/sage/pull/35516
rank
return an Integer
object by @kryzar in https://github.com/sagemath/sage/pull/35519
src/sage_docbuild/conf.py
: Do not fail if pplpy
doc is not installed by @mkoeppe in https://github.com/sagemath/sage/pull/35536
centralizer
, subgroup
methods; improving center
by @tscrim in https://github.com/sagemath/sage/pull/35540
sage/graphs/graph_decompositions
by @dcoudert in https://github.com/sagemath/sage/pull/35551
combinat/
by @fchapoton in https://github.com/sagemath/sage/pull/35553
egrep
by @fchapoton in https://github.com/sagemath/sage/pull/35565
plot
folder by @fchapoton in https://github.com/sagemath/sage/pull/35566
4ti2
: Update to 1.6.10, fixes egrep
issue, adds GCC 13 support by @mkoeppe in https://github.com/sagemath/sage/pull/35570
posets
by @fchapoton in https://github.com/sagemath/sage/pull/35573
tox
4.x for testing modularized distributions by @mkoeppe in https://github.com/sagemath/sage/pull/35208
openblas
: Update to 0.3.23 by @mkoeppe in https://github.com/sagemath/sage/pull/35371
sage.categories
: Add # optional
for modularization; reformat doctests by @mkoeppe in https://github.com/sagemath/sage/pull/35422
src/doc/en/developer/portability_testing.rst
: Update after migration by @mkoeppe in https://github.com/sagemath/sage/pull/35108
chromatic_number
by @dcoudert in https://github.com/sagemath/sage/pull/35145
sage.{topology,homology}
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35581
networkx
3.1 by @tornaria in https://github.com/sagemath/sage/pull/35584
sage.geometry
: Add some # optional
, reformat doctests by @mkoeppe in https://github.com/sagemath/sage/pull/35586
bootstrap-conda
: Skip the dummy package _sagemath
by @mkoeppe in https://github.com/sagemath/sage/pull/35589
sage.all
import in pytest by @tobiasdiez in https://github.com/sagemath/sage/pull/35598
src/doc/common/python3.inv
: Update by @mkoeppe in https://github.com/sagemath/sage/pull/35608
_element_constructor
by @nbruin in https://github.com/sagemath/sage/pull/35610
linbox
1.7.0 and 1.6.3 at the same time by @tornaria in https://github.com/sagemath/sage/pull/35612
Animation.ffmpeg
: Shell-quote filenames by @mkoeppe in https://github.com/sagemath/sage/pull/35622
modules
and dynamics
by @fchapoton in https://github.com/sagemath/sage/pull/35623
all(all(...))
in combinat
and geometry
by @fchapoton in https://github.com/sagemath/sage/pull/35631
sympy
1.12 by @tornaria in https://github.com/sagemath/sage/pull/35635
.conjugate()
method by @remyoudompheng in https://github.com/sagemath/sage/pull/35643
sage.graphs
: More # optional
and other modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35647
_bootstrap
, not _prereq
, on all distros by @mkoeppe in https://github.com/sagemath/sage/pull/35407
sage.rings
: Reformat doctests, add # optional
annotations by @mkoeppe in https://github.com/sagemath/sage/pull/35457
ore_polynomial_element.pyx
by @kwankyu in https://github.com/sagemath/sage/pull/35562
EllipticCurve.lift_x()
deterministic by @yyyyx4 in https://github.com/sagemath/sage/pull/35644
x
in doctests by @mkoeppe in https://github.com/sagemath/sage/pull/35648
finite_word.py
by @fchapoton in https://github.com/sagemath/sage/pull/35657
sphinx
7 by @antonio-rojas in https://github.com/sagemath/sage/pull/35658
polynomials
by @fchapoton in https://github.com/sagemath/sage/pull/35672
pyx
files in folders a*-geo*
by @fchapoton in https://github.com/sagemath/sage/pull/35673
graphs
, groups
, interacts
by @fchapoton in https://github.com/sagemath/sage/pull/35674
matrix
folder by @fchapoton in https://github.com/sagemath/sage/pull/35675
calculus
folder by @fchapoton in https://github.com/sagemath/sage/pull/35686
rings/
by @fchapoton in https://github.com/sagemath/sage/pull/35688
[s-z]*
by @fchapoton in https://github.com/sagemath/sage/pull/35689
permgroup_named
: Diyclic => Dicyclic by @dwbump in https://github.com/sagemath/sage/pull/35694
misc/
by @fchapoton in https://github.com/sagemath/sage/pull/35697
tox.ini
/ GH Actions: Remove gentoo-python3.9
by @sheerluck in https://github.com/sagemath/sage/pull/35705
_is_preperiodic
by @MatheMagicianPi in https://github.com/sagemath/sage/pull/35483
.codecov.yml
by @kwankyu in https://github.com/sagemath/sage/pull/35544
GenericGraph.adjacency_matrix
: using sort=True
when getting vertices by @cyrilbouvier in https://github.com/sagemath/sage/pull/35245
combinat
by @fchapoton in https://github.com/sagemath/sage/pull/35711
matrix_symbolic_sparse
class by @dimpase in https://github.com/sagemath/sage/pull/35714
sage.graphs
: More modularization by @mkoeppe in https://github.com/sagemath/sage/pull/35718
rings
(mostly in padics
) by @fchapoton in https://github.com/sagemath/sage/pull/35721
libs/
by @fchapoton in https://github.com/sagemath/sage/pull/35722
rigged_configurations
by @fchapoton in https://github.com/sagemath/sage/pull/35723
build/pkgs/pyflakes
: Remove by @mkoeppe in https://github.com/sagemath/sage/pull/35731
yield from
by @fchapoton in https://github.com/sagemath/sage/pull/35733
build/pkgs/maxima
: Fix parallel build by @mkoeppe in https://github.com/sagemath/sage/pull/35737
configure
: Remove stray stdin.info
file created in test by @mkoeppe in https://github.com/sagemath/sage/pull/35738
ellrank
in pari by @chriswuthrich in https://github.com/sagemath/sage/pull/35626
networkx
to 3.1, igraph
/python_igraph
to 0.10.4 by @mkoeppe in https://github.com/sagemath/sage/pull/35671
categories
, coding
, crypto
, logic
by @fchapoton in https://github.com/sagemath/sage/pull/35710
symengine(_py)
to versions 0.10.0 and 0.10.1 by @dimpase in https://github.com/sagemath/sage/pull/35713
.zenodo.json*
files, update CITATION.cff
to fix zenodo/DOI by @dimpase in https://github.com/sagemath/sage/pull/35666
.github/workflows/docker.yml
: Remove defunct steps that refer to Trac by @mkoeppe in https://github.com/sagemath/sage/pull/35739
MAX_MODULUS
of float matrices modulo n
by @marizee in https://github.com/sagemath/sage/pull/35752
interfaces/primecount
by @dimpase in https://github.com/sagemath/sage/pull/35754
sage.matrix.misc
: Split by library dependency by @mkoeppe in https://github.com/sagemath/sage/pull/35758
get_global
to use official libgap API by @fingolfin in https://github.com/sagemath/sage/pull/35760
py
files by @fchapoton in https://github.com/sagemath/sage/pull/35766
rings/
by @fchapoton in https://github.com/sagemath/sage/pull/35770
xrange
in pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35772
xrange
in matroids
by @fchapoton in https://github.com/sagemath/sage/pull/35776
# optional
annotations by @mkoeppe in https://github.com/sagemath/sage/pull/35620
sage.matroids
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35719
modform_hecketriangle
by @fchapoton in https://github.com/sagemath/sage/pull/35724
# optional - sage.schemes sage.modular sage.libs.flint
etc. by @mkoeppe in https://github.com/sagemath/sage/pull/35728
sage.coding
: Modularization fixes, doctest cosmetics, add # optional
by @mkoeppe in https://github.com/sagemath/sage/pull/35729
CALL_WITH_STREAM
to redirect output to string by @fingolfin in https://github.com/sagemath/sage/pull/35735
sage.combinat
: Split some Cython modules (modularization fixes) by @mkoeppe in https://github.com/sagemath/sage/pull/35741
sage.misc.misc
, sage.combinat
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35564
MAX_MODULUS
of matrix_modn_dense_double.pyx
by @marizee in https://github.com/sagemath/sage/pull/35855
sage.combinat
: More # optional
annotations by @mkoeppe in https://github.com/sagemath/sage/pull/35742
fast_callable
interpreters by @mkoeppe in https://github.com/sagemath/sage/pull/35774
minimal_model
, and translate OS-algebra to cdga by @miguelmarco in https://github.com/sagemath/sage/pull/35782
build/pkgs/onetbb
: Add distros/opensuse.txt
by @mkoeppe in https://github.com/sagemath/sage/pull/35785
simplify
by @fchapoton in https://github.com/sagemath/sage/pull/35789
tox.ini
, .github/workflows/docker.yml
: Add almalinux
by @mkoeppe in https://github.com/sagemath/sage/pull/35794
sage.geometry...all
, update relint pattern by @mkoeppe in https://github.com/sagemath/sage/pull/35798
.github/workflows/doc-build.yml
: Fix generation of CHANGES.html
by @mkoeppe in https://github.com/sagemath/sage/pull/35808
normalize_coordinates
for projective morphisms by @guojing0 in https://github.com/sagemath/sage/pull/35809
sage.misc.timing
: Split out from sage.misc.misc
by @mkoeppe in https://github.com/sagemath/sage/pull/35816
xrange()
in pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35818
sage.features
: Declare features as "standard" explicitly by @mkoeppe in https://github.com/sagemath/sage/pull/35820
algebras/
by @fchapoton in https://github.com/sagemath/sage/pull/35822
numpy
1.25.0 by @tornaria in https://github.com/sagemath/sage/pull/35826
symbolic
(E305 and others) by @fchapoton in https://github.com/sagemath/sage/pull/35827
setuptools
68.0.0 by @tornaria in https://github.com/sagemath/sage/pull/35831
scipy
1.11 by @antonio-rojas in https://github.com/sagemath/sage/pull/35842
bliss
0.77 by @antonio-rojas in https://github.com/sagemath/sage/pull/35344
sage -docbuild all FORMAT
: Run make doc-FORMAT
by @mkoeppe in https://github.com/sagemath/sage/pull/35604
pkgs/*/setup.cfg
: Reduce boilerplate by m4-include, reduce complexity of m4 use by @mkoeppe in https://github.com/sagemath/sage/pull/35867
groups/perm_gps
by @fchapoton in https://github.com/sagemath/sage/pull/35877
algebras
, arith
, calculus
, categories
by @fchapoton in https://github.com/sagemath/sage/pull/35879
combinat/(crystals,matrices,words)
by @fchapoton in https://github.com/sagemath/sage/pull/35880
repl
by @fchapoton in https://github.com/sagemath/sage/pull/35911
Rational
's round
method default rounding from away to even by @vneiger in https://github.com/sagemath/sage/pull/35756
singular
4.3.2p2 by @tornaria in https://github.com/sagemath/sage/pull/35825
Integer.{perfect_power,is_prime_power,is_irreducible}
: Handle easy cases without PARI by @mkoeppe in https://github.com/sagemath/sage/pull/35847
walkthrough.html
by @Jun-Hee-Lee in https://github.com/sagemath/sage/pull/35852
T_CHAR
by @fingolfin in https://github.com/sagemath/sage/pull/35863
Category
documentation by @thecaligarmo in https://github.com/sagemath/sage/pull/35868
ternary.pyx
by @fchapoton in https://github.com/sagemath/sage/pull/35925
mpmath
to 1.3.0 by @dimpase in https://github.com/sagemath/sage/pull/35929
rings
by @fchapoton in https://github.com/sagemath/sage/pull/35937
bootstrap
: Accept SPKG arguments by @mkoeppe in https://github.com/sagemath/sage/pull/35950
sage.combinat.cluster_algebra_quiver
: Modularization fixes, update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/35951
src/doc
by @fchapoton in https://github.com/sagemath/sage/pull/35955
barvinok
to 0.41.7, add upstream_url
by @dimpase in https://github.com/sagemath/sage/pull/35839
sphinx
<= 7.x and other conda related improvements by @tobiasdiez in https://github.com/sagemath/sage/pull/35845
homology/
by @fchapoton in https://github.com/sagemath/sage/pull/35908
topology/
by @fchapoton in https://github.com/sagemath/sage/pull/35909
modular/btquotients
and modular/modsym
by @fchapoton in https://github.com/sagemath/sage/pull/35918
sage.matroids
: Update # needs
, modularization fixes for imports by @mkoeppe in https://github.com/sagemath/sage/pull/35919
basestring
by str
in Cython files by @fchapoton in https://github.com/sagemath/sage/pull/35920
lean_matrix.pyx
by @fchapoton in https://github.com/sagemath/sage/pull/35921
plot3d/*.pyx
by @fchapoton in https://github.com/sagemath/sage/pull/35922
sets/
by @fchapoton in https://github.com/sagemath/sage/pull/35923
functions/
by @fchapoton in https://github.com/sagemath/sage/pull/35924
cpython/
probability/
media/
and sat/
folders by @fchapoton in https://github.com/sagemath/sage/pull/35931
sage.groups.perm_gps.partn_ref*
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35881
complex_dynamics
, fix: mandelbrot_plot
throws exception for z^2*(z-c) + c by @ForrestHilton in https://github.com/sagemath/sage/pull/35900
SubgraphSearch
robust to vertex labels by @dcoudert in https://github.com/sagemath/sage/pull/35904
sage.combinat.designs
: Modularization fixes, update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/35943
find_hamiltonian
by @dcoudert in https://github.com/sagemath/sage/pull/35956
sage.rings.function_field
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/35957
kRegularSequence.partial_sums
by @cheuberg in https://github.com/sagemath/sage/pull/35962
is_chordal
by @dcoudert in https://github.com/sagemath/sage/pull/35965
src/sage/schemes/projective/proj_bdd_height.py
: Fix markup by @mkoeppe in https://github.com/sagemath/sage/pull/35974
hilbert_numerator
test to its proper place by @antonio-rojas in https://github.com/sagemath/sage/pull/35977
_palp_PM_max()
by @xuluze in https://github.com/sagemath/sage/pull/35997
# optional - sage....
doctest tags, extend sage -t
and sage -fixdoctests
for modularization tasks by @mkoeppe in https://github.com/sagemath/sage/pull/35749
mod_sym_num
by @fchapoton in https://github.com/sagemath/sage/pull/36002
pkgs/sagemath-meataxe/README.rst
: Remove markup unknown to PyPI by @mkoeppe in https://github.com/sagemath/sage/pull/36003
ZZ
by @fchapoton in https://github.com/sagemath/sage/pull/36007
pkgs/sagemath*
: Exclude all__*.py
files of other distributions by @mkoeppe in https://github.com/sagemath/sage/pull/36015
coxeter3
, ... by @mkoeppe in https://github.com/sagemath/sage/pull/36016
sage -fixdoctests
: Handle directory names, call sage -t
only once by @mkoeppe in https://github.com/sagemath/sage/pull/36024
sage.graphs
: Update # needs
, use block-scoped tags by @mkoeppe in https://github.com/sagemath/sage/pull/36026
sage.calculus
: Modularization fixes, doctest cosmetics, # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/35717
make_gap_list
, make_gap_matrix
by @fingolfin in https://github.com/sagemath/sage/pull/35862
README.md
by @fchapoton in https://github.com/sagemath/sage/pull/35958
dirichlet.py
by @fchapoton in https://github.com/sagemath/sage/pull/35959
descent_two_isogeny.pyx
by @fchapoton in https://github.com/sagemath/sage/pull/35979
classical_geometries.py
from 94bca97cfe9 by @dimpase in https://github.com/sagemath/sage/pull/36017
sage/graphs/orientations.py
by @dcoudert in https://github.com/sagemath/sage/pull/35981
sage/graphs/domination.py
by @dcoudert in https://github.com/sagemath/sage/pull/35982
# optional - gap_package_grape
etc. instead of # optional - gap_packages
by @mkoeppe in https://github.com/sagemath/sage/pull/36025
sage.geometry
: Update # needs
, use block-scoped tags by @mkoeppe in https://github.com/sagemath/sage/pull/36033
\
line continuations by @mkoeppe in https://github.com/sagemath/sage/pull/36034
.pyx
files by @jhpalmieri in https://github.com/sagemath/sage/pull/36036
sage.typeset
: Update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36037
sage.plot
: Add/update # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36038
arith
, algebras
and crypto
folders by @fchapoton in https://github.com/sagemath/sage/pull/36039
sage/graphs/bliss.pyx
by @dcoudert in https://github.com/sagemath/sage/pull/36040
sage.rings.number_field
: Modularization fixes, doctest cosmetics, # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36044
sage.rings.polynomial
: Modularization fixes, # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36045
sage.{topology,homology}
: Update # needs, modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/36051
sage.rings.{padics,valuation}
: Modularization fixes, # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36052
sage.rings.finite_rings
: Modularization fixes, # needs
by @mkoeppe in https://github.com/sagemath/sage/pull/36056
MatrixArgs
type MA_ENTRIES_ZERO
by @vneiger in https://github.com/sagemath/sage/pull/36068
triangulation/base.pyx
by @fchapoton in https://github.com/sagemath/sage/pull/36072
Graph
vertices and edges by default by @dcoudert in https://github.com/sagemath/sage/pull/36073
verbosity
to verbose
in graphs by @dcoudert in https://github.com/sagemath/sage/pull/36074
spanning_tree.pyx
by @dcoudert in https://github.com/sagemath/sage/pull/36075
circular
from method is_planar
by @dcoudert in https://github.com/sagemath/sage/pull/36076
sage.graphs
: fix doctest warnings due to modularization by @dcoudert in https://github.com/sagemath/sage/pull/36077
sage.{modular,schemes}
: Modularization fixes for imports; update sage -fiximports
, add relint pattern by @mkoeppe in https://github.com/sagemath/sage/pull/35884
key
to methods multiple_edges
and edge_boundary
by @dcoudert in https://github.com/sagemath/sage/pull/35903
multiple=
option to EllipticCurvePoint_field.set_order()
by @yyyyx4 in https://github.com/sagemath/sage/pull/35935
reverse
for digraphs by @dcoudert in https://github.com/sagemath/sage/pull/35969
Full Changelog: https://github.com/sagemath/sage/compare/10.0...10.1
SageMath version 10.0 (released May 20, 2023)
tox.ini
(fedora-33): Do not set IGNORE_MISSING_SYSTEM_PACKAGES=no
by @mkoeppe in https://github.com/sagemath/sage/pull/35126
klyachko.py
due to #32773 by @tornaria in https://github.com/sagemath/sage/pull/35058
WeierstrassIsomorphism
by @yyyyx4 in https://github.com/sagemath/sage/pull/34967
image
and column_space
by @Sandstorm831 in https://github.com/sagemath/sage/pull/34972
SignedPermutation
should allow iterables as input by @Sandstorm831 in https://github.com/sagemath/sage/pull/34974
.torsion_basis()
method to EllipticCurve_finite_field
by @yyyyx4 in https://github.com/sagemath/sage/pull/34982
.twists()
to EllipticCurve_finite_field
by @yyyyx4 in https://github.com/sagemath/sage/pull/34981
int
to ZZ
(python 3.11, 32 bit, gcc12) by @tornaria in https://github.com/sagemath/sage/pull/34997
sage.{categories,matrix,structure}
: Replace imports from sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35012
limit=
argument to Integer.prime_divisors()
by @yyyyx4 in https://github.com/sagemath/sage/pull/35019
MinPolyMod()
for more rings by @yyyyx4 in https://github.com/sagemath/sage/pull/34966
qqbar.clear_denominators
: crude but fast alternative algorithm by @mezzarobba in https://github.com/sagemath/sage/pull/34961
checksums.ini
that point to trac by @roed314 in https://github.com/sagemath/sage/pull/35023
verbose
with positional argument by @alexjbest in https://github.com/sagemath/sage/pull/35024
__getitem__
and alias weight methods for quasimodular forms by @DavidAyotte in https://github.com/sagemath/sage/pull/35025
sage.schemes
: Replace imports from sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35033
_multiple_x_*()
methods work for all n≠0 by @yyyyx4 in https://github.com/sagemath/sage/pull/35035
is_open
in ManifoldSubset.complement
and difference
by @egourgoulhon in https://github.com/sagemath/sage/pull/35040
KnotInfo
by @soehms in https://github.com/sagemath/sage/pull/35063
CommutativePolynomial
, MPolynomial_libsingular
, InfinitePolynomial
; deprecate is_Polynomial
, is_MPolynomial
by @mkoeppe in https://github.com/sagemath/sage/pull/35076
is_supergreedy()
to linear extensions by @Sandstorm831 in https://github.com/sagemath/sage/pull/34970
.ideal()
method by @yyyyx4 in https://github.com/sagemath/sage/pull/34979
is_prime
for ideals uses factorization, can be VERY slow by @yyyyx4 in https://github.com/sagemath/sage/pull/34980
monomials_of_degree
by @DavidAyotte in https://github.com/sagemath/sage/pull/35043
sage.{coding,groups}
: Replace imports from sage.*.all for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35099
setup.py sdist
, add targets make SPKG-sdist
by @mkoeppe in https://github.com/sagemath/sage/pull/35104
sage.{functions,interfaces,symbolic}
: Replace imports from sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35105
sage.{arith,crypto,databases,dynamics,lfunctions,quadratic_forms}
: Replace imports from sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35106
sage.{finance,interacts,libs,numerical,stats,tests}
: Replace imports from sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35107
is_FiniteField
etc., make sage.rings.finite_rings
a namespace package by @mkoeppe in https://github.com/sagemath/sage/pull/35119
sig_on()
/sig_off()
in CBF.integral()
by @mezzarobba in https://github.com/sagemath/sage/pull/35044
build/pkgs/pcre
: Remove by @mkoeppe in https://github.com/sagemath/sage/pull/35083
single_valued
method of MZV to auxiliary F ring by @fchapoton in https://github.com/sagemath/sage/pull/35086
sage.{algebras,combinat,matroids}
: Replace imports from sage.*.all for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35090
pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35091
GAP_SO
, sage.env
looks for libgap.so
but it should look for libgap.so*
by @dimpase in https://github.com/sagemath/sage/pull/35094
sage.{topology,homology}
: Replace imports from sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35098
sage.structure.element.NumberFieldElement
, deprecate is_NumberFieldElement
by @mkoeppe in https://github.com/sagemath/sage/pull/35100
scip_backend
: Remove use of deprecated sage.ext.memory_allocator
by @mkoeppe in https://github.com/sagemath/sage/pull/35101
c*
by @fchapoton in https://github.com/sagemath/sage/pull/35151
matrix_integer_dense_hnf.py
by @tornaria in https://github.com/sagemath/sage/pull/35162
pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35165
is_eulerian
by @dcoudert in https://github.com/sagemath/sage/pull/35170
PolyDict
by @videlec in https://github.com/sagemath/sage/pull/35174
Set
equality/inequality by @jhpalmieri in https://github.com/sagemath/sage/pull/35197
typing_extensions
, importlib_resources
, importlib_metadata
by @mkoeppe in https://github.com/sagemath/sage/pull/35203
sage-cleaner
won't kill random processes by @tornaria in https://github.com/sagemath/sage/pull/35204
pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35206
sage.*.all
for namespace packages by @mkoeppe in https://github.com/sagemath/sage/pull/35110
contour_plot
and derivatives by @jnash10 in https://github.com/sagemath/sage/pull/35113
libgap
: Remove some GC hazards by @collares in https://github.com/sagemath/sage/pull/35114
modular/
and algebras/
by @fchapoton in https://github.com/sagemath/sage/pull/35117
sage.env.sage_include_directories
: Don't use distutils
and SAGE_LIB
by @mkoeppe in https://github.com/sagemath/sage/pull/35118
sage/data_structures/stream.py
by @tornaria in https://github.com/sagemath/sage/pull/35127
Tableau
plots by @thecaligarmo in https://github.com/sagemath/sage/pull/35128
connected_subgraphs_iterator
by @dcoudert in https://github.com/sagemath/sage/pull/35131
sage.geometry.integral_points
: Use generic impl if no matrix_integer_dense
by @mkoeppe in https://github.com/sagemath/sage/pull/35135
sage.{geometry,rings}
: More # optional
tags in doctests by @mkoeppe in https://github.com/sagemath/sage/pull/35136
sage.matrix.operation_table
: Modularization and code style fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35153
filterwarnings
calls from sage.all
to sage.all__sagemath_repl
by @mkoeppe in https://github.com/sagemath/sage/pull/35160
Expression.simplify
optionally use sympy by @mathcals in https://github.com/sagemath/sage/pull/35236
sage.features
: Add sage.libs.singular
, features for standard Python packages by @mkoeppe in https://github.com/sagemath/sage/pull/35237
change_ring
in quadratic_forms
by @fchapoton in https://github.com/sagemath/sage/pull/35248
combinat/
by @fchapoton in https://github.com/sagemath/sage/pull/35249
combinat
by @fchapoton in https://github.com/sagemath/sage/pull/35252
is_Algebra
, is_CommutativeAlgebra
by @mkoeppe in https://github.com/sagemath/sage/pull/35253
src/sage/rings/lazy_series.py
by @DavidAyotte in https://github.com/sagemath/sage/pull/35254
qfbcornacchia()
from BinaryQF
by @yyyyx4 in https://github.com/sagemath/sage/pull/35262
sage.topology
: Move imports from sage.graphs
, sage.homology
into methods by @mkoeppe in https://github.com/sagemath/sage/pull/35263
__getitem__
calls by @mantepse in https://github.com/sagemath/sage/pull/35265
sage.graphs
: Add # optional
doctest tags for modularization by @mkoeppe in https://github.com/sagemath/sage/pull/35266
sage.manifolds
, sage.tensor
: Add # optional
doctest tags for modularization by @mkoeppe in https://github.com/sagemath/sage/pull/35267
AdditiveAbelianGroupWrapper
from (not necessarily independent) generating set by @yyyyx4 in https://github.com/sagemath/sage/pull/35270
sage.rings.polynomial.polynomial_ring[_constructor]
: Handle missing implementation modules by @mkoeppe in https://github.com/sagemath/sage/pull/35277
sage.categories
: Modularization fixes for imports by @mkoeppe in https://github.com/sagemath/sage/pull/35279
all=
keyword argument in AlgebraicClosureFiniteFieldElement.sqrt()
by @yyyyx4 in https://github.com/sagemath/sage/pull/35280
finite_drinfeld_module.py
by @DavidAyotte in https://github.com/sagemath/sage/pull/35287
EllipticCurve_field.quadratic_twist
by @remyoudompheng in https://github.com/sagemath/sage/pull/35294
pyscipopt
: Update to 4.3.0, use tarball without generated .c
files, run Cython instead by @dimpase in https://github.com/sagemath/sage/pull/35303
StringIO
to format polynomials by @remyoudompheng in https://github.com/sagemath/sage/pull/35307
subs()
of multivariate polynomials for readability and efficiency by @kwankyu in https://github.com/sagemath/sage/pull/35210
AbelianGroup
elements modulo the respective orders by @pjbruin in https://github.com/sagemath/sage/pull/35218
:class:
, :meth:
roles by @fchapoton in https://github.com/sagemath/sage/pull/35224
cluster_seed
by @fchapoton in https://github.com/sagemath/sage/pull/35228
sage.rings.polynomial.laurent_polynomial_ring_base
: Split out from .laurent_polynomial_ring
by @mkoeppe in https://github.com/sagemath/sage/pull/35229
sage.rings.function_field
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35230
BooleanPolynomialRing
by @mkoeppe in https://github.com/sagemath/sage/pull/35240
build/pkgs/openblas/spkg-configure.m4
: Reject version 0.3.22 by @mkoeppe in https://github.com/sagemath/sage/pull/35377
maMapPoly
to avoid quadratic complexity in polynomial evaluation by @remyoudompheng in https://github.com/sagemath/sage/pull/35381
make dist
: Update git remotes by @mkoeppe in https://github.com/sagemath/sage/pull/35384
src/tox.ini
: Add cython-lint by @mkoeppe in https://github.com/sagemath/sage/pull/35385
save
method to class Standalone
/TikzPicture
for compatibility with sagetex by @seblabbe in https://github.com/sagemath/sage/pull/35394
block_matrix()
by @mezzarobba in https://github.com/sagemath/sage/pull/35405
m
by @fchapoton in https://github.com/sagemath/sage/pull/35409
l*
and after t*
) by @fchapoton in https://github.com/sagemath/sage/pull/35413
argon2_cffi
: Add missing dependency by @mkoeppe in https://github.com/sagemath/sage/pull/35416
WordMorphism
: remove keyword deprecated in #26307 by @fchapoton in https://github.com/sagemath/sage/pull/35421
pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35312
data_structures/bitset_base.pxd
use explicit integer division by @alexhutman in https://github.com/sagemath/sage/pull/35313
sage.schemes
: Reformat doctests, add # optional
annotations by @mkoeppe in https://github.com/sagemath/sage/pull/35314
schemes
and combinat
by @fchapoton in https://github.com/sagemath/sage/pull/35317
squarefree_decomposition
failure over GF(2)
by @remyoudompheng in https://github.com/sagemath/sage/pull/35323
squarefree_decomposition()
for finite fields. by @tscrim in https://github.com/sagemath/sage/pull/35334
polynomial factor()
interruptible by @remyoudompheng in https://github.com/sagemath/sage/pull/35335
completion()
to return a lazy series for infinite precision by @tscrim in https://github.com/sagemath/sage/pull/35345
\mbox
by \text
in manifolds
by @tobiasdiez in https://github.com/sagemath/sage/pull/35353
monte_carlo_integral
by @davidlowryduda in https://github.com/sagemath/sage/pull/35367
.all
imports by @mkoeppe in https://github.com/sagemath/sage/pull/35372
SmallPermutationGroups
by @dwbump in https://github.com/sagemath/sage/pull/35225
algebras/
by @fchapoton in https://github.com/sagemath/sage/pull/35392
categories/
by @fchapoton in https://github.com/sagemath/sage/pull/35408
complex_root_of
to algebraic by @videlec in https://github.com/sagemath/sage/pull/35414
matrix_modn_dense_float.pyx
by @aadya940 in https://github.com/sagemath/sage/pull/35426
Qp.integer_ring()
faster by @tornaria in https://github.com/sagemath/sage/pull/35442
sylvester_matrix
with zero polynomials by @tornaria in https://github.com/sagemath/sage/pull/35449
is_SymbolicEquation
, is_SymbolicVariable
by @mkoeppe in https://github.com/sagemath/sage/pull/35450
rings/
by @fchapoton in https://github.com/sagemath/sage/pull/35452
graphs/
by @fchapoton in https://github.com/sagemath/sage/pull/35453
coding
and crypto
folders by @fchapoton in https://github.com/sagemath/sage/pull/35454
get_unsafe
for NTL GF(p)
polynomials by @remyoudompheng in https://github.com/sagemath/sage/pull/35455
set_partition
+ pep8 cleanup by @fchapoton in https://github.com/sagemath/sage/pull/35458
weyl_characters.py
by @fchapoton in https://github.com/sagemath/sage/pull/35459
.conductor()
and .order_of_conductor()
methods for orders in quadratic fields by @yyyyx4 in https://github.com/sagemath/sage/pull/35271
schemes
and combinat
by @fchapoton in https://github.com/sagemath/sage/pull/35318
GF(2)
polynomials by @remyoudompheng in https://github.com/sagemath/sage/pull/35325
nth_root
by @remyoudompheng in https://github.com/sagemath/sage/pull/35346
sage -package create --pypi --source wheel
by @mkoeppe in https://github.com/sagemath/sage/pull/35379
pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35397
lazy_string
in matrix2.pyx
by @xcaruso in https://github.com/sagemath/sage/pull/35039
build/pkgs/sphinx_{copybutton,basic_ng}
: Add conda info by @mkoeppe in https://github.com/sagemath/sage/pull/35504
schemes
by @fchapoton in https://github.com/sagemath/sage/pull/35507
matrix/
folder by @fchapoton in https://github.com/sagemath/sage/pull/35509
BooleanPolynomial.variables()
way faster by @tornaria in https://github.com/sagemath/sage/pull/35510
Graph.add_clique()
for one vertex by @tornaria in https://github.com/sagemath/sage/pull/35511
PolynomialSequence.connection_graph()
implementation by @tornaria in https://github.com/sagemath/sage/pull/35512
maxima -l ecl
on command line. by @tornaria in https://github.com/sagemath/sage/pull/35514
PolynomialSequence.connected_components()
by @dcoudert in https://github.com/sagemath/sage/pull/35518
sage.combinat.sf
: re-enable a doctest by @mkoeppe in https://github.com/sagemath/sage/pull/35521
expression.pyx
by @fchapoton in https://github.com/sagemath/sage/pull/35525
pyx
files by @fchapoton in https://github.com/sagemath/sage/pull/35526
interfaces
by @fchapoton in https://github.com/sagemath/sage/pull/35530
graph.maximum_average_degree
by @dcoudert in https://github.com/sagemath/sage/pull/35533
matroids/
by @fchapoton in https://github.com/sagemath/sage/pull/35534
sage.quadratic_forms
: Modularization fixes for imports by @mkoeppe in https://github.com/sagemath/sage/pull/35305
sage.groups.matrix_gps
: Modularization fixes for imports by @mkoeppe in https://github.com/sagemath/sage/pull/35306
sage.rings.finite_rings.residue_field
: Modularization fixes by @mkoeppe in https://github.com/sagemath/sage/pull/35389
# long time
by @tornaria in https://github.com/sagemath/sage/pull/35443
is_simple
to permutations by @fchapoton in https://github.com/sagemath/sage/pull/35446
sage.quadratic_forms
: Fix use of staticmethod
for Python < 3.10 by @mkoeppe in https://github.com/sagemath/sage/pull/35558
givaro
, zeromq
: Add patches for GCC 13 support by @mkoeppe in https://github.com/sagemath/sage/pull/35415
sage.rings
, sage.symbolic
by @mkoeppe in https://github.com/sagemath/sage/pull/35594
zeromq
: Add system package info for Arch Linux, Gentoo by @mkoeppe in https://github.com/sagemath/sage/pull/35625
build/pkgs/python3/spkg-configure.m4
: Add depcheck for zlib by @mkoeppe in https://github.com/sagemath/sage/pull/35638
(this was automatically generated by GitHub -- it does not know about contributors before the transition to GitHub)
Full Changelog: https://github.com/sagemath/sage/compare/9.8...10.0
SageMath version 9.8 (released Feb 11, 2023)
#12696: Lorenz Panny: rename .rational_reconstruct() to .rational_reconstruction() for consistency [Reviewed by Kwankyu Lee]
#17965: Frédéric Chapoton: Uniformize the API to compute the inverse of an element [Reviewed by Travis Scrimshaw]
#20467: Frédéric Chapoton: stackoverflow in Maxima integral [Reviewed by Nils Bruin]
#29619: Matthias Koeppe: Matrix and Components should have a sparse iterator [Reviewed by Eric Gourgoulhon]
#30229: Matthias Koeppe: Submodules of TensorFreeModule defined by the symmetries of a Components object [Reviewed by Eric Gourgoulhon]
#30241: Matthias Koeppe: New implementation class FiniteRankDualFreeModule [Reviewed by Eric Gourgoulhon]
#32297: Linden Disney-Hogg: Abel-Jacobi map on Riemann surfaces [Reviewed by Nils Bruin, Travis Scrimshaw]
#32669: Dennis Jahn: Adding upper and lower Bruhat cones of M. Dyer to sage/combinat/root_system/reflection_group_real.py [Reviewed by Frédéric Chapoton, Travis Scrimshaw]
#32921: Gabriel F. Lipnik: k-recursive sequences with inhomogeneities [Reviewed by Clemens Heuberger]
#33002: Sébastien Labbé: Method tikz of polyhedron class can now return an object of type TikzPicture [Reviewed by Laith Rastanawi]
#33062: Matthias Koeppe: GH Actions (docker): Run a job for "make build-local" first, cache image for job "make build" [Reviewed by Dima Pasechnik]
#33093: John Palmieri: 5 doctests failing related to external program octave [Reviewed by Frédéric Chapoton]
#33431: Matthias Koeppe: Category of submodules of sage.modules.free_module.FreeModule_ambient_pid [Reviewed by Travis Scrimshaw]
#33613: Matthias Koeppe: Add pip packages to conda environments, add missing conda.txt files [Reviewed by Dima Pasechnik]
#33640: Frédéric Chapoton: sage fails to factor some easy expressions [Reviewed by David Lowry-Duda]
#33981: Matthias Koeppe: latte_int: ExponentialSubst.h:62:3: error: ISO C++17 does not allow dynamic exception specifications [Reviewed by John Palmieri]
#34118: Oscar Benjamin, Matthias Koeppe: Update sympy to 1.11.1 [Reviewed by Matthias Koeppe, Antonio Rojas, Eric Gourgoulhon]
#34195: Matthias Koeppe: sage.geometry.polyhedron: More # optional - sage.rings.number_field [Reviewed by Jonathan Kliem]
#34203: Matthias Koeppe: Find and uninstall broken installed SPKGs and wheels [Reviewed by John Palmieri]
#34228: Matthias Koeppe: tox -e docker-...-incremental [Reviewed by Dima Pasechnik]
#34235: Matthias Koeppe: Error in comparing two Symbolic Ring elements [Reviewed by Travis Scrimshaw]
#34242: Julian Rüth: Update docker build [Reviewed by MartinPepin]
#34266: Matthias Koeppe: Drop support for GCC < 8 in Sage 9.8 [Reviewed by Dima Pasechnik]
#34282: Sebastian Oehms, Kwankyu Lee: Make feature TeXFile check latex first [Reviewed by Kwankyu Lee, Sebastian Oehms]
#34287: Frédéric Chapoton: modernize super in crystals and asymptotics [Reviewed by Travis Scrimshaw]
#34290: Frédéric Chapoton: fix some W391 [Reviewed by Travis Scrimshaw]
#34313: David Coudert: pycodestyle cleanup in strongly_regular_db.pyx (part 3) [Reviewed by Kwankyu Lee]
#34320: Frédéric Chapoton: fix E251 in schemes [Reviewed by David Coudert]
#34323: Frédéric Chapoton: fix E251 in groups [Reviewed by David Coudert]
#34342: Frédéric Chapoton: fix various suggestions by lgtm [Reviewed by David Coudert]
#34345: Trevor K. Karn: Method to get cells in horizontal/vertical border strip [Reviewed by Travis Scrimshaw]
#34350: Travis Scrimshaw: speed up powers of lazy Taylor series [Reviewed by Martin Pepin]
#34379: Travis Scrimshaw: Implement a hook to access free (graded) resolutions [Reviewed by Kwankyu Lee]
#34393: Frédéric Chapoton: add method "tensor_factors" to tensor products [Reviewed by Matthias Koeppe, Travis Scrimshaw]
#34412: Travis Scrimshaw: q-commuting polynomials [Reviewed by Frédéric Chapoton]
#34427: Matthias Koeppe: TensorFreeModule.isomorphism_with_fixed_basis [Reviewed by Eric Gourgoulhon]
#34449: Matthias Koeppe: Add package pyproject_metadata [Reviewed by François Bissey]
#34451: Matthias Koeppe: sage.tensor: Canonicalize sym, antisym [Reviewed by Eric Gourgoulhon]
#34453: Travis Scrimshaw: Tensor products of commutative algebras do not know they are commutative rings [Reviewed by Frédéric Chapoton]
#34466: Lorenz Panny: fix various linter errors [Reviewed by Frédéric Chapoton]
#34467: Lorenz Panny: fix random doctest failure in EllipticCurveHom_velusqrt [Reviewed by Kwankyu Lee]
#34474: Eric Gourgoulhon: Make FiniteRankFreeModule.tensor_module(0, 1) return the dual [Reviewed by Matthias Koeppe]
#34478: Matthias Koeppe: pynormaliz: Add distros information for conda, arch [Reviewed by Isuru Fernando]
#34484: Matthias Koeppe: Methods quotient, quotient_module are not the same for some modules from sage.modules [Reviewed by John Palmieri, Travis Scrimshaw]
#34490: Thierry Monteil: sage --package clean
command to remove outdated source tarballs [Reviewed by David Coudert]
#34491: Matthias Koeppe: Upgrade igraph to 0.9.10 [Reviewed by David Coudert]
#34494: Frédéric Chapoton: better monomials in shuffle algebras [Reviewed by Travis Scrimshaw]
#34495: Matthias Koeppe: Construction for invariant/equivariant submodules [Reviewed by Travis Scrimshaw]
#34498: Matthias Koeppe: Update igraph, python_igraph to 0.10.x [Reviewed by David Coudert]
#34505: Frédéric Chapoton: using items in indexed_elements.pyx [Reviewed by Travis Scrimshaw]
#34509: Matthias Koeppe: Make IndexedFreeModuleElement compatible with collections.abc, change method support to return a SupportView [Reviewed by Travis Scrimshaw]
#34510: Trevor K. Karn: Add to check for fixed total/length in IntegerVector [Reviewed by Travis Scrimshaw]
#34514: David Roe: Incorrect decomposition type for relative number fields [Reviewed by Travis Scrimshaw]
#34519: Marc Mezzarobba: Fix + extend msolve interface [Reviewed by Matthias Koeppe]
#34527: Trevor K. Karn: Make Composition
s into a collections.abc.Sequence
[Reviewed by Travis Scrimshaw, Matthias Köppe]
#34535: Trevor K. Karn: Segfault when floor dividing in infinite polynomial ring [Reviewed by Travis Scrimshaw]
#34541: Frédéric Chapoton: enhance free dendriform algebras [Reviewed by Travis Scrimshaw]
#34561: Jan Groenewald: Documentation: There is no package in debian/ubuntu called openssh [Reviewed by Matthias Koeppe]
#34568: Frédéric Chapoton: rename example to QuaternionicProjectivePlane [Reviewed by John Palmieri]
#21129: Paul Fili, Holly Krieger, Jing Guo: Arakelov-Zhang pairing of rational maps [Reviewed by Alexander Galarraga]
#25046: Lorenz Panny: Add warning for is_prime(n) that produce correct but unexpected output [Reviewed by Kwankyu Lee]
#31664: Matthias Koeppe: Add package msolve 0.4.4 (multivariate polynomial system solver) [Reviewed by Marc Mezzarobba]
#32483: Matthias Koeppe: Remove workarounds for packages that use flit_core or poetry_core as build system [Reviewed by John Palmieri]
#33805: Dima Pasechnik: use Homebrew's primecount [Reviewed by Matthias Koeppe]
#33812: Matthias Koeppe: Refactor distributions sagemath-{objects,categories} through sagemath-{environment,repl} [Reviewed by Kwankyu Lee]
#33850: Sophia Elia: Unstable doctests in equivariant Ehrhart methods [Reviewed by Matthias Koeppe]
#33999: Xavier Caruso: Reduced charpoly for skew polynomials [Reviewed by Travis Scrimshaw, Frédéric Chapoton]
#34110: Matthias Koeppe: numpy 1.23.x [Reviewed by Dima Pasechnik, John Palmieri]
#34212: Jing Guo: log_embedding
for number field elements [Reviewed by Alexander Galarraga]
#34272: Matthias Koeppe: Update pip to 22.2.2 [Reviewed by Kwankyu Lee]
#34314: David Coudert: pycodestyle cleanup in strongly_regular_db.pyx (part 4) [Reviewed by Matthias Koeppe]
#34344: Matthias Koeppe: Update setuptools 63.4.3, setuptools_wheel 65.x, tomlkit 0.11.4, importlib_resources 5.9.0, importlib_metadata 4.12.0, distlib 0.3.6, hatchling 1.10.0, pathspec 0.10.1 [Reviewed by John Palmieri]
#34358: David Coudert: pycodestyle cleanup in src/sage/graphs/generic_graph.py (part 4) [Reviewed by Kwankyu Lee]
#34375: Travis Scrimshaw: Replace sage.algebras.yangian.GeneratorIndexingSet with cartesian_product [Reviewed by Matthias Koeppe]
#34383: Martin Rubey: revert for LazyTaylorSeries and LazySymmetricFunction is missing [Reviewed by Travis Scrimshaw]
#34392: David Coudert: pycodestyle cleanup in src/sage/graphs/generic_graph.py (part 5) [Reviewed by Matthias Koeppe]
#34409: Lorenz Panny: remove experimental warning for composite elliptic-curve isogenies [Reviewed by Kwankyu Lee]
#34413: Martin Rubey: implement derivatives of lazy series [Reviewed by Travis Scrimshaw]
#34422: Martin Rubey: implement functorial composition of lazy symmetric functions [Reviewed by Travis Scrimshaw]
#34423: Martin Rubey: implement arithmetic product of lazy symmetric functions [Reviewed by Travis Scrimshaw]
#34432: Samuel Lelièvre: Upgrade: jupyter-packaging 0.12.3 [Reviewed by Matthias Koeppe]
#34435: Trevor K. Karn: Add method to trim trailing zeros from IntegerVector [Reviewed by Travis Scrimshaw]
#34448: Matthias Koeppe: Put tensor modules of FiniteRankFreeModule in Modules().TensorProducts() [Reviewed by Eric Gourgoulhon]
#34454: Matthias Koeppe: sage --package create: Add option --source wheel [Reviewed by Kwankyu Lee]
#34462: Kwankyu Lee: Uniformize the headline: finite rings [Reviewed by Matthias Koeppe]
#34465: John Palmieri: Invalid escape sequence in special.py [Reviewed by Dima Pasechnik]
#34468: Frédéric Chapoton: fix W605 in all pyx files inside matroids/ [Reviewed by David Coudert]
#34469: Frédéric Chapoton: modern super in matrix_space [Reviewed by Matthias Koeppe]
#34473: Martin Rubey: remove rings from streams [Reviewed by Travis Scrimshaw]
#34477: Dave Morris: one-letter typo in docstring of Sets.ParentMethods.algebra() [Reviewed by Kwankyu Lee]
#34479: Matthias Koeppe, Yuan Zhou: Polyhedron(backend='number_field') [Reviewed by Matthias Koeppe, Travis Scrimshaw]
#34486: Matthias Koeppe: VectorFieldModule: Faster fast path for tensor_module, exterior_power, dual_exterior_power [Reviewed by Eric Gourgoulhon]
#34488: Frédéric Chapoton: sage.misc.weak_dict: Replace iteritems by items [Reviewed by Matthias Koeppe]
#34493: Matthias Koeppe: Make TrivialFamily.map return a TrivialFamily [Reviewed by Travis Scrimshaw]
#34500: Frédéric Chapoton: make some method "gens" return tuples [Reviewed by Lorenz Panny, Travis Scrimshaw]
#34501: Matthias Koeppe: New implementation class VectorFieldDualFreeModule [Reviewed by Eric Gourgoulhon]
#34508: Sebastian Oehms: Improve documentation of JoinFeature [Reviewed by Kwankyu Lee]
#34512: Lorenz Panny: compute list CRT via tree [Reviewed by Kwankyu Lee]
#34520: David Coudert: Remove randomly failing doctest in src/sage/graphs/generators/random.py [Reviewed by Frédéric Chapoton]
#34522: David Ayotte: clean up src/sage/lfunctions/pari.py [Reviewed by Matthias Koeppe]
#34528: Matthias Koeppe, John Palmieri: Installation guide: Improve section on prerequisites/recommendations [Reviewed by John Palmieri, Matthias Koeppe]
#34529: David Coudert: remove deprecated method spring_layout_fast_split from src/sage/graphs/generic_graph_pyx.pyx [Reviewed by David Ayotte]
#34531: Frédéric Chapoton: some details in LS paths crystals [Reviewed by Travis Scrimshaw]
#34532: Frédéric Chapoton: modernize super in manifolds/ [Reviewed by Kwankyu Lee, Eric Gourgoulhon]
#34538: Frédéric Chapoton: some details in argument groups [Reviewed by David Coudert]
#34542: Frédéric Chapoton: refresh the infinite polynomial ring [Reviewed by Travis Scrimshaw]
#34544: Frédéric Chapoton: some minor details in misc [Reviewed by Kwankyu Lee]
#34545: Frédéric Chapoton: cleanup in posets [Reviewed by Travis Scrimshaw]
#34551: Kwankyu Lee: Uniformize headline: graphs and plots [Reviewed by David Coudert]
#34555: Frédéric Chapoton: clean one file about N=2 super-conformal Lie algebra [Reviewed by David Ayotte]
#34557: Kwankyu Lee: Fix a doctest error in quo_rem of polynomials [Reviewed by Matthias Koeppe]
#34558: John Palmieri: Typo in git-trac file of developer's guide [Reviewed by Matthias Koeppe]
#34562: Frédéric Chapoton: refactor multiple zeta values [Reviewed by Travis Scrimshaw]
#34565: Eric Gourgoulhon: Fix wrong link in the documentation of topological submanifolds [Reviewed by Kwankyu Lee]
#34567: Martin Pépin: Fix minor documentation formatting issues in dancing links [Reviewed by Frédéric Chapoton]
#34571: Martin Rubey: fix typo in docstring [Reviewed by Frédéric Chapoton]
#34573: François Bissey: Remove binary_function from ginac's code in sage [Reviewed by Matthias Koeppe]
#34574: Kwankyu Lee: Uniformize headline: functions [Reviewed by Matthias Koeppe]
#34578: Frédéric Chapoton: standard error messages in pbori [Reviewed by David Coudert]
#34584: Frédéric Chapoton: use .Display for gap character tables [Reviewed by Travis Scrimshaw]
#34588: Frédéric Chapoton: fix some E251 in modular [Reviewed by Matthias Koeppe]
#34592: Frédéric Chapoton: fix W605 in libs and rings/semirings [Reviewed by Travis Scrimshaw]
#34595: John Palmieri: Fix findstat internet tests [Reviewed by David Coudert]
#34596: Frédéric Chapoton: fix more W391 [Reviewed by Martin Rubey]
#34601: Frédéric Chapoton: fix W391 in modules, tests and rings [Reviewed by Matthias Koeppe]
#14222: Matthias Koeppe: Coercion/conversion from Cone and other objects to Polyhedron [Reviewed by Jonathan Kliem] #29413: Dima Pasechnik: Meta-ticket: Upgrade cddlib, fix cddlib header search for packages latte_int, gfan, topcom [Reviewed by Matthias Koeppe] #31588: Matthias Koeppe: Update Normaliz to 3.9.x, pynormaliz to 2.17, e-antic to 1.x, add optional package antic [Reviewed by Travis Scrimshaw] #32354: Frédéric Chapoton: Fix integral(1/max_symbolic(x, 1)^2, x, 0, oo, algorithm='giac') [Reviewed by Travis Scrimshaw] #32367: Tejasvi Chebrolu, Martin Rubey, Travis Scrimshaw: Replace Lazy Power Series in species directory [Reviewed by Martin Rubey, Travis Scrimshaw] #32686: Jing Guo: points_of_bounded_height for projective space is incorrect [Reviewed by Alexander Galarraga, Ben Hutz] #32874: Matthias Koeppe: New option "./configure --enable-wheels" [Reviewed by Kwankyu Lee] #33597: Frédéric Chapoton, Kwankyu Lee: Wrong computation of Hilbert polynomials [Reviewed by Kwankyu Lee, Frédéric Chapoton] #33680: Sébastien Labbé: moving repr_fixups list from doctest/parsing.py header to method do_fixup [Reviewed by John Palmieri] #33969: Sebastian Oehms: Implement missing KnotInfo wrappers for polynomial invariants [Reviewed by Matthias Koeppe] #34268: Matthias Koeppe: Reduce R to a dummy package, upgrade rpy2 to 3.4.5 [Reviewed by John Palmieri] #34394: David Coudert: pycodestyle cleanup in src/sage/graphs/generic_graph.py (part 6) [Reviewed by Matthias Koeppe] #34410: Lorenz Panny: make new composite elliptic-curve isogenies the default [Reviewed by Travis Scrimshaw] #34463: Lorenz Panny: make PolynomialQuotientRing_generic inherit from QuotientRing_generic [Reviewed by Marc Mezzarobba] #34470: Martin Rubey: categories of lazy series [Reviewed by Travis Scrimshaw] #34496: Dima Pasechnik: disallow PARI 2.15 from the system, until giac is fixed [Reviewed by Matthias Koeppe] #34552: Martin Rubey: more testsuites for lazy series rings [Reviewed by Travis Scrimshaw, Frédéric Chapoton] #34579: Travis Scrimshaw: Faster iterator for planar set partitions [Reviewed by Frédéric Chapoton] #34585: Frédéric Chapoton: pep8 cleanup in algebras/letterplace pyx files [Reviewed by Travis Scrimshaw] #34594: John Palmieri, Sébastien Labbé: Fix error in sage.misc.latex.view doctest [Reviewed by Sébastien Labbé, John Palmieri] #34599: Lorenz Panny: add helper function to compute all monomials of a given degree [Reviewed by Marc Mezzarobba] #34602: Frédéric Chapoton: add some missing EXAMPLES [Reviewed by Marc Mezzarobba] #34603: Dima Pasechnik: Fix singular spkg-configure [Reviewed by Matthias Koeppe] #34604: Matthias Koeppe: latte_int: Fix up patch [Reviewed by François Bissey, John Palmieri] #34606: Sébastien Labbé: fix doc with respect to a change in behavior for tikz method of polyhedron (since 9.7 -> since 9.8) [Reviewed by Matthias Koeppe] #34607: Sébastien Labbé: 2 doctests failures with external software octave [Reviewed by John Palmieri] #34609: Sébastien Labbé: 5 internet doctests failing in oeis [Reviewed by David Coudert] #34612: Sébastien Labbé: 1 internet doctest failing in graphs/isgci.py [Reviewed by David Coudert] #34613: Frédéric Chapoton: fix some typos [Reviewed by Sébastien Labbé] #34614: Lorenz Panny: add missing EllipticCurveHom methods to √élu isogenies [Reviewed by Travis Scrimshaw, Kwankyu Lee] #34615: Antonio Rojas, François Bissey: Update to sphinx 5.2 [Reviewed by Kwankyu Lee] #34617: Frédéric Chapoton: fix and activate pycodestyle W391 [Reviewed by Matthias Koeppe] #34618: Frédéric Chapoton: use libgap in dual abelian group elements [Reviewed by Travis Scrimshaw] #34619: Frédéric Chapoton: fix some details in doc of charpoly_frobenius [Reviewed by David Coudert] #34620: Frédéric Chapoton: pep cleanup for the file weyl_group.py [Reviewed by David Coudert] #34622: Frédéric Chapoton: partial cleanup in partition.py [Reviewed by Matthias Koeppe] #34623: Matthias Koeppe: Fix broken gitpod [Reviewed by Tobias Diez] #34625: Frédéric Chapoton: Refresh the file free_quadratic_module [Reviewed by Matthias Koeppe, Kwankyu Lee] #34629: Frédéric Chapoton, John Palmieri: Use the kbd role in the doc [Reviewed by Kwankyu Lee] #34632: Marc Mezzarobba: wrappers for acb_poly[rl]gamma_series [Reviewed by Frédéric Chapoton] #34639: Frédéric Chapoton: fix some W605 in pyx files in rings [Reviewed by Travis Scrimshaw] #34640: Frédéric Chapoton: fix some pep8 in words/ [Reviewed by Matthias Koeppe] #34644: Frédéric Chapoton: minor details in schemes [Reviewed by Travis Scrimshaw] #34647: Frédéric Chapoton: some details in permutation groups [Reviewed by Travis Scrimshaw]
#14308: Nils Bruin: unwanted maxima verbose output [Reviewed by Karl-Dieter Crisman, Paul Zimmermann] #31531: Dima Pasechnik: Update topcom to 1.1.2, fix cddlib header search [Reviewed by Matthias Koeppe] #31892: Kwankyu Lee: Conic parametrization broken [Reviewed by Marco Streng] #32035: Alexander Galarraga: Multiplier Spectra for P^N, N > 1 [Reviewed by Ben Hutz] #32182: Samuel Lelièvre, Matthias Koeppe: Dummy packages _python3.8, _python3.9, _python3.10, _python3.11 [Reviewed by Dima Pasechnik] #33816: Matthias Koeppe: Update gcc/gfortran to 12.x + Apple Silicon support, update openblas to 0.3.21, gsl to 2.7.1 [Reviewed by John Palmieri] #34123: Enjeck Cleopatra: Fast initialization for edge connectivity [Reviewed by David Coudert] #34179: David Coudert: handle range of parameters in nauty-genbg interface [Reviewed by Frédéric Chapoton] #34184: Nadia Lafrenière: from_lehmer_cocode [Reviewed by Jessica Striker, Travis Scrimshaw] #34271: Matthias Koeppe: Update python3 to 3.10.8 [Reviewed by Kwankyu Lee] #34395: David Coudert: pycodestyle cleanup in src/sage/graphs/generic_graph.py (part 7) [Reviewed by Kwankyu Lee] #34396: David Coudert: pycodestyle cleanup in src/sage/graphs/generic_graph.py (part 8) [Reviewed by Matthias Koeppe] #34434: Matthias Koeppe: "sage -package update-latest" should read install-requires.txt and handle wheel packages [Reviewed by Kwankyu Lee] #34460: Antonio Rojas, Matthias Koeppe: Update ipywidgets to 8.0.x, widgetsnbextension to 4.0.x [Reviewed by François Bissey, Mauricio Collares, Eric Gourgoulhon] #34523: Matthias Koeppe: Add dummy package github_cli [Reviewed by Dima Pasechnik] #34543: Martin Rubey: fix typo in UniqueFactorizationDomains [Reviewed by Kwankyu Lee] #34566: Dennis Jahn: Moving some references to the master reference file [Reviewed by Frédéric Chapoton] #34572: Matthias Koeppe: GH Actions portability workflows: Use SAGE_FAT_BINARY=yes [Reviewed by Dima Pasechnik] #34576: Martin Rubey: do not create symmetric functions that are equal and different from 0 [Reviewed by Travis Scrimshaw] #34637: Frédéric Chapoton: pep8 and code details for ribbon_tableau [Reviewed by Travis Scrimshaw] #34642: Kwankyu Lee: Add sage_docbuild/ext/ files to doc [Reviewed by Matthias Koeppe] #34643: Frédéric Chapoton: pep8 cleanup for genera/normal_form [Reviewed by Travis Scrimshaw] #34645: Frédéric Chapoton: fix more W605 in rings [Reviewed by Travis Scrimshaw] #34646: Frédéric Chapoton: add svg display hook for plane partitions [Reviewed by Travis Scrimshaw] #34649: Frédéric Chapoton: remove one trace of python2 [Reviewed by Matthias Koeppe] #34653: Martin Rubey: floordiv for sparse polynomials [Reviewed by Travis Scrimshaw] #34656: Kwankyu Lee: Update furo wheel package to the latest 2022.9.29 [Reviewed by Matthias Koeppe] #34657: Kwankyu Lee: Make make doc-clean also remove reference/documentation/sage_docbuild [Reviewed by Matthias Koeppe] #34660: Frédéric Chapoton: fix E502 in modular [Reviewed by Travis Scrimshaw] #34666: Frédéric Chapoton: full pep8 for elliptic_curves/cardinality [Reviewed by Travis Scrimshaw] #34667: Frédéric Chapoton: some details in Brandt modules [Reviewed by Travis Scrimshaw] #34668: Gonzalo Tornaría: Support matplotlib 3.6 [Reviewed by Matthias Koeppe] #34669: Gonzalo Tornaría: Fix a doctest failure due to a small numerical issue on 32 bit maxima-sbcl [Reviewed by Frédéric Chapoton] #34671: Frédéric Chapoton: fix the linter again [Reviewed by Matthias Koeppe] #34672: Frédéric Chapoton: some care for trailing whitespaces [Reviewed by Matthias Koeppe] #34673: Frédéric Chapoton: change iterator for ordered set partitions [Reviewed by Travis Scrimshaw] #34674: Matthias Koeppe: Fix sage.misc.package_dir doctest after #32874 [Reviewed by Antonio Rojas] #34677: Frédéric Chapoton: fix most W2 and W3 in geometry, rings, schemes [Reviewed by Matthias Koeppe] #34680: Matthias Koeppe: igraph, python_igraph: Update to 0.10.2 [Reviewed by David Coudert] #34682: Dima Pasechnik: clean up old gcc < 8 patches [Reviewed by Matthias Koeppe] #34685: Dima Pasechnik: update link to Fukuda's polyhedral FAQ [Reviewed by Matthias Koeppe] #34688: Frédéric Chapoton: fix some details in graphs [Reviewed by David Coudert]
#18917: Frédéric Chapoton: Speed up NumberField.zeta() [Reviewed by David Roe]
#24462: Frédéric Chapoton: Add tests that discriminant() of number fields is Integer [Reviewed by Travis Scrimshaw]
#26084: Matthias Koeppe: Detect default colorscheme (dark/light) [Reviewed by John Palmieri]
#30217: Matthias Koeppe: tox.ini: Add tests with Ubuntu + deadsnakes [Reviewed by Dima Pasechnik]
#30423: Daniel Bump, Guillermo Aboumrad, Galit Anikeeva: F-Matrix Factory [Reviewed by Travis Scrimshaw]
#32267: Matteo Cati: make hadamard_matrix() use all the Hadamard matrices Sage knows [Reviewed by Dima Pasechnik]
#32570: Matthias Koeppe: tox.ini, GH Actions: Update macOS environments to macOS 11, 12 [Reviewed by Dima Pasechnik]
#33176: Michael Orlitzky: Fix a few cython "referenced before assignment" warnings [Reviewed by Markus Wageringel, Marc Mezzarobba]
#33878: Matthias Koeppe: Upgrade cypari2 to 2.1.3 [Reviewed by Dima Pasechnik]
#34081: Matthias Koeppe: Upgrade scipy to 1.9.x, add meson toolchain [Reviewed by Dima Pasechnik]
#34260: Trevor K. Karn: Implement northwest diagrams [Reviewed by Travis Scrimshaw]
#34368: Frédéric Chapoton: implement the F,H,M triangles [Reviewed by Travis Scrimshaw, John Palmieri]
#34381: Travis Scrimshaw: Add infinite q-Pochhammer symbol [Reviewed by Martin Rubey]
#34397: David Coudert: pycodestyle cleanup in src/sage/graphs/generic_graph.py (part 9) [Reviewed by Matthias Koeppe]
#34589: Matthias Koeppe: VectorFieldModule, TensorFieldModule, DiffFormModule: Add methods tensor_product, tensor_power, update category of TensorFieldModule [Reviewed by Eric Gourgoulhon]
#34611: Martin Rubey: fast implementation of exp [Reviewed by Travis Scrimshaw]
#34636: Martin Rubey: make sparsity a decision of the user [Reviewed by Travis Scrimshaw]
#34638: Frédéric Chapoton: refresh the file categories/rings.py [Reviewed by Travis Scrimshaw]
#34651: Johann Birnick: Add multivariate_interpolation
for multivariate polynomial rings [Reviewed by Johannes Schmitt, Lorenz Panny]
#34652: John Palmieri: Import NN directly rather than lazily throughout the Sage library [Reviewed by Matthias Koeppe]
#34654: Xavier Caruso: Pickling frobenius endomorphism is broken [Reviewed by Sébastien Labbé, Kwankyu Lee]
#34662: Dave Morris: sage.combinat.permutation.from_cycles produces wrong result when 'cycles' is a generator [Reviewed by Travis Scrimshaw]
#34665: Matthias Koeppe: openssl spkg-configure.m4: Also require openssl if curl needs to be built [Reviewed by Dima Pasechnik]
#34676: Matthias Koeppe: Upgrade pip 22.3 and various other Python packages [Reviewed by Kwankyu Lee]
#34681: Gonzalo Tornaría: Error with multiplication of points on elliptic curves over Integers(n) [Reviewed by Lorenz Panny]
#34689: Frédéric Chapoton: make Compositions() an additive monoid [Reviewed by Travis Scrimshaw]
#34691: Marc Mezzarobba: companion matrix of constant polynomial has the wrong parent [Reviewed by David Ayotte]
#34692: Antoine Leudière: Frobenius endomorphism creation fail for infinite ring extension [Reviewed by Xavier Caruso, David Ayotte]
#34697: Frédéric Chapoton: minor fixes in doc in pyx files [Reviewed by Travis Scrimshaw]
#34699: Frédéric Chapoton: some details about INPUT and INPUT in the doc [Reviewed by Travis Scrimshaw, David Coudert]
#34702: Frédéric Chapoton: fix deprecated use of PyEval_Call* [Reviewed by Matthias Koeppe]
#34703: Frédéric Chapoton: remove traces of lgtm [Reviewed by Dave Morris]
#34704: Frédéric Chapoton: clean whitespace W293 in py files [Reviewed by Matthias Koeppe]
#34705: Frédéric Chapoton: fix and activate W605 and E306 in pyx files [Reviewed by Matthias Koeppe]
#34707: Travis Scrimshaw: Bug in Clifford algebra multiplication [Reviewed by Frédéric Chapoton]
#34709: Frédéric Chapoton: fix cython warning in blas_dict [Reviewed by David Coudert]
#34710: Kwankyu Lee: Keep object entries in TOC in short form [Reviewed by François Bissey]
#34712: Frédéric Chapoton: partial pep8 cleanup for number_field.py [Reviewed by Matthias Koeppe]
#34713: Matthias Koeppe: Update IPython to 8.6 [Reviewed by Kwankyu Lee]
#34716: Lorenz Panny: fix assertion failure in _discrete_log_pgroup() when group is trivial [Reviewed by Kwankyu Lee]
#34719: Lorenz Panny: move carmichael_lambda() from sage.crypto.util to sage.arith.misc [Reviewed by Matthias Koeppe]
#34723: Lorenz Panny: elliptic_curves/hom_velusqrt.py: random test failure [Reviewed by Frédéric Chapoton]
#34724: Dima Pasechnik: echelonize() on RR matrices should not use "classical" algorithm [Reviewed by Nils Bruin]
#34727: Lorenz Panny: .multiplication_by_m_isogeny() fails for negative m [Reviewed by Frédéric Chapoton]
#34729: Matthias Koeppe: topcom now requires autotools [Reviewed by Dima Pasechnik]
#34730: Kwankyu Lee: Rebase sage_autodoc to sphinx 5.3.0 [Reviewed by Tobias Diez]
#34731: Martin Rubey: math display broken because of missing . [Reviewed by Dave Morris]
#34732: Lorenz Panny: more opportunistic caching of elliptic-curve and point orders [Reviewed by Travis Scrimshaw]
#34733: Dave Morris: polynomial quo_rem gives wrong answer for noncommutative rings [Reviewed by Martin Rubey]
#34735: Frédéric Chapoton: some details in hyperelliptic_padic_field [Reviewed by Lorenz Panny]
#34736: Frédéric Chapoton: cleanup for QQ-curves [Reviewed by Lorenz Panny]
#34737: Frédéric Chapoton: less use of gap.eval in linear code [Reviewed by Kwankyu Lee]
#34739: Frédéric Chapoton: get rid of some usage of "long" python2 type in pyx files [Reviewed by Kwankyu Lee]
#34746: Matthias Koeppe: Upgrade cmake to 3.24.3, increase minimum system cmake version to 3.11 [Reviewed by Dima Pasechnik]
#27652: Martin Rubey: parent of plethysm [Reviewed by Travis Scrimshaw] #29360: Frédéric Chapoton: change_ring() should preserve sparsity of vectors and vector spaces [Reviewed by Travis Scrimshaw] #33562: David Coudert: Bad error message for weighted adjacency matrix [Reviewed by Dima Pasechnik] #33757: Frédéric Chapoton: commutativity test [Reviewed by Travis Scrimshaw] #33941: Lorenz Panny: Implement from_integer and to_integer for all finite fields, extending and replacing fetch_int and integer_representation [Reviewed by Kwankyu Lee] #34569: David Ayotte: Fix some quasimodular forms rings methods for congruence subgroups [Reviewed by Vincent Delecroix] #34593: John Palmieri: Document and manage temporary directories [Reviewed by Matthias Koeppe] #34658: Matthias Koeppe: Update numpy to 1.23.5, scipy 1.9.3, networkx 2.8.8, meson_python 0.11.0 [Reviewed by John Palmieri] #34690: Matteo Cati: implement more constructions for Hadamard matrices, e.g. for size 116 [Reviewed by Dima Pasechnik] #34693: Kwankyu Lee: Further support for matplotlib 3.6 [Reviewed by Matthias Koeppe] #34698: David Ayotte: Fix conversion bug in modular forms rings [Reviewed by Vincent Delecroix] #34714: Marc Mezzarobba: fast path for factoring monomials over number fields [Reviewed by Vincent Delecroix] #34722: Lorenz Panny: some code cleanup in WeierstrassIsomorphism [Reviewed by John Cremona] #34728: Lorenz Panny: change sorting for WeierstrassIsomorphism [Reviewed by John Cremona] #34734: Martin Rubey: Adapt findstat interface to new version of findstat.org [Reviewed by Nadia Lafrenière] #34738: Frédéric Chapoton: tiny details in symbolic min and max [Reviewed by Matthias Koeppe] #34740: David Ayotte: dead hyperlinks in developer manual [Reviewed by Kwankyu Lee] #34741: John Palmieri: OS X 13: filter out dylib warning [Reviewed by Kwankyu Lee] #34745: Frédéric Chapoton: modernize super in algebras/ again [Reviewed by Kwankyu Lee] #34751: Kwankyu Lee: Update sage tutorial [Reviewed by Eric Gourgoulhon] #34753: Frédéric Chapoton: fix all W391 in pyx files [Reviewed by Matthias Koeppe] #34754: Matthias Koeppe: Remove module-level imports from sage.plot [Reviewed by Dima Pasechnik] #34756: Benjamin Hackl: Documentation regarding setting up SageMath's Jupyter kernel in an existing installation points to wrong directory [Reviewed by Matthias Koeppe] #34759: Frédéric Chapoton: some details in filtered simplicial complexes [Reviewed by John Palmieri] #34760: Martin Rubey: latex of empty SkewPartition is broken [Reviewed by Christian Stump] #34761: Matthias Koeppe: Remove src/sage/libs/fes.pyx [Reviewed by John Palmieri] #34762: John Palmieri: Fix random chain complex doctest [Reviewed by Frédéric Chapoton] #34765: Matthias Koeppe: meson: Add spkg-configure.m4 [Reviewed by Dima Pasechnik] #34766: Matthias Koeppe: GH Actions: Update actions [Reviewed by Kwankyu Lee] #34769: Dima Pasechnik: use libgap in simplicial_complex [Reviewed by John Palmieri] #34789: Frédéric Chapoton: fixes in normal_basis [Reviewed by Christoph Sorger] #34792: Eric Gourgoulhon: Slight documentation update for modules built upon a FiniteRankFreeModule [Reviewed by Matthias Koeppe] #34796: Matthias Koeppe: Upgrade matplotlib to 3.6 [Reviewed by Kwankyu Lee]
#32390: Matthias Koeppe: Make "./configure --enable-download-from-upstream-url" the default [Reviewed by Dima Pasechnik] #32841: Michael Orlitzky: zn_poly removal [Reviewed by Dima Pasechnik] #33875: Martin Rubey: an_element for statistics and maps [Reviewed by Nadia Lafrenière] #34444: Miguel Marco: Implement Groebner cover [Reviewed by Travis Scrimshaw, Frédéric Chapoton] #34515: Martin Rubey: factorization of symmetric functions [Reviewed by Travis Scrimshaw] #34582: Miguel Marco: Commutative graded algebras: remove sorting restriction [Reviewed by John Palmieri, Travis Scrimshaw] #34743: Frédéric Chapoton: modernize super in root_systems [Reviewed by Matthias Koeppe] #34755: Frédéric Chapoton: add repr_svg for Dyck words [Reviewed by Travis Scrimshaw] #34770: Dima Pasechnik: fix coercion from libgap's finite fields, use libgap in sage/rings/finite_rings [Reviewed by Matthias Koeppe] #34781: Frédéric Chapoton: fixing the linter, once again [Reviewed by Matthias Koeppe, Lorenz Panny] #34784: Frédéric Chapoton: some care for E275 [Reviewed by Kwankyu Lee] #34785: Frédéric Chapoton: fix and activate W291 in py files [Reviewed by Matthias Koeppe] #34787: Lorenz Panny: streamline .set_order() methods for elliptic curves and points [Reviewed by Kwankyu Lee] #34795: Matthias Koeppe: Upgrade pybind11, docutils and other packages [Reviewed by Dima Pasechnik] #34797: Frédéric Chapoton: some formatting for NOTE:: blocks [Reviewed by David Coudert] #34798: Frédéric Chapoton: less use of type "long" in cython files [Reviewed by Kwankyu Lee] #34799: Martin Rubey: fix order of multiplication in coxeter_groups [Reviewed by Travis Scrimshaw] #34802: Frédéric Chapoton: fix some compilation warnings [Reviewed by Travis Scrimshaw] #34812: Martin Rubey: decompose identity into generators with coxeter3 [Reviewed by Travis Scrimshaw] #34813: Dima Pasechnik: src/doc/en/installation/source.rst gives CRITICAL sphinx warnings [Reviewed by John Palmieri] #34815: Frédéric Chapoton: pep cleanup in parallel/ [Reviewed by Matthias Koeppe] #34819: Lucas Fiegl: Numerical separators behave inconsistently [Reviewed by Marc Mezzarobba] #34823: Dima Pasechnik: deprecate is_GapElement [Reviewed by Matthias Koeppe] #34825: Kwankyu Lee: Uniformize headline: noncommutative polynomials [Reviewed by Matthias Koeppe] #34835: Matthias Koeppe: openblas: Remove python from dependencies [Reviewed by Dima Pasechnik]
#8744: Bruno Edwards, David Coudert: Improve add_edge in BipartiteGraph to make it independent from the current coloring [Reviewed by David Coudert] #16522: Nils Bruin, Matthias Koeppe: lazy_import doesn't resolve properly when indirectly imported [Reviewed by Matthias Koeppe, Nils Bruin] #21003: Matthias Koeppe, Moritz Firsching, Martin Rubey: Add package pyscipopt, add MIP backend [Reviewed by Moritz Firsching, Vincent Delecroix, David Coudert, Matthias Koeppe] #22067: Daniel Krenn: generating function of integral points of polyhedra [Reviewed by Matthias Koeppe] #31329: Matthias Koeppe: Update scipoptsuite to 8.0.2 (now open source!), rename to scip [Reviewed by Dima Pasechnik] #31668: Matthias Koeppe: Run TestSuite on polynomial rings [Reviewed by Vincent Delecroix, Travis Scrimshaw] #32826: Lorenz Panny: scalar-multiplication endomorphisms of elliptic curves [Reviewed by John Cremona] #33842: Gonzalo Tornaría, Matthias Koeppe, Andrey Belgorodski: Upgrade python to 3.11 [Reviewed by Matthias Koeppe, Dima Pasechnik] #33907: Gonzalo Tornaría: interfaces/expect.py random test failure [Reviewed by Matthias Koeppe] #33915: Lorenz Panny, Mickaël Montessinos: inseparable elliptic-curve isogenies [Reviewed by John Cremona] #34416: John Palmieri: Manage pexpect logs created during doctesting [Reviewed by Matthias Koeppe] #34547: John Palmieri: Interfaces: use more lazy imports, restore top-level functions maxima_console etc. [Reviewed by Matthias Koeppe] #34648: Matthias Koeppe, Kwankyu Lee: Developer's guide: warn the transition to GitHub and add links to the transition guide [Reviewed by Kwankyu Lee, Matthias Koeppe] #34694: Trevor K. Karn: Bug in ExteriorAlgebra interior product [Reviewed by Travis Scrimshaw] #34717: Matthias Koeppe: Check the presence of lrsnash for obtain_nash() [Reviewed by Kwankyu Lee] #34726: Matthias Koeppe: Optional package papilo (dependency of scip) [Reviewed by Dima Pasechnik] #34742: Matthias Koeppe: Optional package soplex (dependency of scip) [Reviewed by Dima Pasechnik] #34749: Matthias Koeppe: Packages dsdp, scip_sdp [Reviewed by Dima Pasechnik] #34783: Frédéric Chapoton: various details in combinat/ [Reviewed by Matthias Koeppe] #34793: Frédéric Chapoton: clean 3 files inside modular [Reviewed by David Coudert] #34804: Matthias Koeppe, Dima Pasechnik: Deprecate sage.interfaces is_...Element functions [Reviewed by Dima Pasechnik] #34807: Matteo Cati: Add Construction of Hadamard matrices up to order 664 [Reviewed by Dima Pasechnik] #34818: Miguel Marco: Error when defining differentials over GCA's with relations. [Reviewed by Travis Scrimshaw] #34824: Martin Rubey: do not include parent in hash of parking functions [Reviewed by Travis Scrimshaw] #34836: Frédéric Chapoton: fix E271 and E272 in rings/ and schemes/ [Reviewed by Matthias Koeppe] #34837: Frédéric Chapoton: fix E502 in some pyx files [Reviewed by Matthias Koeppe] #34838: Matthias Koeppe: setuptools_scm, contourpy, sphinxcontrib_websupport, typing_extensions: Add missing dependencies [Reviewed by Dima Pasechnik, John Palmieri] #34839: Matthias Koeppe, Frédéric Chapoton: Support tox 4 [Reviewed by Frédéric Chapoton, Matthias Koeppe] #34843: Frédéric Chapoton: pep8 cleanup in ore_polynomial_element.pyx [Reviewed by David Coudert] #34844: Frédéric Chapoton: removal of some unused imports about string conversion [Reviewed by Travis Scrimshaw] #34847: Frédéric Chapoton: modernize some for loops in cython files [Reviewed by David Coudert] #34853: Matthias Koeppe: sage-env: Fix misconfiguration of pip [Reviewed by Dima Pasechnik] #34854: Dima Pasechnik: molien_series() should not use GAP's VirtualCharacter [Reviewed by Travis Scrimshaw] #34857: Matthias Koeppe: bump giac's GIAC_MIN_VERSION to 1.9 [Reviewed by Dima Pasechnik] #34859: Matthias Koeppe: sagelib: Remove unnecessary import of typing_extensions [Reviewed by John Palmieri] #34878: Matthias Koeppe, Martin Rubey: MixedIntegerLinearProgram.add_constraint: Option to return row indices, fix handling of empty constraints [Reviewed by Martin Rubey, Matthias Koeppe] #34881: Martin Rubey: allow to remove no constraints [Reviewed by Matthias Koeppe] #34889: Matthias Koeppe: Installation guide: On WSL, clear /mnt/c stuff from PATH [Reviewed by Dima Pasechnik] #34891: Frédéric Chapoton: fixing some E502 in tensor, dynamics, modules, plot, numerical [Reviewed by Matthias Koeppe]
#8598: Bruno Edwards: Add graphical output to operation tables [Reviewed by Dima Pasechnik] #33201: Michael Orlitzky: Fix "referenced before assignment" warnings in matrices [Reviewed by Dima Pasechnik] #34447: David Coudert: Make EdgesView accept two sets of vertices [Reviewed by Travis Scrimshaw] #34537: Bill Allombert, Vincent Delecroix, Antonio Rojas: Upgrade to pari 2.15.2 [Reviewed by Dima Pasechnik, John Cremona] #34581: Trevor K. Karn: Implement substitution in InfinitePolynomialRing [Reviewed by Tomer Bauer, Travis Scrimshaw] #34635: Travis Scrimshaw: Add tensor_factors() method to TensorProductOfHighestWeightModules in quantum_group_gap [Reviewed by Matthias Koeppe] #34771: Dima Pasechnik: switch to libgap in sage/coding [Reviewed by Vincent Delecroix, Matthias Koeppe] #34791: Lorenz Panny: move ProductTree and prod_with_derivative() to sage.rings.generic [Reviewed by Kwankyu Lee] #34809: Matheus Maldonado: Vizing edge coloring optimization [Reviewed by David Coudert] #34811: Lorenz Panny: rational maps for WeierstrassIsomorphism should not be polynomials [Reviewed by Travis Scrimshaw] #34827: Shriya M, Amritanshu Prasad: Adding some new functionality to the Vector Partition Module [Reviewed by Julian Rüth] #34841: Martin Rubey: adapt findstat doctests to new newlines [Reviewed by Travis Scrimshaw] #34849: Matthias Koeppe: More fixes to support tox 4 [Reviewed by Dima Pasechnik] #34858: Matthias Koeppe: Fix sagemath-standard sdist [Reviewed by François Bissey] #34860: Kwankyu Lee: Uniformize headline: number theory [Reviewed by Matthias Koeppe] #34863: Lorenz Panny: construct QuadraticForm and BinaryQF objects from polynomial [Reviewed by Matthias Koeppe] #34870: Martin Albrecht: FPLLL 5.4.4 and FPyLLL 0.5.9 [Reviewed by Matthias Koeppe, Dima Pasechnik] #34892: Frédéric Chapoton: Fixing the linter (again) [Reviewed by Matthias Koeppe] #34893: Frédéric Chapoton: fix and activate pycodestyle E211 [Reviewed by Martin Rubey] #34895: Frédéric Chapoton: fix E714 in pyx files outside of matrix/ [Reviewed by David Coudert] #34898: Frédéric Chapoton: some details about min and max [Reviewed by Travis Scrimshaw] #34903: Matthias Koeppe: tox.ini / GH Actions: Update Linux platforms [Reviewed by Dima Pasechnik] #34904: Dima Pasechnik: tikz output should be 1 paragraph, to keep sagetex happy [Reviewed by Sébastien Labbé] #34905: Travis Scrimshaw: Improvements to vector of a quantum group module [Reviewed by Matthias Koeppe] #34906: Lorenz Panny: use NTL's MinPolyMod() [Reviewed by Frédéric Chapoton] #34909: Sébastien Labbé, Matthias Koeppe: create an optional package for kissat SAT solver [Reviewed by Matthias Koeppe, Sébastien Labbé] #34910: Frédéric Chapoton: autopep8 for E3 in combinat/ [Reviewed by Matthias Koeppe] #34911: Sébastien Labbé: Adding class Kissat in sage/sat/solvers/dimacs.py [Reviewed by Andrey Belgorodski] #34919: Frédéric Chapoton: fix E266 in modular [Reviewed by Matthias Koeppe] #34921: Frédéric Chapoton: fix E714 in pyx files inside matrix/ [Reviewed by Martin Rubey] #34922: Frédéric Chapoton: less usage of python2 long type in padics [Reviewed by Sebastian Oehms]
#34873: Kwankyu Lee: Deprecate sage.homology.graded_resolution.GradedFreeResolution [Reviewed by Travis Scrimshaw] #34935: John Palmieri: Followup to #34547: fix emacs sage-shell-mode [Reviewed by Matthias Koeppe] #34942: Matthias Koeppe: GH Actions: Remove pull_request triggers for portability workflows [Reviewed by Tobias Diez]
The following 83 people contributed to this release. Of those, 12 made their first contribution to Sage:
Release manager: Volker Braun.
SageMath version 9.7 (released Sep 19, 2022)
SageMath 9.6 (released May 16, 2022)
SageMath version 9.5 (released Jan 30, 2022)
SageMath 9.4 (released Aug 22, 2021)
SageMath 9.3 (released May 9, 2021)