diff options
author | Carlo Zancanaro <carlo@carlo-laptop> | 2012-08-06 22:58:29 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@carlo-laptop> | 2012-08-06 22:58:29 +1000 |
commit | 42e729d20000eb141b2907ad83630af34f4afea3 (patch) | |
tree | e231556126d538d6b61fe099c6245176aeb3df15 /TODO.org | |
parent | 77d26a8f2832791587b19351ee1fde207fdda608 (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.org | 67 |
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 |