o
    lhA                     @   sR   d dl mZ d dl mZ ejjZdddZdddZdddZd	d
 Zdd Z	dS )    )mp)libmpc                 C   s0  |dkr	t d|  | j}t| \}}|dkr!t d| t d| || |  }tdttj }d}t|D ]}t|D ]}	|t	| |	|f ||	|f  7 }q@q:|||  }d}
t|D ]}t|d |D ]}	|
t	||	|f 7 }
qiq`|dkrt d||
 |dkrt d	| ||k sJ |
dksJ d S )
N   zoriginal matrix (hessenberg):
Q:
zH:
皙?r      zdifference (H):B:
)
printrowsr   
hessenbergtranspose_conjexplogepsxrangeabs)AverbosenQHBr   err0xyerr1 r   k/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/tests/test_eigen.pyrun_hessenberg	   s4   


"
r   c                 C   s  |dkr	t d|  | j}t| \}}|dkr!t d| t d| || |  }||  }tdttj }d}t|D ]}	t|D ]}
|t	| |
|	f ||
|	f  7 }qFq@|||  }d}t|D ]!}	t|D ]}
|	|
kr|||
|	f  d8  < |t	||
|	f 7 }qlqf|||  }d}t|D ]}	t|	d |D ]}
|t	||
|	f 7 }qq|dkrt d||| |dkrt d| ||k sJ ||k sJ |dksJ d S )	Nr   zoriginal matrix (schur):
r   zR:
r   r   zdifference (S):r   )
r	   r
   r   schurr   r   r   r   r   r   )r   r   r   r   Rr   Cr   r   r   r   r   err2r   r   r   	run_schur.   sH   


"
r#   c           
      C   s"  |dkr	t d|  | j}tj| ddd\}}}|dkr*t d| t d| t d| tdttj }d	}t|D ]>}| |d d |f  || |d d |f   }	t|t	|	}||d d f |  ||d d f ||   }	t|t	|	}q;|||  }|d	krt d
| ||k sJ d S )Nr   zoriginal matrix (eig):
T)leftrightzE:
zEL:
zER:
r   r   zdifference (E):)
r	   r
   r   eigr   r   r   r   maxmnorm)
r   r   r   EELERr   r   ir   r   r   r   run_eig\   s&   



,,
r-   c                  C   sL  d} t dD ]}dtt d  }t dkrGdt|| d }t dkrF|d9 }t |D ]}t |D ]}t|||f |||f< q6q0nJdt|| d ddt|| d   }t dkr|d9 }t |D ]%}t |D ]}tt|||f dtt|||f   |||f< qqqkt|| d t|| d t	|| d qd S )	Nr      r   g      ?r   
   y              ?r   )
r   intr   rand
randmatrixreimr   r#   r-   )vr,   r   r   r   r   r   r   r   test_eig_dyn|   s.   ,:r7   c                  C   s
  d} g }t g dg dg dg}|| ||  t g dg dg dg}|| ||  t g dg dg dg}|| ||  t g dg d	g d
g}|| ||  |D ]}t|| d t|| d t|| d qnd S )Nr   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r0   )r   matrixappend	transposer   r#   r-   )r6   ASr   r   r   r   test_eig   s>   







r<   N)r   )
mpmathr   r   backendr   r   r#   r-   r7   r<   r   r   r   r   <module>   s   

%
. 