
    QiiL                        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 ZAdS )    )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                                                  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                                                  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                                        t.                                        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                                        d                              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           d S )Nnabr            mTpositivekc                  2    t          d t                    S Ng )r    r)   )r,   r-   s   /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/functions/special/tests/test_spec_polynomials.py<lambda>ztest_jacobi.<locals>.<lambda>N   s    vdAq!44     c                  N    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&H&H!QPRSS r:   
polynomialc                  X    t           t                                        d          S )N   )r    r)   fdiff)r,   r-   r+   s   r8   r9   ztest_jacobi.<locals>.<lambda>W   s#    vaAq'9'9'?'?'B'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      s   sAsAsA!Q1""""!Q11qsQ!ac	A->!>>>>>!Q1	Aq" "QAF
A.."//>qsQw/J/J"K K K K K!QAB7QBFqbd+;#;QUacN#J>Z[]^`aKbKb#b#,aR!V#4#4$55:1q5195E5E$FGPQRUVQVGWGWX]^_bc^cXdXdGd$f g g g g!aRAQBFac?AEaRT?#B>RSUVXYCZCZ#Z#(!a!#4#4$55:1q5\\$B C C C C!Q1!Q////!QVQVQ''?A, ,%a++,,,5a!e,<,<,= = = = =!Xb!__hr1ooq99_	> >a##>$$-aLL>1 1 1 1 1 	q!QAa     !QA22'&Aq!*<*<"<<<<<!Q1aRq1uqy)9)9!9%
a!q1uh;$ ;$ "$%.q\\%A,,%>"@ @ @ @ @!Q1Q!:!:9Q<<!GGGGGsT"""A!Q2"_QUQY]A%F%F"FFFFFVQ1b)))))VAq!Q''((q)A,,	!ill;;< < < < 
sBq!Q""A&&*VAq!Q5G5G*K*KKKKKq!Q""A&&//VAq!Q5G5G	
2A	?26A:sQw???r1	1A A 	aa!a"qAAA	C6CEG!V
FFF5 1a!en1& 1& ' ' ' ' ' q!Q""A&&//bRC!G_ad	G
GG 6"26A:sQw77688>r1a8K8K6L#'?26A:>B37;;	;6=?Ea	1@ @6 Q
Q"5$ ')!QU^15 15 6 6 6 6 6 q!Q""A&&	
1qsQqS16	!6!a%QAq#A#AAB B B B Q1a((1aAtAA	N5Q3C3C$CE!a%RS)DTDT$T'(1uqs{Q	!&DU1q5ST9WX=EYEY&Y%[  \  \ \] ] ] ] :44444555
:SSTTT!Q1%%c**33C!A#
9aR$$9%%4R!VaZ"q%I%I9JA	Ar**9++4R==99;=q!*5F 5FFOPQll5S T T T T T !Q1%%l33<<S!&1Q3,
BaR$$B%%4R!VaZ"q%I%IBJA	Ar**B++4R==B9;=q!*>F >FFOPQll>S T T T T T BBBBBBCCCC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                                                  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                                        t.                                        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                                        d                              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           d S )Nr+   r,   r   r.   r/   r1         r0   r2   Tr3   r5   r>   c                  V    t           t                                        d          S NrK   )r   r)   rA   )r,   r+   s   r8   r9   z!test_gegenbauer.<locals>.<lambda>   s!    z!Q':':'@'@'C'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   sE   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NN"223aAqD1Q36GGH H H H b!Q1$$$$a##x1~~5555aA*Q"2"22222aQ1$$$$1aAa$$$$$aQBB7:aA+>+>#>>>>>aA!Q$tBxx-a!A#g#ar!taf}!5!55eAEllB#D D D D DaA%!a..%!**U1q5\\2I"JJJJJa!Q,,3333a!Q,,aRQU1W=M9N9N1NAJ''2()-b%A,,)>2@ A A A A 	sT"""AaB2oa&;&;#;;;;;ZAr*****Z1a(())Z9Q<<ST-V-VVVVV	sB
1a##Q'':jAq6I6I1+M+M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 2      
1a##Q''1Q3z!a%Q/J/J+JJJJJaA&&s++44R"HacRUQY''B37(C(CC
B--	"R%!),,
,.02AuQqSzz/B	D 	DE E E E E aA&&|44==R"HacRUQY''B37(C(CC
B--	"R%!),,
,.02AuQqSzz/B	D 	DE E E E E CCCCCDDDD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                                  k    sJ t          dt                    dt          dz  z  dt          z  z
  dz                                  k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  dz   d	z                                  k    sJ t          dt                    d
t          dz  z  dt          dz  z  z
  dt          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
  dz                                  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k    sJ t          dd          dk    sJ t          dt                    dk    sJ t          d          } t          d| z
  t                                        | d          dt          dz  z  dt          z  z
  dz                                  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                                        t(                                        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                                        d                              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           d S )Nr   r.   r/   r1   r@   rK   #      rL   ?   F            i;  i      
   r0      r5      r+   r>   c                  T    t           t                                        d          S Nr.   r#   r)   rA   r+   s   r8   r9   ztest_legendre.<locals>.<lambda>       x1~~';';A'>'> r:   c                  T    t           t                                        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66Aq>>qAv!|Q.66888888Aq>>r!Q$wAqD014a7??AAAAAAAq>>r!Q$wAqD02a47:BBDDDDDDAq>>s1a4x#ad(2SAX=A2EMMOO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GG!Q##Xa^^hq"ood2hh6677	hq!nnx2tBxx77	8	88!Xa^^hq"ood2hh6677	hq!nnx2tBxx77	8	88!	(     	sAAAa"""""Xq!$$$$$Aq>>T"XXuQVac\':':51q>>'IJJJJJAq>>QAr??b    QB??hq1ua000000Ar??rAghq!nn44444XrAvq)))))Xa^^$$IaLL(A(AAAAAA""	1Xa^^hq1ua00011a4!8<= = = =A""j!Q&C&CCCCC	sBAq>>!!#&&//R"HafaC?> 5cAFlrcAg.5//72/A5BDF1:1O 1O P P P P PAq>>!!,//88b2XqvaCHG >cAFlrcAg.>//72/A>BDF1::O :O P P 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                                                    dddt          dz  z  z
  z  dz                                  | z                                  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                                        t                                        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                                        d                              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           d S )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    ss1a|| r:   c                  (      ddt                     S )Nr0   r.   rp   rq   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   s    ss2q!}} r:   c                  N      t                                         d          S r`   r)   rA   rr   r2   r+   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   !    ss1a||'9'9!'<'< r:   c                  N      t                                         d          S )Nr/   ru   rv   s   r8   r9   z%test_assoc_legendre.<locals>.<lambda>   rw   r:   c                  N      t                                         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{      sO   
CQAXA3q!Q<<13q!Q<<13q!Q<<A23q!Q<<AadFQJ>))))3q!Q<<2a46!!!!3q!Q<<1QT6!!!!3q!Q<<AadFQqSL!+++++3q!Q<<  q!a1f*~a'7%@%@%B%BQ%F$N$N$P$PPPPP3q!Q<<2a4!Q$;&&&&3q!Q<<3A:%%%% 3q"a==SSAq\\M!O++++3q"a==CC1aLLO++++3q"a==SSAq\\M!O++++3q"a==SSAq\\M#-----3q"a==CC1aLL,,,,,3q"a==SSAq\\M",,,,,sAsAAq!Aa(((((3q!Q<<8Aq>>))))3q!Q<<1a4R=%1qs
61" +# +##(!A!a#8#8+9 : : : : : Aq!a  QqS1a)@)@%@Qq1ua333&467dQh%@ @ @ @ @ 
sB3q!Q<<$$--AX1c2(1r7"21r"uqy1}3E"EieackG G #%bMM)RC!G*<*<<Yr"uqyH > > #!U1Q319--.0 0 01 1 1 1 1 3q!Q<<--66AX1c2(1r7"21r"uqy1}3E"EieackG G #%bMM)RC!G*<*<<Yr"uqyH > > #!U1Q319--.0 0 01 1 1 1 1 ^Aq!,,--q)A,,	!556 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 ]Rt                    D ](} t          |           }t          |          dk    sJ )t	          t
          fd           St          dd          D ]Rt                    D ](} t          |           }t          |          dk    sJ )t	          t
          fd           St          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                                        t$                                        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                                        d                              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                                        t$                                        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                                        d                              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           d S )Nr   r.   r/   r1   rK   c                  $    t                      S N)r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>      ?1a#8#8 r:   c                  $    t                      S r~   )r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>
  r   r:   r+   r0   yr5   rM   r>   c                  T    t           t                                        d          S r`   r   r)   rA   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>7      z!Q'7'7'='=a'@'@ r:   c                  T    t           t                                        d          S re   r   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>8  r   r:   c                  T    t           t                                        d          S r`   r   r)   rA   rb   s   r8   r9   z test_chebyshev.<locals>.<lambda>9  r   r:   c                  T    t           t                                        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88899991a[[ : :q 	) 	)A1%%Aa##q(((((z88889999sA1aAa$$$$$ZA&&&&&a!a
1a(8(8 88888qb!
1a 0 00000as2a46{{****aq    a""""Z1%%&&*Q	!*E*EEEEE
1a  !$$*QUA*>*>(>>>>>1aAa$$$$$sAa!a
1a(8(8 88888qb!AE1!5!5 55555Z!a+++++as2a46{{****aq1u$$$$a""""Z1%%&&*Q	!*E*EEEEE
1a  !$$
Jq!	Az!a%';';;	;adQhGH H H H 
sBa##C((11#a"R%!)ndQh^7$$,Q"$5$5768:AuQqSzz7J3L 3L M M M M Ma##L11::3q2b519~dQh^@$$,Q"$5$5@68:AuQqSzz7J<L <L M M M M Ma##C((11#rBh!"uqy@" 7""+RC!G"4"4756?mm B++7,7-/11eAaCjj.A3C 3C D D D D D a##L11::3Rx1"uqyI" @""+RC!G"4"4@56?mm B++7,@-/11eAaCjj.A<C <C D D D D D @@@@AAA
@@@@AAA
@@@@AAA
@@@@A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                                        t                                        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                                        d                              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                                        t*                    t	          d          z  t+          t          t	          d          z            z  k    sJ d S )Nr   r.   r/   rK   r1   rL   rn   r[   0   rX   @   i  rl   rm   r+   r0   r5   rM   r>   c                  T    t           t                                        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   =  sI   1a==A1a==AaC1a==AadFQJ&&&&1a==AadFRTM))))1a==Bq!tGbAg-222221a==Bq!tGc!Q$h.QT9C?????sAWa#####1qb>>b1WWQ]]2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!CAEGI	51::G= = 0      1a==  ..77	!S"
JcRUQYJ !*2yB/C/C!CJEGI	51::GF F 9      1q!!QqSQ):):%:::::1q!!Z1q%A%AAAAA
====>>>1a==  ..GGQJa4773334 4 4 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                                        t                                        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                                        d                              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                                        t*                    t	          d           z  t+          t          t	          d          z            z  k    sJ d S )Nr   r.   r/   r1   rK   rX   rW   -   r+   r0   r5   r>   c                  T    t           t                                        d          S re   )r   r)   rA   rb   s   r8   r9   z#test_hermite_prob.<locals>.<lambda>{  s    |Aq'9'9'?'?'B'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   _  s%   1""""1""""1A))))1A!++++1A!Q$!222221A1a4"QT'!9B!>>>>>sA\1a(((((A22',q!*<*<"<<<<<\A2q)))))1b%1*=*=!=====2"$$$$\!Q''((LIaLL,I,IIIII	sB1%%c**33IaLLafWrMA!B$K'9R==9QqtV;L;L+LM	Qac

	 	5      1%%l33<<Yq\\afWrMA!B$K'9R==9QqtV;L;L+LM	Qac

	 	>      Q""A&&!L1a,@,@*@@@@@Q""A&&*\!Q5G5G*K*KKKKK
BBBBCCC1%%g..GGqbMGAqay1112 2 2 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                                        t                    
                    t          t          |z  t           |          z  t          |          dz  z  |df                    sJ t          t                                        d          
                    t          t          |z  t           |          z  t          |          dz  z  |df                    sJ t          | t                                        t                    
                    t          t                    t          t           |z  t          | dz   |          z  t          |          dz  z  |d|  dz
  f          z            sJ t          | t                                        d          
                    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           d S )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0 r:   c                  H    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                  T    t           t                                        d          S r`   r"   r)   rA   rb   s   r8   r9   ztest_laguerre.<locals>.<lambda>  rc   r:   c                  T    t           t                                        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9B??q1uc!ffn,,,,AAa"""""Aq>>QAr??rAgbj((((Asr!!!!Xa^^$$IaLL(A(AAAAA	sBAq>>!!#&&//ArE/1"b))))B--*::RAJGGI I I I IAq>>!!,//88ArE/1"b))))B--*::RAJGGI I I I IAq>>!!#&&//AsQB8OAE2666y}}a7GGQBFO  	     Aq>>!!,//88AsQB8OAE2666y}}a7GGQBFO  	     A""~a!eQ'B'B&BBBBBsAQB??c!ffXa!eaR%8%888888B??c!ffXa!__44444XrAvq)))))
:0011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                                                    t          dz  dz  dz   t          z  z
  dz   dz   z  dz  z                                   k    sJ t          dt                                                    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                                   k    sJ t	          d	          D ]C}t          |dt                                                    t          |t                    k    sJ Dt          | 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                                                  t          t          |t                     z   z  |ddz
  f                    sJ t          t          t                              t          t                    t          t                              k    sJ t          t                                        t                                        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                                        d                              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           d S )Nr+   r2   alphar   r.   r/   r1   rX   r\   pTr3   r0   r5   r>   c                  0    t          d t                    S r7   )r   r)   )r   s   r8   r9   z%test_assoc_laguerre.<locals>.<lambda>  s    ~dE1== r:   c                  V    t           t                                        d          S r`   r   r)   rA   r   r+   s   r8   r9   z%test_assoc_laguerre.<locals>.<lambda>  !    ~a'B'B'H'H'K'K r:   c                  V    t           t                                        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     sg   sAsA7OOE !UA&&!++++!UA&&1"u*q.8888!UA&&--//	
Aa519a-	519uqy"9!";	;CCEEF F F F!UA&&--//
Q$qEAIq!t#A%	%UQY(?(A!(C	C	UQY+A-
./5vxx8 8 8 8
 2YY G GaA&&--//=A3F3FFFFFFq!QAa(((((!Q""hq!nn4444!UA&&(519e*D*DDDDDsT"""A!UB''B72:5555!URC((B....q%++Q//	Auqy!	,	,,- - - -	sBq%++U33<<N2ua((5&1*5Aq1u~FFH H H H H ^Aua0011q)E**IaLL99: : : : !UA&&..s33<<%!)a-  QU?A2r+B+B%Br]]5ea000&2461:"? "? ??H||LM M M M M !UA&&..|<<EE%!)a-  QU?A2r+B+B%Br]]5ea000&2461:"? "? ??H||LM M M M M :====>>>
KKKKKLLL
KKKKKLLLL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 2 2 2 2 2 2 2 6 6 6 6 6 6 6 6 6 6 6 6 " " " " " " - - - - - - - - [ [ [ [ [ [ [ [ [ [ : : : : : : 6 6 6 6 6 6 5 5 5 5 5 5 9 9 9 9 9 9 8 8 8 8 8 8 9 9 9 9 9 9 / / / / / / ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ]  ] 0 0 0 0 0 0 ' ' ' ' ' ' % % % % % % 2 2 2 2 2 2 ' ' ' ' ' ' F3KK=D =D =D@1E 1E 1Eh4@ 4@ 4@n2> 2> 2>j@B @B @BF4 4 4D2 2 2D+@ +@ +@\,M ,M ,M ,M ,Mr:   