OMEinsum.jl
                                
                                 OMEinsum.jl copied to clipboard
                                
                                    OMEinsum.jl copied to clipboard
                            
                            
                            
                        Specialize `StaticEinCode` functions more aggressively
These tweaks are enough to get these StaticEinCode examples that use the loop fallback fully-inferred:
ein"ij,jk,kl->il"(randn(100, 100), randn(100, 100), randn(100, 100))
ein"ij,jk,kl,lm->im"(randn(100, 100), randn(100, 100), randn(100, 100), randn(100, 100))
It will be quite a bit more effort to do the same for unary / binary pipelines, such as:
ein"ij,jk->ik"(randn(100, 100), randn(100, 100))
Mostly because of their dependency on the broadcasting machinery - but this is at least a start.