ParametricInversion.jl
ParametricInversion.jl copied to clipboard
ParametricInversion.jl currently relies on IRTools, Mjolnir, and the generated function trick to implement the inverse pass. This suffers from all of the well-known limitations of that approach: 1. It's unstable...
[PythonProgrammingPuzzles](https://github.com/microsoft/PythonProgrammingPuzzles/tree/main/puzzles) is a set of example programs expressed in Python. You're given a predicate, typically called `sat`, e.g. ```python def sat(s: str): """Find a string with 1000 'o's but no...
The "domain loss" is the loss accumulated from every primitive in the inverse direction that measures a problem of impartiality. Minimizing this loss solves the inversiion process. To output this...
Handle multiple arguments like :+(%2, %3, %4, %5) (all with potentially different types)
Given an IR, there are many possible ways to execute the statements. - [ ] Formulate what a reordering is - [ ] Determine space of valid reorderings - [...
When constructing a parametric inverse, we need to give identities to the parameter choices. The parameter address for the first addition should differ from that of the second addition. This...
Given some function `f`, such as `+`, it seems like we should be able to formulate the pgf in terms of choose Something like `choose(+, Tuple{Int, Int}, ::XY, ::\Theta)`
The function called `choose` is poorly named. It does a few things - selects a tuple in the relation. This makes it somewhat similar to `select` in relational algebra -...
Some progress towards control flow inversion. There are some dynamic issues as well as the choosebranch function's handling of return branches.
Currently we are assuming we have only one block, of course we need to extend to more than one. This requires first figuring out the correct semantics #3