import numpy as np
import numpy.linalg as alg
from numpy.polynomial import Polynomial

def Polydiag(A) :
    n = A.shape[0]
    P = Polynomial([1])
    for k in range(n) :
        P = P*Polynomial([-A[k,k],1])
    return P
    
def estMDP(A) :
    P = Polydiag(A).coef
    Q = np.poly(A)[::-1]
    test = True
    n = A.shape[0]
    for k in range(n) :
        if abs(P[k]-Q[k]) > 1e-5 :
            test = False
    return test
    
A1 = np.array([[-1,0,3],[-3,2,3],[0,0,2]])
A2 = np.array([[5,2,2],[-8,4,0],[1,1,4]])
A3 = np.array([[1,1,1],[-1,1,1],[-2,3,6]])
A4 = np.array([[1,1,1,1],[0,1,1,1],[0,-1,1,1],[0,-2,3,6]])
A5 = np.array([[10,-1,4,7],[-5,1,1,2],[1,0,5,4],[0,-2,3,6]])
A6 = np.array([[1,2,3,4],[2,1,0,-1],[0,0,3,2],[0,0,-2,-1]])
