This package implements algorithms for computing indecomposable summands of finitely generated $R$-module $M$ over a $k$-algebra when $M$ is either a homogeneous module over a (multi)graded ring with $k$ a field of arbitrary characteristic, or when $R$ is local and $k$ a field of positive characteristic contained in $\overline{\mathbb F_p}$.
Further, in the graded case, this package enables the computation of indecomposable summands of coherent sheaves on subvarieties of the projective space $\PP^n$ as well as other complete toric varieties, while in the local case it enables the study of germs of inhomogeneous singularities in positive characteristic.
The decomposition algorithms are randomized, so repeated runs may sample different endomorphisms. Over a large enough field, this implementation is often capable of completely decomposing a module in a single non-recursive iteration. When a decomposition appears only after extending scalars, the package can suggest or carry out a field extension via potentialExtension and changeBaseField.
The package also (temporarily) includes utilities for working with the Frobenius map in positive characteristic: frobeniusMap, frobeniusRing, frobeniusPullback, frobeniusPushforward, and frobeniusTwist. These make it possible to study decompositions of Frobenius pushforwards of modules and sheaves, which is one of the motivating applications.
As a sample computation, consider the splitting of the Frobenius pushforward of the structure sheaf of an elliptic curve over $\mathbb F_7$ and after base change to $\mathbb F_{49}$.
|
|
|
|
|
The authors thank the organizers of the Macaulay2 workshop at AIM, where significant progress on this package was made.
Computing direct sum decompositions, Mallory and Sayrafi, Journal of Symbolic Computation, Volume 133, March–April 2026 [arXiv:2412.19799].
This documentation describes version 0.4 of DirectSummands, released May 8th 2026.
If you have used this package in your research, please cite it as follows:
|
The object DirectSummands is a package, defined in DirectSummands.m2, with auxiliary files in DirectSummands/.
The source of this document is in /build/reproducible-path/macaulay2-1.26.06+ds/M2/Macaulay2/packages/DirectSummands/docs.m2:680:0.