Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

copar

Hans-Peter Deifel's avatar
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.
2f0142c0
History
Name Last commit Last update