summaryrefslogtreecommitdiff
path: root/impl/TODO.org
blob: bb4d3492a3f939fe176f5811b4c30b043dbcd060 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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