Einsum
In linear algebra and mathematical physics, there is a notational convention called Einstein Notation. The python package numpy implements a function called einsum, which is the first hit when googling the term. Several Julia packages exists that implement einsum functionality.
Packages
Tullio.jl
This package implements a macro@tullio
, which it describes as a very flexible einsum macro. It understands many array operations written in index notation – not just matrix multiplication and permutations, but also convolutions, stencils, scatter/gather, and broadcasting.
Einsum.jl
From README.md of this package:This package exports a single macro @einsum, which implements similar notation to the Einstein summation convention to flexibly specify operations on Julia Arrays, similar to numpy's einsum function (but more flexible!).
OMEinsum.jl
From README.md of this package:This is a repository for the Google Summer of Code project on Differentiable Tensor Networks. It implements one function that both computer scientists and physicists love, the Einstein summation
TensorOperations.jl
TensorCast.jl
ArrayMeta.jl
ArrayMeta.jl exists, but the package is not maintained and registered.
Tortilla.jl
Tortilla.jl was announced in JuliaCon2018, but the package is not public yet.
Star History
Last modified: May 03, 2024. Built with Franklin.jl