Select Git revision
copar

Hans-Peter Deifel authored
While AbsorbingPolynomial has brought down the running time in many cases, it unfortunately required quite a bit more memory than the old Polynomial, even though the number of states and edges was reduced. The problem here was that: 1. The overall number of labels, weights and H1 values was _not_ reduced, they were just moved into the corresponding type of AbsorbingPolynomial. The only thing saved was the `Sorted` layer on the inner data. 2. On the flip side, the old Polynomial implementation could use very memory efficient unboxed vectors for nearly everything, whereas AbsorbingPolynomial has to store wrapped SomeFunctor values (which are not unboxable). This is now solved by being very memory conscious in the implementation of Label, H1, H3 and Weight for AbsorbingPolynomial. E.g we use the primitive SmallArray type instead of Vector and try to avoid indirections introduced by Maybe or Either wrappers wherever possible.
Name | Last commit | Last update |
---|