[<<][rtl][>>][..]
Sun May 12 15:33:17 EDT 2019

Loop algebra

What are the operations?
- fuse / split
- project / inject (eliminate)
- hoisting
- interchange

Where deforestation is a combination of fusion and elimination.

I think that's pretty much it.  Here are some more:

https://en.wikipedia.org/wiki/Loop_optimization



There are the (bi-directional) operations in the notation developed
above, in "reductive" order.

- FUSE

i:
   Bi <- Ai
i:
   Ci <- Bi
=>
i:
   Bi <- Ai
   Ci <- Bi

   
- ELIMINATE:

i:
   Ci <- Ai Bi
   Di <- Ci Ci
=>
i:
   C  <- Ai Bi
   Di <- C  C 


- HOIST

i:
   C  <- A B
   Ei <- C Di 
=>
C <- A B
i:
   Ei <- C Di


- INTERCHANGE

i:
  j:
     Cij <- Aij Bij
=>
j:
  i:
     Cij <- Aij Bij





[Reply][About]
[<<][rtl][>>][..]