summaryrefslogtreecommitdiff
path: root/impl
AgeCommit message (Collapse)Author
2012-11-09A bunch of changes to make it build nicerCarlo Zancanaro
In particular: - fix up the MCF sovler to get rid of all the warnings/errors - make the build with Wall and Werror and whatnot again
2012-11-09Add an MCF operator to the separate solverCarlo Zancanaro
For the solver utility it'd be good to have MCF problems, so here they are! Format is: MCF<supplies, arcs>(cost*) Supplies is a [int,int,int,...], where each int represents a new node Arcs is [int:int, int:int, int:int, ...] where each int:int pair represents an edge from the first to the second (1 indexed from the "supplies" array). Costs is the argument to the function. There must be as many costs as arcs, and they are set from left to right, in order.
2012-11-05Remove a bit of junk and fix up the logging again.Carlo Zancanaro
2012-11-02Change to using "touched" sets, and some writing.Carlo Zancanaro
2012-11-01Fixing up some equation system stuff.Zancanaro; Carlo
Adding function arguments to the system, as well as making it slightly easier to read.
2012-11-01A bunch of fixes to the solver, and moving it in to clang.Zancanaro; Carlo
Also some contribution writing stuff. Basically: lots of work.
2012-10-31Remove _var_influence and do some writeupCarlo Zancanaro
_var_influence was really just duplicating data that was available elsewhere, so I got rid of it. I also did some writing about the algorithm and stuff for the thesis.
2012-10-30Merge branch 'master' of ssh://bitbucket.org/czan/honoursCarlo Zancanaro
Conflicts: impl/test/run
2012-10-27Output some timing information to stderr.Carlo Zancanaro
2012-10-27Don't show stderr in tests. That's just annoying.Carlo Zancanaro
2012-10-26Add some tests, and stuff.Carlo Zancanaro
2012-10-26Try to make the correct solver into a local solverCarlo Zancanaro
As far as I can tell, it's worked! Hooray!
2012-10-24Add a fix for mutually-recursive infinite thingsCarlo Zancanaro
So now it will solve correctly for x = y + 1 y = max(0, x + 1) I also added in tests for this (and a slightly different form with `x` going through another variable, `z`, for indirection). The tests will also stop now after five seconds of execution. If they can't be solved in five seconds then they're considered a failure.
2012-10-23Another fix, with a test for what the problem was.Carlo Zancanaro
2012-10-23Fix the merge.Carlo Zancanaro
2012-10-23Merge branch 'master' of https://bitbucket.org/czan/honoursCarlo Zancanaro
Conflicts: .gitignore impl/MaxStrategy.hpp impl/VariableAssignment.hpp impl/systems/test.eqns impl/test/7.eqns
2012-10-23Make the recursive solver work properly.Carlo Zancanaro
If you ignore the intermediate results for the strategy iteration phase then you're in the clear! I think!
2012-10-22Okay, the solver is now correct.Carlo Zancanaro
It runs in two separate passes: - improve strategy (for all) - evaluate fixpoint Unfortunately this loses out on locality at the moment. I really want a local solver, so I'll have to see what I can do about that.
2012-10-16A quick fix to the solver.Carlo Zancanaro
2012-10-15Some bug fixes for the solver.Carlo Zancanaro
Still doesn't work in clang, though.
2012-10-15... Assert needs some includes.Carlo Zancanaro
2012-10-15Fix up to build with clang (and fix another bug)Carlo Zancanaro
- Remove exceptions - Remove dynamic casts The bug was relating to MaxStrategy not cleaning up the influence sets after propagating changes. I just added a call to .clear() and it seems fine.
2012-09-20Remove exceptions and C++11 features for LLVM.Carlo Zancanaro
2012-09-05Delete a lot of tex stuff, better debug infoCarlo Zancanaro
Some other stuff, too, I think. Oh well. No biggie!
2012-08-07Merge complete! Get onto the right branch.Carlo Zancanaro
2012-08-07A whole bunch of clean up work around the place.Carlo Zancanaro
- Make it a bit nicer to use the command-line - Remove the strategies we won't be using - Clean up some code around the place, generally
2012-08-06New variation on the equation system solver.Carlo Zancanaro
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.
2012-07-10Update TODO file.Carlo Zancanaro
2012-07-10Modify MaxStrategy to print itself better.Carlo Zancanaro
2012-07-10Clean up the building of the parser a bit.Carlo Zancanaro
2012-07-10Fix the Makefile for partial compilation stuffCarlo Zancanaro
2012-07-10A few other changes that were needed for testsCarlo Zancanaro
I must have forgotten to commit them earlier. How annoying.
2012-07-10Move antlr. Add `make test` to Makefile.Carlo Zancanaro
2012-07-10Simple test stuff - examples from the paperCarlo Zancanaro
2012-07-09Few quick logging changes, just for fun.Carlo Zancanaro
2012-07-09Add a bit of a TODO.orgCarlo Zancanaro
2012-07-09New example system.Carlo Zancanaro
2012-07-09Simple little bug.Carlo Zancanaro
2012-07-09Cleaning up a bit of code around the place.Carlo Zancanaro
- Especially making logging a bit nicer.
2012-07-09Fix a few bugs and add a new example system.Carlo Zancanaro
2012-07-09Fixed up the newer strategy iteration stuffCarlo Zancanaro
Trivial 100000 var case in 15s on my Uni machine.
2012-07-09Better implementation: smarter strategy iterationCarlo Zancanaro
Also add the beginnings of some log stuff, mayhaps.
2012-07-05Forgot a file! Whoops!Carlo Zancanaro
2012-07-05Intermediate (broken) commit - smarter strategyCarlo Zancanaro
2012-07-05Change the set to use a std::set for nowCarlo Zancanaro
This should perform better in cases where we have smaller sets.
2012-07-02Dependency-aware smart fixpoint.Carlo Zancanaro
Slows it down *heaps* for the moment. Still need to add the MaxStrategy part, which should speed it up a fair bit. At the moment it has to do a fair bit more work for no benefit.
2012-06-29Speed up IdSet a bit. I think.Carlo Zancanaro
2012-06-15Remove two systems related to range thingsCarlo Zancanaro
I'll bring them back later, when I redo the range stuff.
2012-06-15Merge commit 'a61d'Carlo Zancanaro
Conflicts: impl/Expression.hpp impl/Operator.hpp impl/Variable.hpp impl/main.cpp
2012-06-15Parameterise fixpoint and strategy improvementCarlo Zancanaro
(command-line arguments specify which to use) Also: - Fix up Complete<T> to work comparing `inf` to 1 (stupid bug) - Clean up the systems/ folder a bit - Change the printed output to differentiate variables and constants (!v/!c, respectively) - Perform a slight optimisation to the strategy-iteration process