WIP: Array optimization rules
Getting this started, let's use this PR for collecting ideas as well.
Builds on #495
┆Issue is synchronized with this Trello card by Unito
I want to use e-graphs for implementing https://arxiv.org/pdf/1304.6112.pdf
One thing to note is #495 makes the term interface for ArrayOp mirror the underlying Term that constructed the einsum notation. This means that egraph matcher will not be able to access the einsum notation as of now. But we can of course write a converter which lets us deal with the einsum formulation. I'm still not a 100% sure on what kind of language will come out for writing equational rules in this case.
Codecov Report
Merging #514 (1fc30d2) into master (b034276) will decrease coverage by
69.15%. The diff coverage is0.00%.
@@ Coverage Diff @@
## master #514 +/- ##
==========================================
- Coverage 78.26% 9.10% -69.16%
==========================================
Files 22 23 +1
Lines 2300 2252 -48
==========================================
- Hits 1800 205 -1595
- Misses 500 2047 +1547
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/Symbolics.jl | 7.14% <ø> (-57.15%) |
:arrow_down: |
| src/array-rules.jl | 0.00% <0.00%> (ø) |
|
| src/semipoly.jl | 0.00% <0.00%> (-95.37%) |
:arrow_down: |
| src/linear_algebra.jl | 0.00% <0.00%> (-89.48%) |
:arrow_down: |
| src/array-lib.jl | 0.00% <0.00%> (-84.05%) |
:arrow_down: |
| src/diff.jl | 0.40% <0.00%> (-79.12%) |
:arrow_down: |
| src/equations.jl | 0.00% <0.00%> (-78.13%) |
:arrow_down: |
| src/arrays.jl | 9.64% <0.00%> (-75.85%) |
:arrow_down: |
| src/complex.jl | 0.00% <0.00%> (-71.43%) |
:arrow_down: |
| src/build_function.jl | 0.00% <0.00%> (-70.32%) |
:arrow_down: |
| ... and 12 more |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update b034276...1fc30d2. Read the comment docs.
cc @0x0f0f0f @DhairyaLGandhi