GSoC 2018: SymPy - Week 10
This week SymPy 1.2 was released, which included the discrete
module. The complete changelog for the SymPy 1.2 is here. I started the week by cleaning up discrete
module, improving the API of public convolution
method by attending to reviews by Aaron and Kalevi and fixing issue #14901 reported by Aaron in PR #14907.
The PR #14907 has been merged successfully and will be part of SymPy 1.2.1.
Late this week, I started working on the convolution module for inclusion of covering_product
.
The PR #14298 included the same with documentation, doctests and unit tests.
The implementation of covering_product
uses Möbius Transform with subset enumeration (mobius_transform(..., subset=True)
and inverse_mobius_transform(..., subset=True)
). As included in the PR, the usage for the same is:
>>> from sympy import symbols, covering_product
>>> u, v, x, y, z = symbols('u v x y z')
>>> covering_product([u, v], [x, y])
[u*x, u*y + v*x + v*y]
>>> covering_product([u, v, x], [y, z])
[u*y, u*z + v*y + v*z, x*y, x*z]
Looking forward to the next week, where I will be implementing intersecting_product
as the final method for the convolution module.