
    sgiL                     z   d dl mZ d dlmZmZ d dlmZmZmZm	Z	 d dl
mZ d dlmZ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"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l3m4Z4 d dlm5Z5 d dl6m7Z7  ed      Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAy)    )Sum)
Derivativediff)Rationaloopizoo)S)DummySymbol)RisingFactorialbinomial	factorial)	conjugate)exp)floor)sqrt)cos)gamma)hyper)assoc_laguerreassoc_legendre
chebyshevtchebyshevt_root
chebyshevuchebyshevu_root
gegenbauerhermitehermite_probjacobijacobi_normalizedlaguerrelegendre)laguerre_poly)roots)	unchanged)ArgumentIndexError)raisesxc                     t        d      t        d      t        d      t        dt              dk(  sJ t        dt              dz  dz  z
  t        dz  dz  z   dz   z  z   k(  sJ t        t              t        dz         t	        t
        j                  z   t              z  t        dz  dz         z  k(  sJ t         t              dz  t         dz    dz  z  z  t        dz   dz  z  z  t        t              z  t         z         z  t        z   dz         z  t        z         t        dz         z  z  k(  sJ t         t              t         dz   dz  z  t        dz    dz  z  z  t        t              z  t         z   dz         z  t        dz         z  k(  sJ t        ddt              t        t              k(  sJ t        t
        j                  t
        j                  t              t        t        dd            t        t              z  t        dz         z  k(  sJ t        t        dd      t        dd      t              t        t
        j                        t        t              z  t              z  k(  sJ t        t              } t        | t              sJ t        t               dz  t        t              z  k(  sJ t        d      d z  t        z   dz         z  t         z
   fdz   fd      z  t              t        dz         z  z  k(  sJ t        d      t        dz         t              z  k(  sJ t        d	d
      }t        |t               t         t        z   |z   dz   |      z  k(  sJ t#        t        t               sJ t%        t        |t                    t        |t%              t%              t%        t                    k(  sJ t'        d      }t)        t        t                    t+        t        t                    k(  sJ t)        t        t                    j-                  t/        t        t              d|z  z   z   dz   t        |z   dz   | z         z  t        |t              z  | z   t        |z   z   dz   | z         z  z  z   |z   z   z   dz   z  |ddz
  f            sJ t)        t        t                    j-                  t/        d| z   z  d|z  z   z   dz   z  t        |z   dz   | z         z  t        |t              z  | z   t        |z   z   dz   | z         z  z  t        t              z   |z   z   z   dz   z  |ddz
  f            sJ t)        t        t              t              dz  dz  z   dz  z   t
        j                  z   t        dz
  dz   dz   t              z  k(  sJ t1        t              t        t              t3        dz   dz   z  t        z   dz         z  t        z   dz         z  z   dz  z   dz   t              z  t        z   z   dz         z  z        z  k(  sJ t5        t6        fd       t5        t6        d        t        t              j9                  t.              j-                  t/        t
        j                  t        dz  z
  |z  t         |      z  t        |z   dz   | z         z  t        z   z   dz   |      z  t        |      z  |df      t              z        sJ t        t              j9                  d      j-                  t/        t
        j                  t        dz  z
  |z  t         |      z  t        |z   dz   | z         z  t        z   z   dz   |      z  t        |      z  |df      t              z        sJ t5        t:        fd       y )Nnabr            mTpositivekc                  (    t        d t              S Ng )r    r)   )r,   r-   s   f/var/www/html/venv/lib/python3.12/site-packages/sympy/functions/special/tests/test_spec_polynomials.py<lambda>ztest_jacobi.<locals>.<lambda>N   s    vdAq!4     c                  <    t        t        dd      ddt              S )NT)r4   integerr.   r/   )r    r   r    r:   r8   r9   ztest_jacobi.<locals>.<lambda>O   s    veT4&H!QPRS r:   
polynomialc                  F    t         t              j                  d      S )N   )r    r)   fdiff)r,   r-   r+   s   r8   r9   ztest_jacobi.<locals>.<lambda>W   s    vaAq'9'?'?'B r:   )r   r    r)   r   r   r
   Halfr   r   r   r#   r   r   r   
isinstancer   r   r&   r   r   r   r   dummy_eqr   r!   r   r(   
ValueErrorrewriter'   )Xr2   _kr,   r-   r+   s      @@@r8   test_jacobirI      s5	   sAsAsA!Q1"""!Q11qsQ!ac	A->!>>>>!Q1	Aq"QAFF
A."//>qsQw/J"K K K K!QAB7QBFqbd+;#;QUacN#J>Z[]^`aKb#b#,aR!V#4$55:1q5195E$FGPQRUVQVGWX]^_bc^cXdGd$f g g g!aRAQBFac?AEaRT?#B>RSUVXYCZ#Z#(!a!#4$55:1q5\$B C C C!Q1!Q///!QVVQVVQ'?A,%a+,,,5a!e,<,= = = =!Xb!_hr1oq9_	>a#>$$-aL>1 1 1 1 	q!QAa   !QA22'&Aq!*<"<<<<!Q1aRq1uqy)9!9%
a!q1uh;$ "$%.q\%A,%>"@ @ @ @!Q1Q!:9Q<!GGGGsT"A!Q2"_QUQY]A%F"FFFFVQ1b)))VAq!Q'(q)A,	!il;< < < 
sBq!Q"A&*VAq!Q5G*KKKKq!Q"A&//VAq!Q5G	
2A	?26A:sQw??r1	1A 	aa!a"qAA	C6CEG!V
FFF5 1a!en1& ' ' ' q!Q"A&//bRC!G_ad	G
GG 6"26A:sQw7688>r1a8K6L#'?26A:>B37;	;6=?Ea	1@6 Q
Q"5$ ')!QU^15 6 6 6 q!Q"A&	
1qsQqS166	!6!a%QAq#AAB B B Q1a(1aAtAA	N5Q3C$CE!a%RS)DT$T'(1uqs{Q	!&DU1q5ST9WX=EY&Y%[  \ \] ] ] :45
:ST!Q1%%c*33C!A#
9aR$9%%4R!VaZ"q%I9JA	Ar*9++4R=99;=q!*5FFOPQl5S T T T !Q1%%l3<<S!&&1Q3,
BaR$B%%4R!VaZ"q%IBJA	Ar*B++4R=B9;=q!*>FFOPQl>S T T T BCr:   c                     t        d      t        d      t        dt              dk(  sJ t        dt              dz  t        z  k(  sJ t        dt               t        dz  ddz  z  dz  z   z  z   k(  sJ t        dt              t        dz  ddz  z  dz  ddz  z  z   t        dd      z  z   z  t        d	dz  z  dz  z
  z  z   k(  sJ t        d
t              dk(  sJ t        t        j
                  t              t        t              k(  sJ t        dt              t        t              k(  sJ t        d
t              dk(  sJ t        t              } t        | t              sJ t        t               d
z  t        t              z  k(  sJ t        d      dz  t        t              z  t        dz  z         z  t              t         dz  t        j
                  z         z  t        dz         z  z  k(  sJ t        d      t        dz  z         t        dz        t        dz         z  z  k(  sJ t        t        dd      d
      t        u sJ t        t        dd      d
      t        d      t        t        t        j                  dz  z   z        z  t        t        j
                  z         z  t        t              t        dz         z  z  k(  sJ t        dd      }t        |t              t        t!        |      z  k(  sJ t#        t        t              sJ t%        t        t                    t        t%              t%        t                    k(  sJ t'        d      }t)        t        t                    t+        t        t                    k(  sJ t)        t        t                    j-                  t/        dd
| z   z  z  dz   |z   z  t        |t              z  | z   |dz  z   z   z  z  d|z  dz   |dz  z   d|z  dz  z   dz   z  z  d|dz  z   z   z  z   t        t              z  z   |ddz
  f            sJ t)        t        t              t              dz  t        dz
  dz   t              z  k(  sJ t        t              j1                  t.              j-                  t/        d
|z  dt        z  d	|z  z   z  z  t!        | z         z  t3        |      t3        d	|z  z         z  z  |dt5        dz        f            sJ t        t              j1                  d      j-                  t/        d
|z  dt        z  d	|z  z   z  z  t!        | z         z  t3        |      t3        d	|z  z         z  z  |dt5        dz        f            sJ t7        t8        fd       y )Nr+   r,   r   r.   r/   r1         r0   r2   Tr3   r5   r>   c                  D    t         t              j                  d      S NrK   )r   r)   rA   )r,   r+   s   r8   r9   z!test_gegenbauer.<locals>.<lambda>   s    z!Q':'@'@'C r:   )r   r   r)   r   r
   rB   r#   r   rC   r   r   r   r	   r   Oner   r   r&   r   r   r   r   rD   r   rF   r   r   r(   r'   )rG   r2   rH   r,   r+   s      @@r8   test_gegenbauerrQ   Z   s   sAsAaA!###aA!A#a%'''aA1"q!tQq!tVac\':"::::aA	1a1fQh1a4!HQN"223aAqD1Q36GGH H H b!Q1$$$a#x1~555aA*Q"2222aQ1$$$1aAa$$$aQBB7:aA+>#>>>>aA!Q$tBx-a!A#g#ar!taff}!55eAElB#D D D DaA%!a.%!*U1q5\2I"JJJJa!Q,333a!Q,aRQUU1W=M9N1NAJ'2()-b%A,)>2@ A A A 	sT"AaB2oa&;#;;;;ZAr***Z1a()Z9Q<ST-VVVV	sB
1a#Q':jAq6I1+MMMM
1a#Q'00asQw6G!6K	a6B1%6&)+a"qs(Q,'?6AEFrT	F
!A#X"qs
Q'E)+,b1Q3hl+;E<=G1
>D6 1a!en2    
1a#Q'1Q3z!a%Q/J+JJJJaA&&s+44R"HacRUQY''B37(CC
B-	"R%!),
,.02AuQqSz/B	DE E E aA&&|4==R"HacRUQY''B37(CC
B-	"R%!),
,.02AuQqSz/B	DE E E CDr:   c                     t        dt              dk(  sJ t        dt              t        k(  sJ t        dt              dt        dz  z  dz
  dz  j                         k(  sJ t        dt              dt        dz  z  dt        z  z
  dz  j                         k(  sJ t        dt              dt        dz  z  dt        dz  z  z
  dz   d	z  j                         k(  sJ t        dt              d
t        dz  z  dt        dz  z  z
  dt        z  z   d	z  j                         k(  sJ t        dt              dt        dz  z  dt        dz  z  z
  dt        dz  z  z   dz
  dz  j                         k(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk7  sJ t        dd      dk(  sJ t        dt              dk(  sJ t        d      } t        d| z
  t              j	                  | d      dt        dz  z  dt        z  z
  dz  j                         k(  sJ t        t        dt              t              t        t        dd      t        dd      t        d      z  z
        dt        t        dd      t        dd      t        d      z  z
         dt        t        dd      t        dd      t        d      z  z         dt        t        dd      t        dd      t        d      z  z          dik(  sJ t        d      t        t              }t        |t               sJ t        t         t              sJ t        d      t        t              t        t        j                  dz  z
        t        dz  dz         z  z  k(  sJ t        d      dk(  sJ t        t              t        u sJ t         t              t        dz
  t              k(  sJ t        t               dz  t        t              z  k(  sJ t        t          | z   t              sJ t        t        t                    t        t        t                    k(  sJ t!        t        t              t              t        t        t              z  t        dz
  t              z
  z  t        dz  dz
  z  k(  sJ t!        t        t                    t#        t        t                    k(  sJ t%        d      }t        t              j'                  t(              j+                  t)        d|z  t        j                  t        dz  z
  |z  z  t        dz  t        j                  z   | z   z  z  t-        |      dz  z  |df            sJ t        t              j'                  d      j+                  t)        d|z  t        j                  t        dz  z
  |z  z  t        dz  t        j                  z   | z   z  z  t-        |      dz  z  |df            sJ t/        t0        fd       t/        t0        fd       y )Nr   r.   r/   r1   r@   rK   #      rL   ?   F            i;  i      
   r0      r5      r+   r>   c                  B    t         t              j                  d      S Nr.   r#   r)   rA   r+   s   r8   r9   ztest_legendre.<locals>.<lambda>       x1~';';A'> r:   c                  B    t         t              j                  d      S Nr1   ra   rb   s   r8   r9   ztest_legendre.<locals>.<lambda>   rc   r:   )r#   r)   expandr   subsr%   r   r   rC   r&   r   r   r
   rB   r   r   r   r   r   rF   r   rD   r   r(   r'   )r5   rG   rH   r+   s      @r8   test_legendrerh      s   Aq>QAq>QAq>qAvz1n446666Aq>qAv!|Q.668888Aq>r!Q$wAqD014a7??AAAAAq>r!Q$wAqD02a47:BBDDDDAq>s1a4x#ad(2SAX=A2EMMOOOOBq   Br!!!B?aB?aB?aB?aB?asAAE1""1a(a1fqslA-=,E,E,GGGG!Q#Xa^hq"od2h667	hq!nx2tBx77	88!Xa^hq"od2h667	hq!nx2tBx77	88!	(    	sAAAa"""Xq!$$$Aq>T"XuQVVac\':51q>'IJJJJAq>QAr?b   QB?hq1ua0000Ar?rAghq!n4444XrAvq)))Xa^$IaL(AAAAA"	1Xa^hq1ua0011a4!8<= = =A"j!Q&CCCC	sBAq>!!#&//R"HaffaC?> 5cAFFlrcAg.5//72/A5BDF1:1O P P PAq>!!,/88b2XqvvaCHG >cAFFlrcAg.>//72/A>BDF1::O P P P
>?
>?r:   c                  $   t         t        dt        dz  z
        }  ddt              dk(  sJ  ddt              t        k(  sJ  ddt              |  k(  sJ  ddt              dt        dz  z  dz
  dz  k(  sJ  ddt              dt        z  | z  k(  sJ  ddt              d| dz  z  k(  sJ  ddt              dt        dz  z  dt        z  z
  dz  k(  sJ  ddt              j                         dddt        dz  z  z
  z  dz  j                         | z  j                         k(  sJ  ddt              dt        z  | dz  z  k(  sJ  ddt              d| dz  z  k(  sJ  dd	t               ddt               dz  k(  sJ  dd
t               ddt              dz  k(  sJ  dd	t               ddt               dz  k(  sJ  ddt               ddt               dz  k(  sJ  dd
t               ddt              dz  k(  sJ  dd	t               ddt               dz  k(  sJ t	        d      t	        d       t              }t        |t               sJ  dt              t        t              k(  sJ  d      dz  t        t              z  t         dz  dz  z
  t        j                  z         t         dz  dz  z   dz         z  z  k(  sJ t         t              t              t        z  t        t              z  z   t        dz
  t              z  z
  t        dz  dz
  z  k(  sJ t        d      } t              j                  t              j                  dt        dz  z
  dz  z  t        d	|z  d z  z  t        d
|z  z   z
  z  z  t!        d
|z  dz  z         z  t!        |      t!        | z         z  t!        d
|z  z   z
        z  z  |dt#        dz  dz  z
        f      z        sJ  t              j                  d      j                  dt        dz  z
  dz  z  t        d	|z  d z  z  t        d
|z  z   z
  z  z  t!        d
|z  dz  z         z  t!        |      t!        | z         z  t!        d
|z  z   z
        z  z  |dt#        dz  dz  z
        f      z        sJ t%        t        t                    t        t%              t%        t                    k(  sJ t'        t(        fd       t'        t(        fd       t'        t*        fd       t'        t*        fd       t'        t*        fd       y )Nr.   r/   r   r1   r@   rW   ir0   rM      rX     x      r+   r2   r5   r>   c                         ddt               S )Nr   r.   r)   Plms   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   s    s1a| r:   c                         ddt               S )Nr0   r.   rp   rq   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   s    s2q!} r:   c                  >      t               j                  d      S r`   r)   rA   rr   r2   r+   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>       s1a|'9'9!'< r:   c                  >      t               j                  d      S )Nr/   ru   rv   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   rw   r:   c                  >      t               j                  d      S rO   ru   rv   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   rw   r:   )r   r   r)   rf   r   rC   r#   r   r   r
   rB   r   r   rF   r   rD   r   r   r   r(   rE   r'   )QrG   rH   rr   r2   r+   s      @@@r8   test_assoc_legendrer{      s   
CQAXAq!Q<1q!Q<1q!Q<A2q!Q<AadFQJ>)))q!Q<2a46!!!q!Q<1QT6!!!q!Q<AadFQqSL!++++q!Q< q!a1f*~a'7%@%@%BQ%F$N$N$PPPPq!Q<2a4!Q$;&&&q!Q<3A:%%% q"a=SAq\M!O+++q"a=C1aLO+++q"a=SAq\M!O+++q"a=SAq\M#----q"a=C1aL,,,,q"a=SAq\M",,,,sAsAAq!Aa(((q!Q<8Aq>)))q!Q<1a4R=%1qs
661" +##(!A!a#8+9 : : : : Aq!a QqS1a)@%@Qq1ua33&467dQh%@ @ @ @ 
sBq!Q<$--AX1c2(1r7"21r"uqy1}3E"EieackG #%bM)RC!G*<<Yr"uqyH > #!U1Q319-.0 01 1 1 q!Q<-66AX1c2(1r7"21r"uqy1}3E"EieackG #%bM)RC!G*<<Yr"uqyH > #!U1Q319-.0 01 1 1 ^Aq!,-q)A,	!56 6 6
:+,
:,-
<=
<=
<=r:   c                     t        dt              dk(  sJ t        dt              t        k(  sJ t        dt              dt        dz  z  dz
  k(  sJ t        dt              dt        dz  z  dt        z  z
  k(  sJ t        dd      D ]B  t              D ]  } t        |       }t        |      dk(  rJ  t	        t
        fd       D t        dd      D ]B  t              D ]  } t        |       }t        |      dk(  rJ  t	        t
        fd       D t        d      t        t              }t        |t               sJ t        t         t              sJ t        t               d	z  t        t              z  k(  sJ t         t              t        t              k(  sJ t        d      t        t        z  dz        k(  sJ t        d      dk(  sJ t        t              t        u sJ t        t        t                    t        t        t                    k(  sJ t        t        t              t              t        dz
  t              z  k(  sJ t        t              }t        |t              sJ t        d
      }t        t               d	z  t        t              z  k(  sJ t         t              t        dz
  t               k(  sJ t        t         |z   t              sJ t        d      t        t        z  dz        k(  sJ t        d      dz   k(  sJ t        t              t        u sJ t        t        t                    t        t        t                    k(  sJ t        t        t              t              t         t        t              z  dz   t        dz   t              z  z   t        dz  dz
  z  k(  sJ t!        d      }t        t              j#                  t$              j'                  t%        t        d|z  z   z  t        dz  dz
  |z  z  t)        d|z        z  |dt+        dz        f            sJ t        t              j#                  d      j'                  t%        t        d|z  z   z  t        dz  dz
  |z  z  t)        d|z        z  |dt+        dz        f            sJ t        t              j#                  t$              j'                  t%        d	|z  dt        z  d|z  z   z  z  t-        | z         z  t-        |      t-        d|z  z         z  z  |dt+        dz        f            sJ t        t              j#                  d      j'                  t%        d	|z  dt        z  d|z  z   z  z  t-        | z         z  t-        |      t-        d|z  z         z  z  |dt+        dz        f            sJ t	        t.        fd       t	        t.        fd       t	        t.        fd       t	        t.        fd       y )Nr   r.   r/   r1   rK   c                      t                S N)r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>      ?1a#8 r:   c                      t                S r~   )r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>
  r   r:   r+   r0   yr5   rM   r>   c                  B    t         t              j                  d      S r`   r   r)   rA   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>7      z!Q'7'='=a'@ r:   c                  B    t         t              j                  d      S re   r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>8  r   r:   c                  B    t         t              j                  d      S r`   r   r)   rA   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>9  r   r:   c                  B    t         t              j                  d      S re   r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>:  r   r:   )r   r)   ranger   r(   rE   r   r   r   rC   r&   r   r   r   r   r   r   rF   r   rD   r   r   r   r'   )r5   zrG   r   rH   r+   s        @r8   test_chebyshevr      s   aq   aq   aqAvz)))aqAv!|+++1a[ :q 	)A1%Aa#q(((	) 	z89	: 1a[ :q 	)A1%Aa#q(((	) 	z89	: 	sA1aAa$$$ZA&&&a!a
1a(8 8888qb!
1a 0000as2a46{***aq   a"""Z1%&*Q	!*EEEE
1a !$*QUA*>(>>>>1aAa$$$sAa!a
1a(8 8888qb!AE1!5 5555Z!a+++as2a46{***aq1u$$$a"""Z1%&*Q	!*EEEE
1a !$
Jq!	Az!a%';;	;adQhGH H H 
sBa##C(11#a"R%!)ndQh^7$$,Q"$5768:AuQqSz7J3L M M Ma##L1::3q2b519~dQh^@$$,Q"$5@68:AuQqSz7J<L M M Ma##C(11#rBh!"uqy@" 7""+RC!G"4756?m B+7,7-/11eAaCj.A3C D D D a##L1::3Rx1"uqyI" @""+RC!G"4@56?m B+7,@-/11eAaCj.A<C D D D @A
@A
@A
@Ar:   c                     t        dt              dk(  sJ t        dt              dt        z  k(  sJ t        dt              dt        dz  z  dz
  k(  sJ t        dt              dt        dz  z  dt        z  z
  k(  sJ t        dt              dt        dz  z  d	t        dz  z  z
  dz   k(  sJ t        d
t              dt        d
z  z  dt        dz  z  z
  dt        dz  z  z   dz
  k(  sJ t        d      t        t         t              sJ t        t               dz  t        t              z  k(  sJ t        t          t              sJ t        d      dz  t	        t
              z  t        t        j                  dz  z
        z  k(  sJ t        t              t        u sJ t        t        t                    t        t        t                    k(  sJ t        d      } t        t              j                  t              j                  t              t        d| z  dt        z  d| z  z   z  z  t        |       t        d| z  z         z  z  | dt!        dz        f      z        sJ t        t              j                  d      j                  t              t        d| z  dt        z  d| z  z   z  z  t        |       t        d| z  z         z  z  | dt!        dz        f      z        sJ t#        t        t              t              dz  t        dz
  t              z  k(  sJ t#        t        t                    t%        t        t                    k(  sJ t'        t(        fd       t        t              j                  t*              t	        d      z  t+        t        t	        d      z        z  k(  sJ y )Nr   r.   r/   rK   r1   rL   rn   r[   0   rX   @   i  rl   rm   r+   r0   r5   rM   r>   c                  B    t         t              j                  d      S re   )r   r)   rA   rb   s   r8   r9   ztest_hermite.<locals>.<lambda>Y  s    wq!}':':1'= r:   )r   r)   r   r&   r   r   r   r
   rB   r   r   r   rF   r   rD   r   r   r   r   r(   r'   r   rH   r+   s    @r8   test_hermiter   =  s}   1a=A1a=AaC1a=AadFQJ&&&1a=AadFRTM)))1a=Bq!tGbAg-22221a=Bq!tGc!Q$h.QT9C????sAWa###1qb>b1WWQ]2222Wqb!$$$1a=AqDbM%1*=====1b>RWQ]#wq)A,'????	sB1a=  %..y|C
AcRUQYA !*2yB/C!CAEGI	51:G= 0    1a=  .77	!S"
JcRUQYJ !*2yB/C!CJEGI	51:GF 9    1q!QqSQ):%::::1q!Z1q%AAAA
=>1a=  .GQJa47334 4 4r:   c                     t        dt              dk(  sJ t        dt              t        k(  sJ t        dt              t        dz  dz
  k(  sJ t        dt              t        dz  dt        z  z
  k(  sJ t        dt              t        dz  dt        dz  z  z
  dz   k(  sJ t        dt              t        dz  dt        dz  z  z
  dt        dz  z  z   dz
  k(  sJ t        d	      t        t         t              sJ t        t               d
z  t        t              z  k(  sJ t        t          t              sJ t        d      t	        t
              t        t        j                  dz  z
        z  k(  sJ t        t              t        u sJ t        t        t                    t        t        t                    k(  sJ t        d      } t        t              j                  t              j                  t              t        t        j                   | z  t        d| z  z
  z  z  t        |       t        d| z  z
        z  z  | dt!        dz        f      z        sJ t        t              j                  d      j                  t              t        t        j                   | z  t        d| z  z
  z  z  t        |       t        d| z  z
        z  z  | dt!        dz        f      z        sJ t#        t        t              t              t        dz
  t              z  k(  sJ t#        t        t                    t%        t        t                    k(  sJ t'        t(        fd       t        t              j                  t*              t	        d       z  t+        t        t	        d      z        z  k(  sJ y )Nr   r.   r/   r1   rK   rX   rW   -   r+   r0   r5   r>   c                  B    t         t              j                  d      S re   )r   r)   rA   rb   s   r8   r9   z#test_hermite_prob.<locals>.<lambda>{  s    |Aq'9'?'?'B r:   )r   r)   r   r&   r   r   r   r
   rB   r   r   r   rF   r   rD   r   r   r   r   r(   r'   r   r   s    @r8   test_hermite_probr   _  sM   1"""1"""1A)))1A!+++1A!Q$!22221A1a4"QT'!9B!>>>>sA\1a(((A22',q!*<"<<<<\A2q)))1b%1*=!====2"$$$\!Q'(LIaL,IIII	sB1%%c*33IaLaffWrMA!B$K'9R=9QqtV;L+LM	Qac
	5    1%%l3<<Yq\affWrMA!B$K'9R=9QqtV;L+LM	Qac
	>    Q"A&!L1a,@*@@@@Q"A&*\!Q5G*KKKK
BC1%%g.GqbMGAqay112 2 2r:   c            
         t        d      t        dd      } t        dt              dk(  sJ t        dt              t         dz   k(  sJ t        dt              t        dz  dz  dt        z  z
  dz   k(  sJ t        dt              t        dz   d	z  dt        dz  z  dz  z   dt        z  z
  dz   k(  sJ t        d
t              t        dz   t        t              z  k(  sJ t        t              }t	        |t              sJ t        d      dk(  sJ t        t
              dz  t
        z  k(  sJ t        t
               t
        u sJ t        t        t                    t        t        t                    k(  sJ t        d      }t        t              j                  t              j                  t        t        |z  t         |      z  t        |      dz  z  |df            sJ t        t              j                  d      j                  t        t        |z  t         |      z  t        |      dz  z  |df            sJ t        | t              j                  t              j                  t        t              t        t         |z  t        | dz   |      z  t        |      dz  z  |d|  dz
  f      z        sJ t        | t              j                  d      j                  t        t              t        t         |z  t        | dz   |      z  t        |      dz  z  |d|  dz
  f      z        sJ t        t        t              t              t        dz
  dt               k(  sJ t        d      }t         t              t        t              t        dz
  t               z  k(  sJ t        dt              t        t              t        dt               z  k(  sJ t        t         |z   t              sJ t!        t"        d        t!        t"        d        t!        t$        fd       t!        t$        fd       y )Nr+   r2   T)negativer   r.   r/   r1   rX   rM   r0   r5   r>   rj   c                  "    t        dt              S r7   )r"   r)   r=   r:   r8   r9   ztest_laguerre.<locals>.<lambda>  s    xa0 r:   c                  6    t        t        dd      t              S )Nr@   r/   )r"   r   r)   r=   r:   r8   r9   ztest_laguerre.<locals>.<lambda>  s    xA: r:   c                  B    t         t              j                  d      S r`   r"   r)   rA   rb   s   r8   r9   ztest_laguerre.<locals>.<lambda>  rc   r:   c                  B    t         t              j                  d      S re   r   rb   s   r8   r9   ztest_laguerre.<locals>.<lambda>  rc   r:   )r   r"   r)   r   rC   r   r   r   rF   r   rD   r   r   r   r   r&   r(   rE   r'   )r2   rG   rH   r5   r+   s       @r8   test_laguerrer     s   sAsT"A Aq>QAq>aR!V###Aq>QT!Vac\A----Aq>adU1WqAvax/!A#59999B?q1uc!fn,,,AAa"""Aq>QAr?rAgbj(((Asr!!!Xa^$IaL(AAAA	sBAq>!!#&//ArE/1"b)))B-*::RAJGI I IAq>!!,/88ArE/1"b)))B-*::RAJGI I IAq>!!#&//AsQB8OAE266y}a7GGQBFO 	   Aq>!!,/88AsQB8OAE266y}a7GGQBFO 	   A"~a!eQ'B&BBBBsAQB?c!fXa!eaR%88888B?c!fXa!_4444XrAvq)))
:01
::;
>?
>?r:   c                     t        d      t        d      } t        d      t        dt              dk(  sJ t        dt              t         z   dz   k(  sJ t        dt              j                         t        dz  dz  dz   t        z  z
  dz   dz   z  dz  z   j                         k(  sJ t        dt              j                         t        dz   dz  dz   t        dz  z  dz  z   dz   dz   z  t        z  dz  z
  dz   dz   z  dz   z  dz  z   j                         k(  sJ t	        d	      D ]4  }t        |dt              j                         t        |t              k(  r4J  t        | t              }t        |t              sJ t        dt              t        t              k(  sJ t        d      t        z         k(  sJ t        d
d      }t        |t              d|z  t        z  k(  sJ t        |t               t        u sJ t        t        t              t              t        dz
  dz   t               k(  sJ t        d      }t        t        t                    j                  t        t        |t               z   z  |ddz
  f            sJ t        t        t                    t        t              t        t                    k(  sJ t        t              j                  t              j                  t!        z   dz         t        t        |z  t#         |      z  t%        |      t!        |z   dz         z  z  |df      z  t%              z        sJ t        t              j                  d      j                  t!        z   dz         t        t        |z  t#         |      z  t%        |      t!        |z   dz         z  z  |df      z  t%              z        sJ t'        t(        fd       t'        t*        fd       t'        t*        fd       y )Nr+   r2   alphar   r.   r/   r1   rX   r\   pTr3   r0   r5   r>   c                  &    t        d t              S r7   )r   r)   )r   s   r8   r9   z%test_assoc_laguerre.<locals>.<lambda>  s    ~dE1= r:   c                  D    t         t              j                  d      S r`   r   r)   rA   r   r+   s   r8   r9   z%test_assoc_laguerre.<locals>.<lambda>      ~a'B'H'H'K r:   c                  D    t         t              j                  d      S rO   r   r   s   r8   r9   z%test_assoc_laguerre.<locals>.<lambda>  r   r:   )r   r   r)   rf   r   r$   rC   r"   r   r   r   r   rD   r   r   rF   r   r   r   r(   rE   r'   )r2   irG   r   rH   r   r+   s        @@r8   test_assoc_laguerrer     sA   sAsA7OE !UA&!+++!UA&1"u*q.888!UA&--/	
Aa519a-	519uqy"9!";	;CCEF F F!UA&--/
Q$qEAIq!t#A%	%UQY(?(A!(C	C	UQY+A-
./5vx8 8 8
 2Y GaA&--/=A3FFFFG 	q!QAa(((!Q"hq!n444!UA&(519e*DDDDsT"A!UB'B72:555!URC(B...q%+Q/	Auqy!	,,- - -	sBq%+U3<<N2ua(5&1*5Aq1u~FH H H ^Aua01q)E*IaL9: : : !UA&..s3<<%!)a- QU?A2r+B%Br]5ea00&2461:"? ??H|LM M M !UA&..|<EE%!)a- QU?A2r+B%Br]5ea00&2461:"? ??H|LM M M :=>
KL
KLr:   N)Bsympy.concrete.summationsr   sympy.core.functionr   r   sympy.core.numbersr   r   r   r	   sympy.core.singletonr
   sympy.core.symbolr   r   (sympy.functions.combinatorial.factorialsr   r   r   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   'sympy.functions.special.gamma_functionsr   sympy.functions.special.hyperr   #sympy.functions.special.polynomialsr   r   r   r   r   r   r   r   r   r    r!   r"   r#   sympy.polys.orthopolysr$   sympy.polys.polyrootsr%   sympy.core.exprr&   r'   sympy.testing.pytestr(   r)   rI   rQ   rh   r{   r   r   r   r   r   r=   r:   r8   <module>r      s    ) 2 6 6 " - [ [ : 6 5 9 8 9 / ]  ]  ]  ] 0 ' % 2 ' 3K=D@1Eh4@n2>j@BF4D2D+@\,Mr:   