1. 08 Mar, 2019 1 commit
  2. 07 Mar, 2019 1 commit
  3. 22 Dec, 2018 1 commit
  4. 10 Dec, 2018 2 commits
  5. 19 Nov, 2018 1 commit
  6. 16 Nov, 2018 1 commit
  7. 14 Nov, 2018 1 commit
  8. 09 Nov, 2018 3 commits
  9. 06 Nov, 2018 1 commit
  10. 02 Nov, 2018 6 commits
    • Hans-Peter Deifel's avatar
      Improve memory usage of AbsorbingPolynomial · 2f0142c0
      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
    • Hans-Peter Deifel's avatar
      Add parser tests for AbsorbingPolynomial · ed223e65
      Hans-Peter Deifel authored
      These are just the tests originally from Polynomial. Some of them are
      failing right now.
      ed223e65
    • Hans-Peter Deifel's avatar
      Modularize design of functor expr rewrites · 407614de
      Hans-Peter Deifel authored
      Moves the transformations on functor expressions out of the
      SomeFunctor definition. This was really conflating two unrelated
      purposes and the new design is hopefully much cleaner.
      
      There is now `MA.RewriteFunctors`, which is intended to be a
      collection of rewrite rules on the functor expression, including the
      existing polynomial->absorbingpolynomial one.
      407614de
    • Hans-Peter Deifel's avatar
      cabal: Add bounds to pretty-show · 590d63d9
      Hans-Peter Deifel authored
      590d63d9
    • Hans-Peter Deifel's avatar
      44d08d27
    • Hans-Peter Deifel's avatar
      Implement rudimentary version of AbsorbingPolynomial · a71db9f4
      Hans-Peter Deifel authored
      This currently only works for products of exactly two inner functors.
      a71db9f4
  11. 25 Oct, 2018 2 commits
  12. 24 Oct, 2018 1 commit
  13. 22 Oct, 2018 2 commits
  14. 21 Oct, 2018 1 commit
    • Hans-Peter Deifel's avatar
      Rename MonoidValued functor to GroupValued · 225253ef
      Hans-Peter Deifel authored
      Those functors really require the inverse operation to perform as
      required. A separate functor for monoids that aren't groups is
      feasable, but would not satisfy the runtime complexity requirements.
      225253ef
  15. 04 Oct, 2018 1 commit
  16. 03 Oct, 2018 2 commits
  17. 30 Sep, 2018 1 commit
  18. 27 Sep, 2018 1 commit
  19. 21 Sep, 2018 3 commits
  20. 14 Sep, 2018 1 commit
    • Hans-Peter Deifel's avatar
      Upgrade to GHC 8.4 · 2a8b8950
      Hans-Peter Deifel authored
      The main reason being that we need a newer criterion version to pull
      in fixes for bugs that affected our benchmarks and the easiest way to
      get that was to bump the stack resolver which incidentally also
      upgrades the compiler.
      
      The performance implications of this change are:
      
        - Microbenchmarks stay more or less the same, parsing benchmarks
          seem to get a little bit slower.
        - Real-World benchmarks on PRISM examples seem to get a bit faster
          overall.
      2a8b8950
  21. 07 Sep, 2018 1 commit
  22. 02 Sep, 2018 3 commits
  23. 31 Aug, 2018 1 commit
  24. 29 Aug, 2018 2 commits