
    sg                     J   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 Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@y)    )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                      t        dd      } t        |       | j                  j                  k(  sJ t	        t
        d        y )NG   c                      t        dd      S )Nr$   g      @)r         W/var/www/html/venv/lib/python3.12/site-packages/sympy/stats/tests/test_random_matrix.py<lambda>z'test_GaussianEnsemble.<locals>.<lambda>    s    /S9 r(   )r    r   pspacemodelr"   
ValueError)r$   s    r)   test_GaussianEnsembler.      s3    a A1:'''
:9:r(   c                  N   t        ddd      } t        dd      } t        |      |       t        d      t	        dt        | dz        z  dz        z  dt        t        dd      z  z  z  k(  sJ t        dd	d	
      t        dd	d	
      }}t        d      }t        |      j                  t        |d   |d   |d   fdt        d      z  t	        d|d   dz  z  dz  d|d   dz  z  dz  z
  d|d   dz  z  dz  z
        z  t        t        ||   ||   z
        dz  ||dz   df|ddf      z  dt        t        dd      z  z  z              sJ t        d      }t        |      j                  t        |d|dz  z  t	        d|dz  z  t        z        z  t        dz  z              sJ y )NHr%   U      	   iTintegerpositivejl            s    )r   GUEr   r   r   r   r   r   r	   r   r   dummy_eqr   r   r
   r   )r0   r$   r6   r:   r;   r@   s         r)   test_GaussianUnitaryEnsemblerE   "   s   31%ACA71:a=DGC5A;q(8$991R!Q=O;OPPPP#td3#td3 	ACA#A&//AaD!A$!%tAwJs2qtQw<>AqtQwKM9AqtQwKMIJJC!qt$a'!QUAAq	BCDFr8TUWX>GYDY[\] ] ] 	c
A%a(11&Bq!tGC1a4PR
O<STVXYTY<Y2Z[[[r(   c                  H   t        ddd      } t        ddd      }t        dd      } t        |      |       t	        dt        | dz        z  dz        t        t	        dt        |dz        z  dz        |      z  k(  sJ t        dd	d	
      t        dd	d	
      }}t        d      }t        |      j                  t        |d   |d   |d   fdt        d      z  t	        d|d   dz  z  dz  d|d   dz  z  dz  z
  d|d   dz  z  dz  z
        z  t        t        ||   ||   z
        ||dz   df|ddf      z  dt        z  z              sJ t        d      }t!        |      j                  t        ||t        z  t	        |dz   t        z  dz        z  dz              sJ y )Nr0   r%   _HOr3   r2   r4   r6   Tr7   r:   r;   r<   r5   rA   r@   )r   r   GOEr   r   r   r   r	   r   r   rD   r   r   r   r
   r   r   r0   rG   r$   r6   r:   r;   r@   s          r)   test_GaussianOrthogonalEnsemblerK   1   s   31%A	dAq	!BCA71:a=C5A;q 01(3r%A,q?P;QSU2VVVVV#td3#td3 	ACA#A&//AaD!A$!%d1gIc"QqT1W*Q,1Q4714q1qy{BCCC!qt$q!a%maAY?@ACBHIJ J J 	c
A%a(11&AbDadU2XaZ<PQR<R2STTTr(   c                     t        ddd      } t        ddd      }t        dd      } t        |      |       t	        dt        | dz        z        t        t	        dt        |dz        z        |      z  k(  sJ t        ddd	      t        d
dd	      }}t        d      }t        |      j                  t        |d   |d   |d   fdt        d      z  t	        d|d   dz  z  dz  d|d   dz  z  dz  z
  d|d   dz  z  dz  z
        z  t        t        ||   ||   z
        dz  ||dz   df|ddf      z  dt        t!        dd      z  z  z              sJ t        d      }t#        |      j                  t        |t%        d      |dz  z  t	        d|dz  z  dt        z  z        z  dt        dz  z  z              sJ y )Nr0   r%   rG   rH   r3   r2   r6   Tr7   r:   r;   r<      r4      r@   i   ir5   i  )r   r   GSEr   r   r   r   r	   r   r   rD   r   r   r   r
   r   r   r   r   rJ   s          r)   test_GaussianSymplecticEnsemblerP   @   s   31%A	dAq	!BCA71:a=C5A;/Rb!e_9Mr0RRRRR#td3#td3 	ACA#A&//AaD!A$!%QKBqtQwJqL1QqT1W9Q;61Q471DEEC!qt$a'!QUAAq	BCDEb(STVW.FXDXZ[\ \ \ 	c
A%a(11&AfIadN3sSTVWSWxYZ[]Y]K_<_adegijejaj<k2lmmmr(   c                  z   t        dd      } t        ddd      t        ddd      }}t        d      }t        |       j	                  t        |d   |d	   |d   ft        t        t        t        ||   z        t        t        ||   z        z
        d	z  ||dz   df|dd	f      d
t        dz  z  z              sJ y Nr1   r%   r:   Tr7   ktr<   r2   0   )CUEr	   r   r   rD   r   r   r
   r   r   r   )CUr:   rS   rT   s       r)   test_CircularUnitaryEnsemblerX   O   s    	S!B#td3#td3 	ACA#B'00AaD!A$!%CAadFc!AaD&k12A5AqMAq!9&')"a%x12  r(   c                  t   t        dd      } t        ddd      t        ddd      }}t        d      }t        |       j	                  t        |d   |d	   |d   ft        t        t        t        ||   z        t        t        ||   z        z
        ||dz   df|dd	f      d
t        d	z  z  z              sJ y rR   )COEr	   r   r   rD   r   r   r
   r   r   r   )COr:   rS   rT   s       r)   test_CircularOrthogonalEnsembler\   Z   s    	S!B#td3#td3 	ACA#B'00AaD!A$!%CAadFc!AaD&k12AqMAq!9&')"a%x12  r(   c                  z   t        dd      } t        ddd      t        ddd      }}t        d      }t        |       j	                  t        |d   |d	   |d   ft        t        t        t        ||   z        t        t        ||   z        z
        d
z  ||dz   df|dd	f      dt        dz  z  z              sJ y )Nr1   r%   r:   Tr7   rS   rT   r<   r2   r4   i  )CSEr	   r   r   rD   r   r   r
   r   r   r   )CSr:   rS   rT   s       r)   test_CircularSymplecticEnsembler`   e   s    	S!B#td3#td3 	ACA#B'00AaD!A$!%CAadFc!AaD&k12A5AqMAq!9&'*2q5y23  r(   c            
         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z  d| d   z  | d	   z  z
  d
| d   z  | d   z  z   | d	   dz  z          dz  | d   dz  z   | d	   dz  z   t        | d   dz  d| d   z  | d	   z  z
  d
| d   z  | d   z  z   | d	   dz  z         dz  | d   dz  z   | d	   dz  z         k(  sJ t        t        d        y )NA00r   r<   A01A10A11)r   r   r2   )r<   r<   r4   )r   r<   )r<   r   c                  6    t        t        ddgddgg            S )Nr<   r   r2   )r   r   r'   r(   r)   r*   z-test_JointEigenDistribution.<locals>.<lambda>v   s    5fq!fq!f=M6NO r(   )r   r   r   r   r   r   r"   r-   )As    r)   test_JointEigenDistributionrh   p   sc   q!$fUAq&9:eQ"D1$568 	9A!!$tAdGQJ1T71T71B$BQqwYqQUwEV$VYZ[_Y`bcYc$cddeffdGAI$	$
QqwYqw-> >1T71T7AR RUVW[U\^_U_ _`abbefgkelmnennqrswqxyzqzz|| | | :OPr(   c                  ,   t        dd      } | j                  ddi      }| j                  |j                  k(  sJ t        ddd      }t	        dd      }t        dt        |            }t        ddd|      }t        dddd       }|j                         |k(  sJ d|z  j                  ||i      d|z  k(  sJ d|z  j                  ||i      d|z  k(  sJ d|z  j                  ||i      d|z  k(  sJ d|z  j                  ||i      d|z  k(  sJ y )Nr1   r2   XP)r,   r0   )r+   )	rC   xreplaceargsr   rO   r!   r   r   doit)G1G2rj   r$   h_pspacer0   H2s          r)   test_issue_19841rs   x   s   	S!B	aV	B77bggS!QACA!#WQZ8H31X6A	CAd	3B668q==aC>>1a&!QqS(((aC>>2q'"ac)))bD??Aq6"ad***bD??B7#qs***r(   N)Asympy.concrete.productsr   sympy.core.functionr   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr	   $sympy.functions.elementary.complexesr
   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   sympy.integrals.integralsr   sympy.matrices.denser   "sympy.matrices.expressions.matexprr    sympy.matrices.expressions.tracer   sympy.tensor.indexedr   sympy.statsr   rC   r   r   rI   r   rO   r   r   rV   r   rZ   r   r^   r   r   r   r   sympy.stats.joint_rv_typesr   sympy.stats.rvr    sympy.stats.random_matrix_modelsr    r!   sympy.testing.pytestr"   r.   rE   rK   rP   rX   r\   r`   rh   rs   r'   r(   r)   <module>r      s    + & 0 0 " # 4 6 9 . ' ; 2 ,	' 	' 	' 	' A - Q ';
\Un			Q+r(   