-
-
Notifications
You must be signed in to change notification settings - Fork 487
Sage 10.5 Release Tour
These are the work-in-progress release notes for the upcoming 10.5 release (2024). Contributions are welcome!
For the current stable version, see the Sage 10.4 Release Tour.
The validity check method, is_valid
, now accepts the boolean argument certificate
. When certificate
is set to True
, the method is_valid
returns a tuple of a boolean and a dictionary. The dictionary provides some more information in case the matroid is not valid. #38711
sage: C = [[1, 2, 3], [3, 4, 5]]
sage: M = Matroid(circuits=C)
sage: M.is_valid(certificate=True)
(False,
{'circuit 1': frozenset({3, 4, 5}),
'circuit 2': frozenset({1, 2, 3}),
'element': 3,
'error': 'elimination axiom failed'})
The new ring PolynomialSpecies
supports computations with polynomial combinatorial species. Unlike previous implementations, as in Maple, MuPad, Axiom, and Sage itself, it regards a species as a formal sum of group actions of symmetric groups. The species must be polynomial, that is, only finitely many symmetric groups may occur. This restriction will be removed with #38544
The ring allows computations with virtual weighted multisort species. All the major operations, such as sum, product, composition and Hadamard product are provided. One can define a species by providing the underlying permutation group or by specifying a group action of (a Young subgroup of) the symmetric group. In particular, it is now possible to compute the atomic expansion of any given species.
For example:
sage: P.<X> = PolynomialSpecies(R)
sage: E = sum(P(SymmetricGroup(n)) for n in range(5))
sage: E1 = sum(P(SymmetricGroup(n)) for n in range(1,5))
sage: E(q*E1).truncate(5)
1 + q*X + (q^2+q)*E_2 + (q^3+q)*E_3 + q^2*X*E_2 + (q^4+q)*E_4 + q^2*X*E_3 + q^2*P_4 + q^3*E_2^2
Several improvements have been made like the initialization of a backend and a significant speed up of method gomory_hu_tree
. #38664 #38791
New methods have been added to check whether an input list of vertices (or edges) forms a vertex (or edge) cut of the graph, and to orient a graph according to an input function. #38418 #38435 #38778
sage: G = graphs.PathGraph(10)
sage: D = G.orient(lambda e:e if (e[0] + e[1]) % 3 == 0 else (e[1], e[0], e[2]))
sage: D.edges(labels=False)
[(1, 0), (1, 2), (3, 2), (4, 3), (4, 5), (6, 5), (7, 6), (7, 8), (9, 8)]
A uniform generator of random proper interval graphs has been added. #38354
sage: G = graphs.RandomProperIntervalGraph(50)
sage: G.is_interval()
True
sage: G.clique_number()
11
sage: G.treewidth()
10
gcc
13.3.0 #38442
sympy
1.13.2 #36641
suitesparse
7.8.0 #37204
fpylll
0.6.1 #38231
libffi
3.4.6 #38308
libpng
1.6.37 #38522
sphinx
7.4.7 #38549
cypari2
2.2.0 #38183
pytest
, pytest_mock
, pytest_xdist
are now standard wheel packages. #37301
mathics
#37395
jmol
and jupyter_jmol
have been demoted from standard to optional. #38504 #38532
Deprecation Policy for classes updated. #38273
Reviewing Code for PRs affecting user interface added. #38503
The doctest precision tag # abs tol
now compares complex numbers. #38433
Doc previews for PRs show TESTS as well as EXAMPLES so that developers may double-check newly added TESTS. However, as before, TESTS are not included in the doc of a release. #38449
Binary wheels are now built also for musllinux
platforms and the aarch64
architecture. #38272
Source distributions of the modularized distribution packages are now also made available on GitHub Releases. #38519
The new files SAGE_ROOT/constraints_pkgs.txt and SAGE_ROOT/pkgs/sagemath-standard/constraints_pkgs.txt assist with building the modularized distribution packages directly from the repository. See the included comments for instructions. 37434
See also https://github.com/sagemath/sage/issues/29705
Global imports:
-
GroupExp_Class
,GroupExpElement
,GroupSemidirectProductElement
#38238
is_...
functions:
-
is_Ideal
,is_LaurentSeries
,is_MPolynomialIdeal
,is_MPolynomialRing
,is_MPowerSeries
,is_PolynomialQuotientRing
,is_PolynomialRing
,is_PolynomialSequence
,is_PowerSeries
,is_QuotientRing
#38266 -
is_ChowCycle
,is_CohomologyClass
,is_Divisor
,is_ToricDivisor
#38277 -
is_Infinite
#38278 -
is_SymmetricFunction
#38279 -
is_AlphabeticStringMonoidElement
,is_BinaryStringMonoidElement
,is_HexadecimalStringMonoidElement
,is_OctalStringMonoidElement
,is_Radix64StringMonoidElement
,is_StringMonoidElement
#38280 -
is_Ring
#38288 -
is_FunctionFieldElement
,is_FunctionFieldElement
#38289 -
is_LaurentSeriesRing
,is_MPowerSeriesRing
,is_PowerSeriesRing
#38290 -
is_SchemeMorphism
,is_SchemeTopologicalPoint
#38296
Sage 10.5 has not been released yet. The first development version, 10.5.beta0, was tagged on 2024-07-24. The current development version is 10.5.beta5, tagged on 2024-09-22.
The source code is available in the Sage GitHub repository.
Sage builds successfully on the following platforms:
-
Linux 64-bit (x86_64)
- ubuntu-{xenial-toolchain-gcc_9, bionic-gcc_8, focal, jammy, lunar, mantic, noble}
- debian-{bullseye, bookworm, trixie, sid}
- linuxmint-{20.1, 20.2, 21, 21.1, 21.2, 21.3}
- fedora-{30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40}
- centos-stream-9-python3.9
- almalinux-{8, 9}
- archlinux
- gentoo
- opensuse-{15.5-gcc_11-python3.11, tumbleweed}
-
Linux 32-bit (i386/i686)
- debian-bullseye
-
macOS (Intel) (x86_64) - with Homebrew or without
- macOS 12.x (Monterey)
- macOS 13.x (Ventura)
- macOS 14.x (Sonoma)
-
macOS (Apple Silicon, M1/M2/M3) - with Homebrew or without
- Make sure that
/usr/local
does not contain an old copy of homebrew (or other software) for x86_64 that you may have copied from an old machine. Homebrew for the M1/M2/M3 is installed in/opt/homebrew
, not/usr/local
. - Be sure to follow the README and the instructions that the
./configure
command issues regarding the installation of system packages from Homebrew or conda.
- Make sure that
You can also build Sage on top of conda-forge on Linux and macOS.
configure
now checks that the build directory is on a normal writable file system. https://github.com/sagemath/sage/pull/38256
See README.md in the source distribution for installation instructions.
Visit sage-support for installation help.
Readme | Version | Citation | Authors | Contributing | Code of Conduct | Copyright ©️ 2023 Sage Developer Community