@artofscience Could you take a look at the proposed changes?
Unfortunately not much progress on reducing the overlap between the IP solver variants. However, I did reoder the code a little:
Some more verbose variables names to clarify the main optimisation loop
Moved the variables lists (self.w) to a class carrying the variables, such that we can access the variables by names, for instance self.w[0] becomes self.w.x. This might make the equations a bit more readable, as it directly states the variable names rather then list indices.
I have not (yet) checked if this might have implications for performance though, but I will still try to do that. The tests still seem to pass, so I assume everything is still working as intended, but we might want to double check before merging this request.
@artofscience Could you take a look at the proposed changes?
Unfortunately not much progress on reducing the overlap between the IP solver variants. However, I did reoder the code a little:
self.w
) to a class carrying the variables, such that we can access the variables by names, for instanceself.w[0]
becomesself.w.x
. This might make the equations a bit more readable, as it directly states the variable names rather then list indices.I have not (yet) checked if this might have implications for performance though, but I will still try to do that. The tests still seem to pass, so I assume everything is still working as intended, but we might want to double check before merging this request.