Skip to content

Einsum returns incorrect mixed contraction. #330

@kmp5VT

Description

@kmp5VT

@asadchev The following code returns an incorrect tensor

auto ein_rbl =  TA::expressions::einsum(rbij("r,b,i,j"), rijl1("r,i,j,l"), "r,b,l");
value -= ein_rbl("r,b,l").dot(rbl1("r,b,l"));

The contractions are T("r,b,i,j") * G("r,i,j,l") = W("r,b,l")
I have verified this problem 2 ways. 1. I constructed the term W("r,b,l") using the vector_of_arrays.h code and I have computed value using the vector_of_arrays based method.
I have verified that the expressions are equivalent and I also checked to see if its related to block size and don't believe it is (I tried multiple systems and single and multiple blocks and see inconsistencies across the board)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions