summaryrefslogtreecommitdiffstats
path: root/content/zettel/3a8g4a.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/zettel/3a8g4a.md')
-rw-r--r--content/zettel/3a8g4a.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/content/zettel/3a8g4a.md b/content/zettel/3a8g4a.md
new file mode 100644
index 0000000..6c3973f
--- /dev/null
+++ b/content/zettel/3a8g4a.md
@@ -0,0 +1,35 @@
++++
+title = "Rebuilding the correct order of arguments"
+author = "Yann Herklotz"
+tags = []
+categories = []
+backlinks = ["3a8g4"]
+forwardlinks = ["3a8g4b"]
+zettelid = "3a8g4a"
++++
+
+This has been corrected in another note ([\#3a8g4b]).
+
+We therefore have to recreate the correct order of the arguments based
+on the predecessors. The correctness of this might be quite hard to
+show, however, the idea of the algorithm is the following:
+
+1. Find all the points of definition of the variables inside the φ
+ function, and get all the predecessors. The main idea is that the
+ definition points of the variables must necessarily dominate the
+ predecessor that should be used to select that variable. However,
+ the difficulty is that it might not uniquely dominate the
+ predecessor of the variable.
+2. Find all the points of definition that dominate the minimum number
+ of predecessors. If there are more than one, this means that there
+ must be duplicate versions of the variable inside the φ function.
+3. Take all the points where the number of predecessors that are
+ dominated by the point of definition also coincides with the number
+ of uses of that variable inside of the φ function.
+4. Take the list of predecessors and map through it, always looking up
+ the variables that were assigned to that predecessor in the previous
+ step, and replace the predecessor in the list.
+5. The result should be a correctly ordered list for the phi function,
+ which will work with an arbitrary order in the GSA input.
+
+ [\#3a8g4b]: /zettel/3a8g4b