Oscar Benjamin
Oscar Benjamin
> Is the following rewrite sufficient? It returns redundant cases: ```python In [3]: _cnf2dnf([[x-1, x-2], [x-2, x-3]]) Out[3]: [{x - 2, x - 1}, {x - 3, x - 1},...
> no system should mean no solution and hence the returns should be `[]`, `([], [])` and `False` respectively No equations means that anything is a solution because any value...
> an empty list of equations that must all be satisfied is equivalent to True: Here is another way to look at this: ```python In [3]: factor_system_bool([x, y, z]) Out[3]:...
I think that change looks good. It is still quadratic though. > it seems like this is something that should exist in the logic module for finding a simplified form...
I think if you want to optimise `_cnf2dnf` there is maybe a better way by handling the recursion better so that redundant sets are not generated in the first place.
I'm not sure this achieves a clean useful separation between what will happen in the superclass and what will happen in the subclass yet. The code generally needs a bit...
I don't think that there is a better way to handle `clear_denoms` right now apart from just using `mul_ground`. It can still be useful to separate the implementations though so...
Should it not be: ```python if len(eval_dict) == ring.ngens: return self._evaluate(eval_dict) else: p = self._subs(eval_dict) ... ```
The timings look good.
There are functions for converting polynomials between rings already. That code does not need to be reimplemented.