o
    ‚¡eV
  ã                   @   sÌ  d dl Zd dlmZ d dlmZmZmZ d dlm	Z	m
Z
 e dd gd dgg¡Ze g d¢g¡Zd ggdd	ggd gggd ggd
d	ggd gggdggdd	ggdgggdggd
d	ggdgggede d¡eged
e d¡egedeeed  ƒ ej e¡eed  ƒ ggZd	dgddggg d¢gd	gdgdggg d¢g d¢gd	dgddgddggd	dgddggg d¢gd	gdgdggg d¢g d¢gd	dgddgddggg d¢g d¢g d¢ggZdd„ Zdd„ Zdd„ Zd d!„ ZdS )"é    N)Únorm)Úassert_Úassert_allcloseÚassert_equal)ÚpolarÚeighé   é   )é   r   r   Úrightr
   Úlefté	   é   )r
   r   r	   )r	   r   r   é   y      @      @)r
   r   ù              @r   )r
   r   y      @       @)r	   y      @      ð¿y       €      Ày      @       Ày      @      à?)i'  é
   r
   )éÿÿÿÿr   r   )r   r
   r   c                 C   s0   t | |d\}}t||dd t||dd d S )N©ÚsideçVçž¯Ò<©Úatol)r   r   )Úar   Ú
expected_uÚ
expected_pÚuÚp© r   úS/var/www/myenv/lib/python3.10/site-packages/scipy/linalg/tests/test_decomp_polar.pyÚcheck_precomputed_polar#   s   r   c           	      C   s¾  t  t  t¡j¡}t  | ¡}|j\}}t| dd\}}t|j||fƒ t|j||fƒ t	| 
|¡| |d ||krJt	| ¡ j 
|¡t  |¡dd nt	| 
| ¡ j¡t  |¡dd t	| ¡ j|ƒ t|dd}|t|ƒdk }t|dk ¡ ƒ t| d	d\}}t|j||fƒ t|j||fƒ t	| 
|¡| |d ||kr¯t	| ¡ j 
|¡t  |¡dd nt	| 
| ¡ j¡t  |¡dd t	| ¡ j|ƒ t|dd}|t|ƒdk }t|dk ¡ ƒ d S )
Nr   r   r   r   T)Úeigvals_onlyg›+¡†›„=r   r   )ÚnpÚsqrtÚfinfoÚfloatÚepsÚasarrayÚshaper   r   r   ÚdotÚconjÚTÚeyer   Úabsr   Úall)	r   Úproduct_atolÚaaÚmÚnr   r   ÚevalsÚnonzero_evalsr   r   r   Úverify_polar+   s2   

" " r4   c                  C   s$   t D ]\} }}}t| |||ƒ qd S ©N)Úprecomputed_casesr   )r   r   r   r   r   r   r   Útest_precomputed_casesR   s   ÿr7   c                  C   s   t D ]} t| ƒ qd S r5   )Úverify_casesr4   )r   r   r   r   Útest_verify_casesW   s   
ÿr9   )Únumpyr!   Únumpy.linalgr   Únumpy.testingr   r   r   Úscipy.linalgr   r   ÚarrayÚdiag2Úa13r+   r*   r(   r6   r8   r   r4   r7   r9   r   r   r   r   Ú<module>   s<    *ùõ'