summaryrefslogtreecommitdiff
path: root/TODO.org
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@carlo-laptop>2012-08-06 22:58:29 +1000
committerCarlo Zancanaro <carlo@carlo-laptop>2012-08-06 22:58:29 +1000
commit42e729d20000eb141b2907ad83630af34f4afea3 (patch)
treee231556126d538d6b61fe099c6245176aeb3df15 /TODO.org
parent77d26a8f2832791587b19351ee1fde207fdda608 (diff)
New variation on the equation system solver.
Much simpler to understand. Basically have a variable assignment which is dynamic and updates with the strategy changes. Similarly have strategy changes easily invalidate the variable assignment. This makes them strongly inter-dependent, but simplifies the implementation considerably. Proving it should be easier like this, too.
Diffstat (limited to 'TODO.org')
-rw-r--r--TODO.org67
1 files changed, 67 insertions, 0 deletions
diff --git a/TODO.org b/TODO.org
new file mode 100644
index 0000000..bb4d349
--- /dev/null
+++ b/TODO.org
@@ -0,0 +1,67 @@
+* TODO Refactoring [1/4]
+- [X] Fix up logging
+- [ ] Separate classes into files
+- [ ] Put outer-loop in a class (out of main)
+- [ ] Give EquationSystem methods for creating assignments/strategies
+* TODO Verbosity [2/3]
+- [X] Wrap output streams [5/5]
+ - [X] strategies
+ - [X] fixpoint
+ - [X] debug
+ - [X] trace
+ - [X] info
+- [X] Command-line arguments [5/5]
+ - [X] strategies
+ - [X] fixpoint
+ - [X] debug
+ - [X] trace
+ - [X] info
+- [-] Provide output [0/5]
+ - [-] strategies [1/2]
+ - [ ] print the system and assignment, then the next strategy
+ - [X] print each strategy like this:
+ max(0, x, sub(y,2)) --[2]-> sub(y,2)
+ - [ ] fixpoint
+ print the system we're working with, then print the resultant assignment
+ - [ ] debug
+ print the initial system we're working with
+ print more general info in the main loop (number of loops, each assignment/strategy)
+ - [ ] trace
+ maybe we don't need this
+ would be something like "entering/exiting" everything mildly important
+ - [ ] info
+ print the initial system we're working with
+* TODO make test [2/3]
+- [-] write test cases [1/4]
+ - [X] examples from paper
+ - [ ] best cases
+ - [ ] worst cases
+ - [ ] average cases
+- [X] write a script to run over each test case and return pass/fail
+- [X] consolidate into makefile as `make test`
+* TODO Parametrise EquationSystem for Variable, too [0/1]
+- [ ] Give EquationSystem a template parameter for Variable
+ I don't think this is necessary, but Thomas wants it.
+ For now I'm going to hold off on it, though.
+* TODO Min-cost flow problem [1/3]
+- [X] Research min-cost flow libraries
+ Potentially just use LEMON? It looks pretty decent.
+ LEMON it is!
+- [ ] Implement the min-cost flow operator MCF
+ It takes four construction-time arguments and one run-time argument.
+ Construction time:
+ - T (the template constraint matrix)
+ - A (the multiplicative modification factor)
+ - b (the additive modification factor)
+ - c (the bound in the guard)
+ Run-time:
+ - d (the abstract value to be operated on)
+- [ ] Update test cases to include MCF
+* TODO Presentation [0/2]
+- [ ] Simplify "Even Faster" solver for explanation
+- [ ] Make slides [0/5]
+ - [ ] Even Faster Solver
+ - [ ] Strategy improvement
+ - [ ] Example of scaling
+ - [ ] Explain solution
+ - [ ] Demonstrate implementation