WIP: CVODE-like Implicit Integration
Currently contains a first pass at CVODE-like integration with Leap/Dagrt, which presents a few issues, namely:
- Turning while loops into phases induces requirement that a lot of data be persistent between phases. This persistent data ranges from state-sized arrays (correction vector, error weights) to scalars and flags.
- Given the presence of a few nested while loops in CVODE's control flow, this effect compounds fairly quickly.
- A number of for-loops possess order-dependent limits, and given that CVODE is a variable-order adaptive integrator this won't fly with code generation.
- The above issue could potentially be mitigated with different phases for each order (given that the set of orders CVODE integrates at is finite), but then we'd have a preponderance of phases that I think would obfuscate the code considerably.