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.
Returns:gcdpoly (ndarray) – Computed GCD of args.


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


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.