10.3
SageMath version 10.3 (released Mar 19, 2024)
Release Notes
- adds initial support for Python 3.12
- JupyterLab, Notebook 7, major package upgrades
- major new developer tools
What's Changed
- clean E702 etc in integer.pyx by @fchapoton in #36653
sage.misc.explain_pickle
: Docstring cosmetics by @mkoeppe in #36655- ruff auto-fix for C4 in modular by @fchapoton in #36664
- Laurent polynomials, Fitting ideals and characteristic varieties by @enriqueartal in #36368
- check coprimality of moduli in CRT_basis() by @yyyyx4 in #36457
- Functions for nice tree decomposition and its labelling by @guojing0 in #36504
sage --tox -e coverage.py
by @mkoeppe in #36505pkgs/sage-{docbuild,setup,sws2rst}
: Migrate fromsetup.cfg
topyproject.toml
by @mkoeppe in #36562- Replace relative imports by absolute ones in categories by @tobiasdiez in #36572
- rename the backtrack algorithm of method
longest_path
with deprecation by @dcoudert in #36574 - implemented power of graph function under basic methods by @saatvikraoIITGN in #36584
- Replace relative imports by absolute ones in rings by @tobiasdiez in #36588
- Replace relative imports by absolute ones in a few packages by @tobiasdiez in #36589
- Add pull_from_function_field to curves by @kwankyu in #36592
- Replace relative imports by absolute ones in modules by @tobiasdiez in #36597
- cylint cleanup in combinatorial polyhedra by @fchapoton in #36623
- Allow to specify output directory for generated interpreters by @tobiasdiez in #36630
- sums of elliptic-curve morphisms by @yyyyx4 in #36637
- return Weierstrass scaling factor in base field for EllipticCurveIsogeny by @yyyyx4 in #36638
sage.algebras
: Update# needs
, modularization fixes, doctest cosmetics by @mkoeppe in #36642sage.combinat.species
: Update# needs
by @mkoeppe in #36643sage.combinat.words
: Update# needs
by @mkoeppe in #36644- More fixes for e221 by @fchapoton in #36654
sage.tests
: Update# needs
by @mkoeppe in #36657sage.sat
: Update# needs
by @mkoeppe in #36658- fix documentation and random doctest failure for Cornacchia algorithm by @yyyyx4 in #35486
- test whether point is actually on the curve when evaluating elliptic-curve isomorphism by @yyyyx4 in #35799
- Bliss spkg config by @dimpase in #35830
- FriCAS spkg-configure and Feature by @dimpase in #35838
- upgrade to flint3 by @mezzarobba in #35848
- generalize EllipticCurve_field.division_field() to composite orders by @yyyyx4 in #35936
- Cythonize
LatticePolytope.normal_form(algorithm='palp_native')
, change to default, add as aPolyhedron
method by @mkoeppe in #36031 - Notebook 7, ipykernel 6.27, ipython 8.17 by @mkoeppe in #36129
sage -fixdistributions
by @mkoeppe in #36135- add class groups of binary quadratic forms by @yyyyx4 in #36184
- establish interface for instantiated classical modular polynomials by @yyyyx4 in #36190
- src/sage/doctest/control.py: double the default test timeout by @orlitzky in #36223
- refresh the file plural.pyx by @fchapoton in #36683
- less use of _an_element_impl by @fchapoton in #36689
- Implement twisted homology of simplicial sets. by @miguelmarco in #36691
- Dark Mode Compatibility: Improved Crystals Visibility by @cherry-1729-9090 in #36695
- CI Linux incremental: Set max_parallel = 8, reduce standard-sitepackages platforms by @mkoeppe in #36697
- some details in combinations by @fchapoton in #36701
- make modform rings for triangle groups use Algebras by @fchapoton in #36703
- convert Tate algebra to use Parent and category by @fchapoton in #36704
- add method to compute the length of a tree-decomposition by @dcoudert in #36705
- get rid of coerce_try by @fchapoton in #36709
- Deploy live doc preview with pdf docs by @kwankyu in #36714
- build/bin/sage-logger [V=0]: Show more lines of the log of failing builds by @mkoeppe in #36715
- Free space and repeatability for the Docker Hub workflow by @soehms in #36716
- Adding cellular bases for the SymmetricGroupAlgebra over general fields by @tscrim in #36718
- Compute dimensions of simple symmetric group modules over positive characteristic by @tscrim in #36724
- cython-lint for graphs/ by @fchapoton in #36728
- build/pkgs/pari: require pari-2.5.14, drop tests for patched v2.5.13 by @orlitzky in #36732
meson_python
0.15 by @mkoeppe in #36733- avoid importing
DiGraph
fromsage.graphs.graph
by @dcoudert in #36736 build/bin/sage-spkg
: Add options for checking, cleaning separately from build/install by @mkoeppe in #36738- ⬆️ Bump actions/github-script from 6.4.0 to 7.0.1 by @dependabot in #36739
- Plant anchors for hunks to create links in doc preview changes by @kwankyu in #36742
- Normal Python packages: postpone wheel installation to the post-install phase by @mkoeppe in #36743
- pep8 for maxima-lib interface by @fchapoton in #36744
- pep8 for axiom and sympy interfaces by @fchapoton in #36745
- pep8 in various interfaces by @fchapoton in #36746
pkgs/sagemath-{bliss,coxeter3,...}
: Move metadata fromsetup.cfg
topyproject.toml
by @mkoeppe in #36564sage.libs.pari
,sage.rings.real_mpfr
: Modularization fixes by @mkoeppe in #36645sage.interfaces
: Update# needs
by @mkoeppe in #36656- implement Bröker's algorithm for constructing supersingular curves by @yyyyx4 in #36665
- Replace relative imports by absolute ones in
sage.{algebras,arith,categories,cpython,data_structures,misc,modular,rings,sat,symbolic}
by @mkoeppe in #36666 - capitals to Hopf, Lie, Coxeter by appropriate mechanism by @fchapoton in #36673
- symengine and symengine_py 0.11 by @dimpase in #36677
src/doc
: Update# needs
by @mkoeppe in #36679src/sage/graphs
: some care with# optional
by @dcoudert in #36682- get rid of some ParentWithGens in real and complex fields by @fchapoton in #36684
.ci/merge-fixes.sh
: Obtain patches via URL, make customizable by repository variable by @mkoeppe in #36686- Codestyle improvements (mostly sort imports) by @mkoeppe in #36687
- use less _element_constructor by @fchapoton in #36700
- Python toolchain as wheel packages by @mkoeppe in #36802
- Corrected the typo in documentation - Permutation Groups by @SpaceCoder93 in #36818
- Fix linter failure in 10.3.beta0 by @mkoeppe in #36822
ipython
8.18 and related upgrades, removebackcall
by @mkoeppe in #36823- README.md: Update section on macOS arm64 by @mkoeppe in #36828
- update qepcad to B 1.74 by @dimpase in #36837
- various details in group (ruff and pycodestyle) by @fchapoton in #36851
failing doctest on Apple M1
: corrected the test case by sorting the result by @amanmoon in #36852- various details in algebras (ruff mostly) by @fchapoton in #36853
- various details in categories (ruff C4 and UP02) by @fchapoton in #36854
- some ruff details in modular (unicode) by @fchapoton in #36855
- various details in modules folder (ruff, cython-lint, roles) by @fchapoton in #36856
- src/sage/libs/pari/convert_sage_matrix.pyx: Remove
sage_setup: distribution
by @mkoeppe in #36859 - Fix one doctest for giac 1.9.0-73 by @tornaria in #36862
- Use GNU make tokenpool protocol to manage parallelism of doctesting by @mkoeppe in #36640
- rectify docs around Tkinter by @dimpase in #36719
build/bin/sage-spkg
: Add support for installing script packages by @mkoeppe in #36747- Choice of the name of primitive elements for subfields of QQbar by @enriqueartal in #36749
numpy
1.26.2,scipy
1.11.4 by @mkoeppe in #36752- Relativize more header imports by @tobiasdiez in #36754
- Details in interfaces by @fchapoton in #36758
- Improve performance of getitem of CFiniteSequence by @ryuhei-mori in #36764
- Update to new conway-polynomials python package by @orlitzky in #36765
- Reduce execution time of conda workflow by @tobiasdiez in #36767
- Do not fail when
java
is available butjmol
is not. by @tornaria in #36769 - Remove Cygwin distro support by @orlitzky in #36778
build/pkgs/cython
: Update to 3.0.6 by @mkoeppe in #36785sage --package create --pypi
: Create a wheel package by default if possible by @mkoeppe in #36794- Create index-pdf.html in html build by @kwankyu in #36799
- made changes to the documentaiton of developer in python3 print by @amanmoon in #36812
- Add badges to README.md by @kwankyu in #36815
- CVXpy 1.4.1, SCS 3.2.3, osqp_python 0.6.3, CVXOPT 1.3.2, CyLP 0.92.2, add
clarabel
solver by @mkoeppe in #36439 - fix qepcad doctest by @dimpase in #36895
src/sage/interfaces/{gap,kenzo,scilab}
: fix doctests warnings by @dcoudert in #36896- Fix build of optional Cython modules broken in #29386 by @mkoeppe in #36900
- CI conda: Ignore baseline test failures by @mkoeppe in #36678
- Switch sage-conf to modern editable install by @mkoeppe in #36751
build/pkgs/nauty
: Update to 2.8.8; use VERSION in allupstream_url
s. by @mkoeppe in #36774- Remove the pycygwin package by @orlitzky in #36779
libbraiding
: Actually update to version 1.2 by @mkoeppe in #36781- Improve the headings of the databases section of the reference manual by @kwankyu in #36791
- Use the system GAP by @orlitzky in #36792
- Fast cardinality method for IntegerVectorsModPermutationGroup by @jukkakohonen in #36814
- improved integer vectors efficiency -Enhancement by @amanmoon in #36830
sage --tox
,sage --pytest
: Stop fallthrough whentox
,pytest
are not installed (yet) by @mkoeppe in #36836- Remove most
spkg-legacy-uninstall
scripts by @mkoeppe in #36839 - Resolve nice tree decomp bug in #36843, and allow
label_nice_tree_decomposition
to return a digraph by @guojing0 in #36846 - Symengine 0.11.2 by @dimpase in #36847
- Problem with orientations of simplices in simplicial complex maps. by @jhpalmieri in #36849
sage.groups
,sage.rings.number_field
: Modularization fixes,# needs
by @mkoeppe in #36865- doc: update pip installation instructions by @cybaj in #36866
- Fix a bug for .ci/create-changes-html.sh by @kwankyu in #36871
- add is_trivial method for groups by @mantepse in #36873
- various details fixed in coding (ruff, pep8, links in the doc) by @fchapoton in #36880
src/sage/modular/arithgroup/farey.cpp
: Fix#include
forfarey_symbol.h
by @mkoeppe in #36883- Fix failure of doc preview changes when an html is removed by @kwankyu in #36888
- pep8 cleanup for gap interface by @fchapoton in #36890
- Adjust the sync label bot to reflect recent GitHub CLI changes by @soehms in #36894
- some ruff fixes and error links in the graphs folder by @fchapoton in #36899
sage.sets.family
: Cythonize; changeMIPVariable
to a subclass ofFiniteFamily
by @mkoeppe in #35121- some ruff fixes (UP034 and UP039 codes) and error links in categories by @fchapoton in #36897
src/sage/libs/coxeter3/
: fix doctest warnings by @dcoudert in #36902src/sage/game_theory/
: fix doctest warnings due to modularization by @dcoudert in #36904- fix precision issue for 𝑗=0 and ℓ=3 in compute_isogeny_stark() by @yyyyx4 in #36909
- System package quoting fixes by @mkoeppe in #36910
- src/doc/bootstrap: Parallelize generation of SPKG.rst files by @mkoeppe in #36911
sage.combinat
: Update# needs
by @mkoeppe in #36916- refresh the doc about coercion and test the given example by @fchapoton in #36919
- add interface to nauty's genktreeg by @dcoudert in #36924
- src/sage/calculus/ode.pyx: constness fix for clang 16 by @mkoeppe in #36925
- conda: Pin compilers until #36840 is fixed by @mkoeppe in #36926
build/pkgs/normaliz
: Add patch for FLINT 3 by @mkoeppe in #36930- details fixed in cfinite_sequence.py by @fchapoton in #36934
- src/sage/tests/gap_packages.py: Normalize package names in doctest by @mkoeppe in #36935
- some details in multi_polynomial base by @fchapoton in #36943
build/pkgs/gnumake_tokenpool
: Update to fixAlarmInterrupt
problems by @mkoeppe in #36948sage.plot
: Update# needs
, doctest cosmetics; fixsig_on_count
doctest dataflow warnings by @mkoeppe in #36950- build/pkgs/ninja_build: support samurai version scheme by @orlitzky in #36955
networkx
3.2.1,igraph
0.10.8,python_igraph
0.11.3 by @mkoeppe in #36750- CM elliptic curves missing isogenies by @JohnCremona in #36786
- Combinat/sga murphy basis by @tscrim in #36790
- fixed warning while calling OEISSequence.is_dead() function by @amanmoon in #36811
- Give more precise answer on symbolic power of a matrix by @RuchitJagodara in #36845
- Use lualatex for better unicode support by @kwankyu in #36861
- some ruff auto-fixes in schemes + error links in doc by @fchapoton in #36870
- ruff and pep E275 fixes in misc by @fchapoton in #36874
- update eclib to version 20231212 by @JohnCremona in #36879
- fixing one bug in the use of valuation by @fchapoton in #36882
- Method braid of class Link loops when the Link contains loops by @soehms in #36884
- Switch more Python toolchain packages to use (platform-independent) wheels by @mkoeppe in #36885
- ruff auto-fixing several details in combinat folder by @fchapoton in #36898
build/pkgs/e_antic
: Update to 2.0.0 by @mkoeppe in #36901- ruff UP details and links to errors in doc in geometry folder by @fchapoton in #36903
src/sage/{categories,coding,plot,quadratic_forms}/
: Fix various doctest warnings by @dcoudert in #36905- various fixes in quadratic_forms (ruff, pep8, error links, etc) by @fchapoton in #36906
- adding corolla-related methods to free pre-Lie algebras by @fchapoton in #36913
sage.rings
: Modularization fixes by @mkoeppe in #36917- add macports environment to tox.ini by @dimpase in #35667
sage.arith.misc
: fixes error in binomial for p-adic numbers with negative valuation by @knospe in #35823- Implementation of representations of Lie algebras by @tscrim in #36169
- Fixed grammatical errors at multiple points in English documentation by @MedantSharan in #36229
- Make sure the type detection for reducible Cartan types is correct by @tscrim in #36346
- Add a lift method to LieGenerator by @ehaka in #36487
- Improve code style for matrix2.pyx file by @RuchitJagodara in #36877
- polymake 4.11 by @mkoeppe in #36878
- more libgap in permutation groups ; get rid of libgap_init by @fchapoton in #36889
- get rid of one ParentWithGens by @fchapoton in #36893
- various details in normaliz backend interface by @fchapoton in #36921
- using less isinstance(..., Ring) by @fchapoton in #36922
- More conversion to parent by @fchapoton in #36933
src/sage/doctest/forker.py
: Show '# [failed in baseline]' earlier by @mkoeppe in #36936- new method "fraction" in integer-valued polynomials by @fchapoton in #36940
sage -package download
: Fix argparse for--no-check-certificate
by @mkoeppe in #36947- tox.ini: Update voidlinux, update installation guide by @mkoeppe in #36957
.devcontainer/downstream-archlinux-latest
: Fix maxima by @mkoeppe in #36959- Add is_(sparse_)paving() and automorphism_group() by @gmou3 in #36962
- some care for pep8 code E241 in some pyx files by @fchapoton in #36963
- fixing some details in graphs/ (pep E275; ruff UP024, etc) by @fchapoton in #36967
- fix alignment in documentation (ruff D207 and D208) by @fchapoton in #36968
- Fix doctests in
src/sage/databases/oeis.py
by @dcoudert in #36976 sage --package metrics
: New tool to assist discussions of the Sage distribution by @mkoeppe in #36977- Fix
sage-get-system-packages install-requires
after #29665 by @mkoeppe in #36979 - ModulesWithBasis.ParentMethods.cardinality() for 0 dimensional modules by @tscrim in #36985
- Use conda-lock for reproducible conda env by @tobiasdiez in #35986
gmp
6.3.0,mpc
1.3.1,mpfr
4.2.1,mpfrcx
0.6.3,gmpy2
2.2.0a1 by @mkoeppe in #36351- Autogenerate flint headers by @videlec in #36449
- implement .interpolation() method for ProductTree by @yyyyx4 in #36456
- Test that everything can be imported during ci by @tobiasdiez in #36591
- enhancements in infinite polynomial rings by @fchapoton in #36651
- allow passing a generating set (not necessarily a basis) for quaternion ideals by @yyyyx4 in #36759
- print more information about number-field orders by @yyyyx4 in #36760
- Skip backport packages for newer python by @orlitzky in #36776
- Make "large multiplication" larger in coerce_actions.pyx by @jhpalmieri in #36789
- rename 'divided difference operator' by @jacksonwalters in #36796
- add generic has_order() function by @yyyyx4 in #36806
- CI Linux incremental:
make reconfigure
after uninstalling packages by @mkoeppe in #36829 - Change default domain of SR.var() by @RuchitJagodara in #36841
- use unicode characters to display tables by @fchapoton in #36857
- Remove
spkg-src
scripts for packages with real upstream url by @mkoeppe in #36918 build/pkgs/cython
: Update to 3.0.7 by @mkoeppe in #36928- Add minimal_normal_subgroups and maximal_normal_subgroups functions by @RuchitJagodara in #37038
- src/sage/matrix/matrix_double_dense.pyx: increase an FP tolerance by @orlitzky in #37043
- update ECL to 23.9.9, remove obsolete stuff from spkg-install by @dimpase in #37044
- ⬆️ Bump tj-actions/changed-files from 38 to 41 in /.github/workflows by @dependabot in #37048
- Add reverse Cuthill-McKee ordering for graphs by @dcoudert in #37053
- clean singular interface (full pep8) + use standard open and zip by @fchapoton in #37062
- some little changes in polynomials (ruff PERF) by @fchapoton in #37063
- Fix build when linbox is build with fplll support by @antonio-rojas in #37064
- Use Parent in number fields and QQ by @fchapoton in #37069
- use directly OSError everywhere by @fchapoton in #37070
- some cleanup in overconvergent and quaternion by @fchapoton in #37072
- implement natural morphism from cl(f²D) to cl(D) by @yyyyx4 in #37074
- use parent in weyl_algebra.py by @fchapoton in #37078
- use Parent in Monsky-Washnitzer by @fchapoton in #37079
- convenience method to construct elliptic-curve isomorphisms from u,r,s,t by @yyyyx4 in #37081
- Fix NumberFieldElement_quadratic.is_integral() when D is not square-free by @pjbruin in #37082
- remove entirely the legacy class EuclideanDomain by @fchapoton in #37085
- Fix bug with pari interface in
classical_modular_polynomial
by @drago-96 in #37094 - Fixed
.random_element()
for fractional ideals in rational quaternion algebras by @S17A05 in #37098 - Added
.is_isomorphic
for rational quaternion algebras by @S17A05 in #37107 - Add Brettell's matroids and reorganize database by @gmou3 in #36842
- Fix coercion problem with Algebraic Real Field by @RuchitJagodara in #36942
- add a specialized parent object for elliptic-curve morphisms by @yyyyx4 in #36972
- Fixed a bug in
AbelianGroup.Subgroup.gens_orders()
, which returns the reduced order of the subgroup by @amanmoon in #36986 - Doing some cleanup on Littelmann paths by @tscrim in #36987
- OS-dependent doctest tags
# known bug: macos
,# known bug: linux
by @mkoeppe in #36989 - Fixed doc_test in
database.findstat
by adding new collection by @amanmoon in #36991 - Use PARI when computing the Tate pairing by @GiacomoPope in #36994
- Implement absolute length fix by @thecaligarmo in #37001
- Fixes in save_session() by @tornaria in #37004
- Implement the Aomoto complex of the Orlik-Solomon algebra and Hilbert series for filtered modules by @tscrim in #37015
- typo fix by @dimpase in #37016
- cosmetic little change in topology/ (some ruff UP and PERF) by @fchapoton in #37017
sage --package properties
by @mkoeppe in #37018configure
: Fix quoting in system package notice by @mkoeppe in #37020- Parent in plural by @fchapoton in #37023
- Access database and other files through features, for simpler configuration by @tornaria in #37024
- add method to compute the longest (induced) cycle in a (di)graph by @dcoudert in #37028
- Small update to Developer Guide section on portability testing by @mkoeppe in #37030
- raise ValueError instead of IndexError in .any_root() by @yyyyx4 in #37034
- some details in Galois group as permutation group by @fchapoton in #37039
- Added third embedding in Cubegraph for oblique projection of hypercubes by @amanmoon in #37045
- Dont load all GAP packages when resetting a workspace by @orlitzky in #37049
- ideals of non-maximal orders in number fields by @yyyyx4 in #35762
- Implement integration and Taylor series for lazy series by @tscrim in #36233
- add Pari file to L-function documentation by @fchapoton in #37166
- fixed bug in
is_linearly_dependent()
, returns true for linearly dependent univariate polynomial. by @amanmoon in #37174 - search for a pair of pre- and post-isomorphism instead of just a post-isomorphism when computing dual isogeny by @yyyyx4 in #37175
sage.categories.schemes
: Fix modularization regression by @mkoeppe in #37179- Fix subtour elimination constraints in
longest_cycle
by @dcoudert in #37181 - implement E_polynomial of hypergeometric motive by @fchapoton in #37187
- add lfunction to hypergeometric motives by @fchapoton in #37190
- Fix typo in pycore_long.h for Python <= 3.8. by @J08nY in #37194
- Fix univariate polynomial reverse by @vneiger in #37201
- catch possible failure in random doctest when dimension of an ideal is 1 instead of 0 by @yyyyx4 in #37202
- Fix kernel basis computation for polynomial matrix in corner case by @vneiger in #37208
- change verbosity in matrix2 by @fchapoton in #37211
- Fix names of Gentoo packages by @saraedum in #37212
- fix a wrong reference in installation manual by @6mingkun in #37213
build/pkgs/numpy
: Update to 1.26.3 by @mkoeppe in #37000- Return a vector of monomial instead of a matrix in PolynomialSequence.coefficient_matrix() by @RuchitJagodara in #37035
- Installation guide: Show system package commands using sphinx-inline-tabs by @mkoeppe in #37056
- src/sage/tests/gap_packages.py: remove by @orlitzky in #37076
- use parent in Ore polynomials by @fchapoton in #37087
- Remove deprecated methods from QuaternionFractionalIdeal_rational by @pjbruin in #37088
- use Parent in universal cyclotomic field by @fchapoton in #37091
- Adding methods .x() and .y() for EllipticCurvePoint by @r98inver in #37092
- fix random doctest failure in generic has_order() function by @yyyyx4 in #37102
- do not use xargs -P 0 - not all systems allow 0 by @dimpase in #37104
- minor details in asymptotic ring by @fchapoton in #37105
- Additive identity of EllipticCurve should always be minimum by @grhkm21 in #37106
- Add test if quaternion order is maximal by @syndrakon in #37111
- Tests to see if ideal in quaternion algebra is primitive (cyclic) by @giacomoborin in #37112
- Remove check for deprecated attribute _no_generic_basering_coercion by @pjbruin in #37115
- Compatibility with scipy 1.12 by @antonio-rojas in #37123
- compute isogeny kernel polynomials from irreducible divisors or (possibly irrational) points by @yyyyx4 in #37125
- Fix
lift_x()
for characteristic 2 and addis_x_coord()
to hyperelliptic curves by @GiacomoPope in #37126 - Fix corners cases of free resolutions by @kwankyu in #37132
- use Parent in free_algebra_quotient by @fchapoton in #37133
- minor details in quadratic forms by @fchapoton in #37134
- some details in infinity "ring" by @fchapoton in #37137
- Add Matsumoto's matroid database and AllMatroids() driver function by @gmou3 in #37140
- Format graphic_matroid.py by @gmou3 in #37141
- throw ValueError instead of TypeError when logarithm doesn't exist in AdditiveAbelianGroupWrapper by @yyyyx4 in #37142
- Minor ruff fixes in posets by @fchapoton in #37144
- Add matroid attribute girth() by @gmou3 in #37145
- Fix a bug in reduction of element modulo ideal in exterior algebra by @trevorkarn in #37146
- fix doctest in gap_packages (using empty table) by @fchapoton in #37147
- provide Q.log(P) instead of P.discrete_log(Q) for elliptic-curve points by @yyyyx4 in #37152
- minor details in logic folder by @fchapoton in #37154
- using Parent in integer rings instead of ParentWithGens by @fchapoton in #37156
- Add additional lattice methods for matrices over QQ by @TheBlupper in #37157
- Fix
change_ring
method of multi-variate polynomials by @kwankyu in #37159 - Fix cvxopt build with suitesparse homebrew; fixes #37149. by @drago-96 in #37161
- refreshing the file projective_subscheme by @fchapoton in #37162
- moving modular stuff to "CommutativeRing" class by @fchapoton in #37163
- Fixes and simplifications for
.ramified_primes()
,.discriminant()
and.is_isomorphic
of quaternion algebras by @S17A05 in #37164 - use Parent in quadratic number fields by @fchapoton in #37165
- implement Adams operator for lazy power series by @fchapoton in #36396
- CI Linux: Replace use of pkill by @mkoeppe in #36726
- CI Conda: Add to known-test-failures by @mkoeppe in #36937
- CI Build & Test: Show doctest failures, warnings as annotations in the 'Files changed' tab by @mkoeppe in #36938
tox -e update_docker_platforms
by @mkoeppe in #36954build/pkgs/openblas
: Update to 0.3.26 by @mkoeppe in #37005- Some fixes & improvements to autogenerated flint .pxd by @mezzarobba in #37193
- general LU: gather several calls to field inversion into a single call by @vneiger in #37195
- make FreeAlgebra graded and provide is_unit and invert by @mantepse in #37199
- allow algorithm=pari in LLL by @AurelPage in #37207
- Added rational Tamari lattices by @Cchenevi in #37209
- unify alias substitute for subs by @mantepse in #37210
- Remove unnecessary bullet point by @GiacomoPope in #37215
- Fix to ncsym.ncsym.nesting by @lucasgagnon in #37218
- CI Linux Incremental: Do not require label "c: packages: ..." to be set by @mkoeppe in #37222
- Remove invariants commands in global namespace by @GiacomoPope in #37223
- splitting_field: polred -> polredbest by @AurelPage in #37225
- unit group of number field: do not expand product when S is empty by @AurelPage in #37226
- some pep8 fixes in rings, and activate E221 by @fchapoton in #37228
- some pep8 fixes in coding, in particular E275 by @fchapoton in #37229
- some cython-lint fixes in ecl lib by @fchapoton in #37230
- Still less use of isinstance of old-parents by @fchapoton in #37232
- fix small mistake in BQFClassGroupQuotientMorphism documentation by @yyyyx4 in #37233
- make a category of Dedekind domains, remove code from ring.pyx by @fchapoton in #37234
- add one method to integer-valued polynomials by @fchapoton in #37240
- a few details in combinat folder by @fchapoton in #37245
- minor details in modular by @fchapoton in #37246
- CI: Fix for failure in maximize-build-space by @mkoeppe in #37252
- general cleanup of words/paths.py by @fchapoton in #37256
- add type annotations to gens methods by @fchapoton in #37258
- sage_docbuild: add needs sphinx tags by @tornaria in #37269
- Allow python 3.12 and scipy 1.12 by @tornaria in #37270
- enable the generation of acyclic orientations with
nauty_directg
by @dcoudert in #37272 - Fix some doctest warnings by @mkoeppe in #37279
- sagemath-standard: don't require Cython to create sdist by @tornaria in #37290
- Fix cardinality of special linear group by @RuchitJagodara in #36881
- src/sage/combinat/designs/subhypergraph_search.pyx: constness fix for clang 16 by @mkoeppe in #36927
- Prepare python3
spkg-configure.m4
for Python 3.12 (setuptools instead of distutils) by @mkoeppe in #36983 build/pkgs/{givaro,fflas_ffpack,linbox}
: Accept matching set of new versions by @mkoeppe in #36997- normalize projective points over (quotients of) Euclidean domains by @yyyyx4 in #37007
- Upgrade database_knotinfo to version 2024.2.1 by @soehms in #37014
- Installation guide: Use
.. envvar::
to define environment variables by @mkoeppe in #37065 build/pkgs/free_fonts
: Fix fedora system package information by @mkoeppe in #37073- Fix
.multiplication_by_m
when m is not coprime to characteristic (#6413) by @grhkm21 in #37096 - Define behaviour of < and > for fractional ideals in a quaternion algebra by @syndrakon in #37113
- special subs for fractions by @mantepse in #37143
- Add class CircuitsMatroid by @gmou3 in #37148
- Total refactor of
any_root()
to solve issue in characteristic two and clean up the code by @GiacomoPope in #37170 - Implement Auslander-Reiten quivers by @tscrim in #37182
- Fix
sage_setup.clean
doctest by @mkoeppe in #37185 - Implement Chevalley-Eilenberg complexes with module coefficients by @tscrim in #36171
- fast path for Vélu isogenies with a single kernel generator by @yyyyx4 in #36805
configure.ac
: Remove tests for outdated platforms by @mkoeppe in #36915- compute isomorphisms between quaternion orders by @yyyyx4 in #34976
- add order_from_multiple() to sage.groups.all by @yyyyx4 in #35503
- Allowing HeckeAlgebraSymmetricGroupT to accept elements of SymmetricGroup(n) as input by @AndrewMathas in #37318
- Basis completion for matrices over univariate polynomials by @vneiger in #37324
- remove "known bug" marker for #6413 from doctest by @yyyyx4 in #37328
- add optional order= argument to .log() method for PARI finite-field elements by @yyyyx4 in #37329
- fixing ruff UP037 (about type annotation) by @fchapoton in #37333
- Speedup database_matroids.py tests by @gmou3 in #37338
- Removed whitespaces in
ncsym.py
by @S17A05 in #37339 - Avoid algebra in polynomials by @fchapoton in #37341
- remove some old deprecations in functional.py by @fchapoton in #37342
sage -package dependencies
by @mkoeppe in #37350sage --package create
: When re-creating with a different source type, clean up by @mkoeppe in #37352- Allow submodule construction of a free module over a ring by @kwankyu in #37354
- less usage of method .is_commutative by @fchapoton in #37355
- Fix doctest for
multiplication_by_m
by @S17A05 in #37360 - use Parent in skew polynomials by @fchapoton in #37366
- improve random sampling of quotient-ring elements by @yyyyx4 in #37367
- Speed up square matrix times vector over GF(2) by @kedlaya in #37375
- src/sage/rings/polynomial: Link to spkg page by label by @mkoeppe in #37376
- Remove some last traces of Trac by @mkoeppe in #37385
- fix some ruff suggestions in cluster_algebra_quiver by @fchapoton in #37397
- fix
relabel
for permutation groups by @dcoudert in #37398 - links for errors in doc of groups by @fchapoton in #37405
- minor fixes in sandpiles by @fchapoton in #37410
- Implemented order computation and identity checking for automorphisms of elliptic curves by @r98inver in #37089
- Sphinx 7 by @mkoeppe in #37129
- Update debian.txt for various Python packages by @mkoeppe in #37186
- Various edits of developer guide by @kwankyu in #37206
- Added the alt nu-tamari lattices by @Cchenevi in #37221
- build/pkgs/ipython/dependencies: Add matplotlib_inline by @mkoeppe in #37227
- Use matroid-database package by @gmou3 in #37231
- Improved algorithm choice for isogeny computation by @r98inver in #37242
- extend
all_paths_iterator
andall_simple_paths
to Graph by @dcoudert in #37260 - Allow custom degree in
random_element
of polynomial quotient ring by @aimileus in #37268 - large pep8 cleanup in interfaces by @fchapoton in #37273
- details in Zariski-Van-Kampen by @fchapoton in #37281
- Fix RegularSequence.subsequence for zero sequence by @cheuberg in #37283
- sagemath-standard: fix manifest by @tornaria in #37286
- use parent in quaternions by @fchapoton in #37299
- use Parent instead of Algebra in finite_gca by @fchapoton in #37302
- use Parent in Weyl algebra by @fchapoton in #37303
- Fix random test failures in
number_field_element_quadratic
by @grhkm21 in #37306 - Add tips for choosing an exception in developer guide by @kwankyu in #37311
- Fix package install instructions in "Numerical Sage" tutorial by @mkoeppe in #37313
- use CommutativeRing in ring_extension by @fchapoton in #37316
- Preparation for Sphinx 7 by @kwankyu in #37334
- Created functions to generate random k-tree and partial k-tree graphs by @damianbasso in #36587
- Tidy PR template by @kwankyu in #36602
- CI conda: On
pull_request
, only run 1 macOS job and 1 Linux job by @mkoeppe in #36694 - Adding support for sums, intersection, and equality of SubmodulesWithBasis by @tscrim in #36988
- SCIPBackend: Faster copy, remove_constraint methods by @mkoeppe in #35103
- src/sage_docbuild/ext/sage_autodoc.py: Fix linter failure by @mkoeppe in #37470
- Support flint 3.1 in sagelib by @antonio-rojas in #37484
README.md
: Improve PyPI install instructions by @mkoeppe in #37261build/pkgs/meson
: Update to 1.3.1, require >= 1.2.3 for Python 3.12 support, reject meson installed in inaccessible user schemes by @mkoeppe in #37319- Fix bugs and regression in performance of
any_root()
by @GiacomoPope in #37443 sage -t
: Fix handling of--probe all
broken by #36989 by @mkoeppe in #37177sage.features.threejs
: Fix modularization regression after #37024 by @mkoeppe in #37178- CI macOS: Fix failure with macos-13-homebrew, add tests on M1 runners, add timeouts by @mkoeppe in #37237
- build/pkgs/flint: Reject FLINT >= 3.1.0 by @mkoeppe in #37495
cmake
,ninja_build
: Reject installations in inaccessible user schemes by @mkoeppe in #37504- build/pkgs/sagemath_doc_html/dependencies: Add 'graphs' by @mkoeppe in #37543
- Upgrade prompt_toolkit to 3.0.43 by @kwankyu in #37548
- Replace all :trac: with :issue: in docstrings by @GiacomoPope in #37390
- Add free disk space option to Docker build
default
by @tobiasdiez in #37476 - Workaround warning in cython 3.0.9 (#37560) by @tornaria in #37583
- Update Conda installation instructions to use Miniforge by @tobiasdiez in #37588
- Upgrade to jupyterlab 4.1.3 and notebook 7.1.1 by @mkoeppe in #37535
New Contributors
- @cherry-1729-9090 made their first contribution in #36695
- @SpaceCoder93 made their first contribution in #36818
- @amanmoon made their first contribution in #36852
- @ryuhei-mori made their first contribution in #36764
- @jukkakohonen made their first contribution in #36814
- @cybaj made their first contribution in #36866
- @RuchitJagodara made their first contribution in #36845
- @knospe made their first contribution in #35823
- @MedantSharan made their first contribution in #36229
- @ehaka made their first contribution in #36487
- @gmou3 made their first contribution in #36962
- @jacksonwalters made their first contribution in #36796
- @drago-96 made their first contribution in #37094
- @S17A05 made their first contribution in #37098
- @J08nY made their first contribution in #37194
- @6mingkun made their first contribution in #37213
- @r98inver made their first contribution in #37092
- @syndrakon made their first contribution in #37111
- @giacomoborin made their first contribution in #37112
- @TheBlupper made their first contribution in #37157
- @AurelPage made their first contribution in #37207
- @Cchenevi made their first contribution in #37209
- @lucasgagnon made their first contribution in #37218
- @AndrewMathas made their first contribution in #37318
- @aimileus made their first contribution in #37268
- @damianbasso made their first contribution in #36587
Full Changelog: 10.2...10.3