# harold.haroldgcd¶

harold.haroldgcd(*args)

Takes 1D numpy arrays and computes the numerical greatest common divisor polynomial. The polynomials are assumed to be in decreasing powers, e.g. $$s^2 + 5$$ should be given as numpy.array([1,0,5]).

Returns a numpy array holding the polynomial coefficients of GCD. The GCD does not cancel scalars but returns only monic roots. In other words, the GCD of polynomials $$2$$ and $$2s+4$$ is still computed as $$1$$.

Parameters: args (iterable) – A collection of 1D array_likes. gcdpoly (ndarray) – Computed GCD of args.

Examples

>>> a = haroldgcd(*map(haroldpoly,([-1,-1,-2,-1j,1j],
[-2,-3,-4,-5],
[-2]*10)))
>>> a
array([ 1.,  2.])


Warning

It uses the LU factorization of the Sylvester matrix. Use responsibly. It does not check any certificate of success by any means (maybe it will in the future). I have played around with ERES method but probably due to my implementation, couldn’t get satisfactory results. I am still interested in better methods.