I have a working reverser, and right now I am trying to accomplish three important goals. First, making the stream reversal application entirely stand alone. This means that it must be able to read Markovian stream data from disk, translate it into usable form, reverse the stream and then write that back to disk. The Input and Output aspects are a big challenge for me right now, and I am a little nervous to see how that goes this week.
Second, making my applicatione entirely type independent. It will be most useful to the Lahar project if it does not need special treatment in terms of input. I see this as pretty straight forward and will just have to make sure to carefully read through all of the code for possible type-specific issues. For example, time steps were originally just stored as integers, but now we are storing time as a key with its own type that works for non-integer time steps as well.
Finally, I really need to create experiments and test my application to see where it performs best, and in what cases it is most useful. I was hoping to be at this stage earlier, but now I will be working on an experiment layer that is separate from the application itself to test different streams and their properties with reversal. Essentially I have a lot to accomplish in the next few weeks, but I think I am up to the task.