[SciPy-user] poly1d equality test
Christian Kristukat
ckkart at hoc.net
Mon Feb 27 19:40:51 CST 2006
Ryan Krauss wrote:
> Is there an easy way to test for the equality of two poly1d objects?
>
> I have the following problem:
> In [36]: p1
> Out[36]: poly1d([ 6.66666667, 0. , -49. ])
>
> In [37]: p2
> Out[37]: poly1d([ 6.66666667, 0. , -49. ])
>
> In [38]: p1==p2
> Out[38]: False
>
> In [39]: (p1.coeffs==p2.coeffs).all()
> Out[39]: True
>
> It seems like == is only testing if they are the same object. I am
> trying to write a class for transfer functions which model a system as
> a numerator and denominator poly1d. When I multiply or divide them I
> need to check if the numerator and denominators cancel exactly.
Hi Ryan,
you could subclass poly1d and define the special method __eq__ to which is
called in situations lika a==b:
In [3]: class p(poly1d):
...: def __eq__(self,other):
...: return (self.coeffs==other.coeffs).all()
...:
...:
In [4]: p1 = p([ 6.66666667, 0. , -49. ])
In [5]: p2 = p([ 6.66666667, 0. , -49. ])
In [6]: p1 == p2
Out[6]: True
Regards, Christian
More information about the SciPy-user
mailing list