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

Dedup corner case #99

Closed
LinjianMa opened this issue Jan 11, 2020 · 3 comments
Closed

Dedup corner case #99

LinjianMa opened this issue Jan 11, 2020 · 3 comments
Assignees

Comments

@LinjianMa
Copy link
Owner

LinjianMa commented Jan 11, 2020

Currently, the dedup function regards T.einsum('cb,ca->ab',B,B) and T.einsum('cb,ca->ba',B,B) as different expressions. However, their results are the same and should be viewed as duplicated.

@ByzanTine ByzanTine self-assigned this Jan 12, 2020
@ByzanTine
Copy link
Collaborator

ByzanTine commented Jan 12, 2020

So for me, this sounds like a general case where you can logically evaluate the two einsums and they shall be the same.

Should we then put an evaluation engine that put common sense there?

Like einsum('.., ..->..', A, A) = A ? ('..' is any characters)

@LinjianMa
Copy link
Owner Author

I think the common sense you mentioned is the property of einsum when symmetry is involved. There're too many potential cases so I think we may need to transfer the einsum expression back to some union find data structure to detect all the cases. Seems it's not an easy case for me

@LinjianMa
Copy link
Owner Author

Should be fixed by #142

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

No branches or pull requests

2 participants