EinExprs is deeply inspired by
cotengra. Actually most of the contraction path search and slicing algorithms have been rewritten from there. If you happen to be working in Python, you should definetely check out these libraries.
Although the differences are minimal, any user coming from
opt_einsum should be aware that:
"optimal"contraction path solver in
opt_einsumis known as
"random-greedy"contraction path solver in
EinExprsbut with a random
- When counting FLOPs,
opt_einsumgives a value $\times 2$ higher than the
Although we believe there is no similar project in the Julia world, there are some overlapping libraries that may suit you if
EinExprs doesn't fit your case.
- 1We are not sure of the reason behind this mismatch or which package gives the correct answer, but since the factor remains constant, it should not affect when comparing contraction paths during the minimization step.