The merge request !1 (diffs) is the current source for the code interfaces and suggestions on how to modify the simulation code to use them.
The merge request doesn't yet have the reducing code ported to dense matrices (but the algorithm is tested on alternate matrix-like objects). The idea is to take a scatter matrix graph similar to this fabry-perot with modulator system
And then perform Gaussian eliminations on it to reduce it to more like
The algorithm will check that numerical stability is not sacrificed. Once the graph is reduced as far as possible (which was a total inversion in this case). The algorithm then switches to a generic inversion code such as from suitesparse. The speedup is from the scatter graph not having to micromanage sparsity and stability.
Also included are tests of the included interface and some suggestions that finesse3 should begin using pytest. If used with pytest-watch, development is faster than using notebooks and leaves tests.