Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for general tensor products #224

Closed
evaleev opened this issue Nov 17, 2020 · 0 comments · Fixed by #285
Closed

support for general tensor products #224

evaleev opened this issue Nov 17, 2020 · 0 comments · Fixed by #285
Assignees
Milestone

Comments

@evaleev
Copy link
Member

evaleev commented Nov 17, 2020

General tensor product is a binary multiplication operation that can contain the following 3 types of indices:

  • fused indices that appear in each argument and in the result
  • contracted indices that appear in each argument but not in the result
  • free indices that appear once on the RHS; clearly, free indices also appear in the result
    For example, consider the following product:
  c("i,j,k") = a("i,j,o") * b("k,j,o")

Index j is fused, index o is contracted, and indices i and k are free.

N.B. Here we exclude the cases where duplicate indices appear in one of the arguments. Products involving such operations can be composed efficiently from unary add reductions (i.e., traces), thus will not be considered here. We only consider general products that are irreducible parts of an efficient computational basis.

Currently TA supports 2 types of tensor products:

  • Hadamard product, in which all indices are fused; e.g., c("i,j") = a("i,j") * b("j,i"), and
  • covariant contraction that involves zero or more contracted and one or more free indices; e.g., c("i,j") = a("i,k") * b("j,k") (the covariant contraction where no free indices appear is efficiently implemented as a binary multiply-add reduction)

The purpose of this issue is to track implementation of support for general tensor products.

@evaleev evaleev added this to the release 1.1 milestone Nov 17, 2020
@evaleev evaleev linked a pull request Jun 16, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants