SciPost Submission Page
Using SimTeEx to simplify polynomial expressions with tensors
by Renato Fonseca
Submission summary
| Authors (as registered SciPost users): | Renato Fonseca |
| Submission information | |
|---|---|
| Preprint Link: | scipost_202506_00060v1 (pdf) |
| Code repository: | https://www.renatofonseca.net/simteex |
| Code version: | 1.0.3 |
| Code license: | GNU General Public License version 3 |
| Date submitted: | June 30, 2025, 5:36 p.m. |
| Submitted by: | Renato Fonseca |
| Submitted to: | SciPost Physics Codebases |
| Ontological classification | |
|---|---|
| Academic field: | Physics |
| Specialties: |
|
| Approaches: | Theoretical, Computational |
Abstract
Computations with tensors are ubiquitous in fundamental physics, and so is the usage of Einstein's dummy index convention for the contraction of indices. For instance, $T_{ia}U_{aj}$ is readily recognized as the same as $T_{ib}U_{bj}$, but a computer does not know that T[i,a]U[a,j] is equal to T[i,b]U[b,j]. Furthermore, tensors may have symmetries which can be used to simply expressions: if $U_{ij}$ is antisymmetric, then $\alpha T_{ia}U_{aj}+\beta T_{ib}U_{jb}=\left(\alpha-\beta\right)T_{ia}U_{aj}$. The fact that tensors can have elaborate symmetries, together with the problem of dummy indices, makes it complicated to simplify polynomial expressions with tensors. In this work I will present an algorithm for doing so, which was implemented in the Mathematica package SimTeEx (Simplify Tensor Expressions). It can handle any kind of tensor symmetry.
Author comments upon resubmission
Following up on the reply to the referee report, I am resubmitting the paper with the changes detailed below. Among them, I would like to highlight that the revised manuscript now includes benchmarks, allowing readers to assess the code’s performance in terms of running time and memory usage.
I hope that with these changes you and the rest of the Editorial College will find the manuscript ready for publication.
List of changes
- Grammatical and typographical errors were corrected.
- Small changes of style were made to some sentences mentioned in the report.
- A new appendix C was added with information on the performance of the code, as required by the journal. This new appendix also compares in more detail SimTeEx with other programs.
Current status:
Reports on this Submission
Strengths
- Potentially original approach to a problem that is still not really solved completely with existing algorithms/tools.
Weaknesses
- Lack of complete documentation of the algorithm, with proper examples for non-trivial cases worked out.
Report
The paper has been improved substantially since the first submitted version, and many comments of the previous referee have been taken into account, in particular:
- Benchmarks and comparisons with existing systems have been added.
- Novelty has been addressed.
Nevertheless, I feel that the paper is still lacking considerably in the explanation of the algorithm which is used/proposed. This is most manifest in section 4, where ordering monomials of products involving dummy indices is "dealt with" by a single item 3 in the list on page 9, which contains no details at all, and then never mentioned again in the paper. As this is the main problem that the algorithm aims to address, this is completely inadequate. At the very least, one or more non-trivial examples should be discussed here. Even if the source code had been more readable, with proper use of comments (which, I checked, it is not) the paper itself should still explain such crucial issues in much more detail.
For completeness, let me also mention that there are still some uses of informal language ("I have tried ...") which should also be cleaned up.
In conclusion, I recommend that this paper undergoes another round of revision. I do believe (and agree with the author) that it is relevant to the field and potentially addresses an important problem not covered by existing tools, but the above main point absolutely has to be addressed before I can recommend publication. Scientific publication of software should not only be about releasing a "black box" that does the job, but equally well about explaining clearly all details of what is inside that box. My rejection at this stage should thus be seen as constructive criticism to help this paper/algorithm reach the audience that it deserves.
Requested changes
- Expand section 4 so that it properly explains (and illustrates with non-trivial examples) the key part of the algorithm.
Recommendation
Ask for major revision
