U
    ZÊ¹jÒ  ã                   @   s\  d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZmZm Z!m"Z#m$Z$m%Z&m'Z(m)Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<dd„ Z=dd „ Z>d!d"„ Z?d#d$„ Z@d%S )&é    )ÚProduct)ÚLambda)ÚIÚRationalÚpi)ÚS)ÚDummy)ÚAbs)Úexp)Úsqrt)ÚIntegral)ÚMatrix)ÚMatrixSymbol)ÚTrace)ÚIndexedBase)ÚGaussianUnitaryEnsembleÚdensityÚGaussianOrthogonalEnsembleÚGaussianSymplecticEnsembleÚjoint_eigen_distributionÚCircularUnitaryEnsembleÚCircularOrthogonalEnsembleÚCircularSymplecticEnsembleÚJointEigenDistributionÚlevel_spacing_distributionÚNormalÚBeta)ÚJointDistributionHandmade)ÚRandomMatrixSymbol)ÚGaussianEnsembleÚRandomMatrixPSpace)Úraisesc                  C   s0   t ddƒ} t| ƒ| jjkst‚ttdd„ ƒ d S )NÚGé   c                   S   s
   t ddƒS )Nr"   g      @)r   © r$   r$   úc/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/stats/tests/test_random_matrix.pyÚ<lambda>    ó    z'test_GaussianEnsemble.<locals>.<lambda>)r   r   ÚpspaceÚmodelÚAssertionErrorr!   Ú
ValueError)r"   r$   r$   r%   Útest_GaussianEnsemble   s    
r,   c                  C   s~  t dddƒ} tddƒ}t|ƒ| ƒtdƒtdt| d ƒ d ƒ dttddƒ   ksXt‚t	dd	d	d
�t	dd	d	d
� }}t
dƒ}t|ƒ t|d |d |d fdtdƒ td|d d  d d|d d  d  d|d d  d  ƒ tt|| ||  ƒd ||d df|ddfƒ dttddƒ   ƒ¡�s4t‚t	dƒ}t|ƒ t|d|d  td|d  t ƒ td  ƒ¡�szt‚d S )NÚHr#   ÚUé   éýÿÿÿé   é	   ÚiT©ÚintegerZpositiveÚjÚlé   é   é   é   Úsé    éüÿÿÿ)r   ÚGUEr   r   r
   r   r   r   r*   r   r   r   Údummy_eqr   r   r	   r   )r-   r"   r3   r6   r7   r<   r$   r$   r%   Útest_GaussianUnitaryEnsemble"   s$    
BÿJ.ÿÿÿÿ
rA   c                  C   sz  t dddƒ} tdddƒ}tddƒ}t|ƒ| ƒtdt| d ƒ d ƒttdt|d ƒ d ƒ|ƒ ksht‚tdd	d	d
�tdd	d	d
� }}t	dƒ}t
|ƒ t|d |d |d fdtdƒ td|d d  d d|d d  d  d|d d  d  ƒ tt|| ||  ƒ||d df|ddfƒ dt  ƒ¡�s6t‚tdƒ}t|ƒ t||t t|d  t d ƒ d ƒ¡�svt‚d S )Nr-   r#   Ú_HÚOr0   r/   r1   r3   Tr4   r6   r7   r8   r2   r=   r<   )r   r   ÚGOEr   r
   r   r   r*   r   r   r   r@   r   r   r   r	   r   r   ©r-   rB   r"   r3   r6   r7   r<   r$   r$   r%   Útest_GaussianOrthogonalEnsemble1   s&    
FÿJ*ÿÿÿÿ
rF   c                  C   s’  t dddƒ} tdddƒ}tddƒ}t|ƒ| ƒtdt| d ƒ ƒttdt|d ƒ ƒ|ƒ ks`t‚tdddd	�td
ddd	� }}t	dƒ}t
|ƒ t|d |d |d fdtdƒ td|d d  d d|d d  d  d|d d  d  ƒ tt|| ||  ƒd ||d df|ddfƒ dttddƒ   ƒ¡�s<t‚tdƒ}t|ƒ t|tdƒ|d  td|d  dt  ƒ dtd   ƒ¡�sŽt‚d S )Nr-   r#   rB   rC   r0   r/   r3   Tr4   r6   r7   r8   é¢   r1   é   r<   i   iÀÿÿÿr2   iÙ  )r   r   ÚGSEr   r
   r   r   r*   r   r   r   r@   r   r   r   r	   r   r   r   r   rE   r$   r$   r%   Útest_GaussianSymplecticEnsemble@   s&    
>ÿJ.ÿÿÿÿ
rJ   c                  C   s¦   t ddƒ} tdddd�tdddd� }}tdƒ}t| ƒ t|d |d	 |d ftttt	||  ƒtt	||  ƒ ƒd	 ||d df|dd	fƒd
t
d   ƒ¡s¢t‚d S ©Nr.   r#   r6   Tr4   ÚkÚtr8   r/   é0   )ÚCUEr   r   r   r@   r   r   r	   r
   r   r   r*   )ZCUr6   rL   rM   r$   r$   r%   Útest_CircularUnitaryEnsembleO   s    
ÿ( ÿ
ÿÿÿrP   c                  C   s¢   t ddƒ} tdddd�tdddd� }}tdƒ}t| ƒ t|d |d	 |d ftttt	||  ƒtt	||  ƒ ƒ||d df|dd	fƒd
t
d	   ƒ¡sžt‚d S rK   )ÚCOEr   r   r   r@   r   r   r	   r
   r   r   r*   )ZCOr6   rL   rM   r$   r$   r%   Útest_CircularOrthogonalEnsembleZ   s    
ÿ$ ÿ
ÿÿÿrR   c                  C   s¦   t ddƒ} tdddd�tdddd� }}tdƒ}t| ƒ t|d |d	 |d ftttt	||  ƒtt	||  ƒ ƒd
 ||d df|dd	fƒdt
d   ƒ¡s¢t‚d S )Nr.   r#   r6   Tr4   rL   rM   r8   r/   r1   iÐ  )ÚCSEr   r   r   r@   r   r   r	   r
   r   r   r*   )ÚCSr6   rL   rM   r$   r$   r%   Útest_CircularSymplecticEnsemblee   s    
ÿ( ÿ
ÿÿÿrU   c                  C   s  t tdddƒtdddƒgtdddƒtdddƒggƒ} t| ƒtt| d d d| d  | d	   d
| d  | d   | d	 d  ƒ d | d d  | d	 d  t| d d d| d  | d	   d
| d  | d   | d	 d  ƒd | d d  | d	 d  ƒk�st‚ttdd„ ƒ d S )NZA00r   r8   ZA01ZA10ZA11)r   r   r/   )r8   r8   r1   )r   r8   )r8   r   c                   S   s   t tddgddggƒƒS )Nr8   r   r/   )r   r   r$   r$   r$   r%   r&   v   r'   z-test_JointEigenDistribution.<locals>.<lambda>)	r   r   r   r   r   r   r*   r!   r+   )ÚAr$   r$   r%   Útest_JointEigenDistributionp   s    ÿJ
ÿ
ÿ^ÿÿ
rW   c                  C   sú   t ddƒ} |  ddi¡}| j|jks(t‚tdddƒ}tddƒ}tdt|ƒd�}tddd|d�}tdddd d�}| 	¡ |ks~t‚d|  ||i¡d| ksœt‚d|  ||i¡d| ksºt‚d|  ||i¡d| ksØt‚d|  ||i¡d| ksöt‚d S )Nr.   r/   ÚXÚP)r)   r-   )r(   )
r?   ZxreplaceÚargsr*   r   rI   r    r   r   Zdoit)ZG1ZG2rX   r"   Zh_pspacer-   ZH2r$   r$   r%   Útest_issue_19841x   s    

r[   N)AZsympy.concrete.productsr   Zsympy.core.functionr   Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z$sympy.functions.elementary.complexesr	   Z&sympy.functions.elementary.exponentialr
   Z(sympy.functions.elementary.miscellaneousr   Zsympy.integrals.integralsr   Zsympy.matrices.denser   Z"sympy.matrices.expressions.matexprr   Z sympy.matrices.expressions.tracer   Zsympy.tensor.indexedr   Zsympy.statsr   r?   r   r   rD   r   rI   r   r   rO   r   rQ   r   rS   r   r   r   r   Zsympy.stats.joint_rv_typesr   Zsympy.stats.rvr   Z sympy.stats.random_matrix_modelsr   r    Zsympy.testing.pytestr!   r,   rA   rF   rJ   rP   rR   rU   rW   r[   r$   r$   r$   r%   Ú<module>   s4   8
