
    sg                         d 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 ddlmZmZmZ d	 Zd
 Zd Zd Zd Zd Zd Z d Z!d Z"y)zETests for efficient functions for generating orthogonal polynomials.     )Rational)S)symbols)Poly)raises)	jacobi_polygegenbauer_polychebyshevt_polychebyshevu_polyhermite_polyhermite_prob_polylegendre_polylaguerre_polyspherical_bessel_fn)xabc            	         t        t        d        t        dt        t        t
        d      t        t        dz  t        dz  z   dz   t
        z  t        dz  z   t        dz  z
  t
        d      k(  sJ t        dt        t        t
              dk(  sJ t        dt        t        t
              t        dz  t        dz  z
  t
        t        dz  t        dz  z   dz   z  z   k(  sJ t        dt        t        t
              t        dz  d	z  t        t        z  d
z  z
  t        d	z  z
  t        dz  d	z  z   t        d	z  z
  t
        dz  t        dz  d	z  t        t        z  d
z  z   t        t        dd	      z  z   t        dz  d	z  z   t        t        dd	      z  z   t        dd      z   z  z   t
        t        dz  d
z  t        t        dd
      z  z   t        dz  d
z  z
  t        t        dd
      z  z
  z  z   t        j                  z
  k(  sJ t        dt        t        d      t        t        dz  t        dz  z   dz   t
        z  t        dz  z   t        dz  z
  t
        d      k(  sJ y )Nc                  6    t        dt        t        t              S N)r   r   r   r        T/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_orthopolys.py<lambda>z"test_jacobi_poly.<locals>.<lambda>   s    {2q!Q7 r      Tpolys   zZZ(a,b)domainr               )
r   
ValueErrorr   r   r   r   r   Qr   Halfr   r   r   test_jacobi_polyr)      s-   
:78q!Q.$	
1qsQAaC!A#%q3< < < < q!Q"a'''q!Q"acAaCi!QqS1Q3Y]2C&CCCCq!Q"q!tAv!A~!';ad1f'Dqs'J'(!tQT!Vac!e^a!Qi-G!Q$q&-P-.qAwY.79:1a.A (B(BDEq!tAv,-a1gIH6891QH?AB1Q7HK EL(L OPff(U V V V
 q!Qd+t	
1qsQAaC!A#%q0< < < <r   c                  F   t        t        d        t        dt        t        d      t        dt        z  t        z  t        d      k(  sJ t        dt        t              dk(  sJ t        dt        t              dt        z  t        z  k(  sJ t        dt        t              t         t        dz  dt        dz  z  dt        z  z   z  z   k(  sJ t        d	t        t              t        d	z  d
t        d	z  z  d	z  d
t        dz  z  z   t        t        dd	      z  z   z  t        dt        dz  z  dt        z  z
  z  z   k(  sJ t        dt        j                        j                  t              sJ t        dt        d      t        dt        z  t        z  t        d      k(  sJ y )Nc                  ,    t        dt        t              S r   )r	   r   r   r   r   r   r   z&test_gegenbauer_poly.<locals>.<lambda>*   s    r1a8 r   r   Tr   r   zZZ(a)r    r   r%   r#   r"   )
r   r&   r	   r   r   r   r'   r   r(   dummy_eqr   r   r   test_gegenbauer_polyr.   )   sh   
:89	1at $QqSUAg >? ? ? 1a#q(((1a#qs1u,,,1a#rAqD!AqD&1Q3,,?'????	1aqD!AqD&(Qq!tV+a!Qi781bAg!m;LLM M M 1aff%..q1111at,QqSUAg0NNNNr   c                  ,   t        t        d        t        dt        d      t	        t              k(  sJ 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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        z  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              dt        dt              z  t        dt              z  t        z
  j                         k(  sJ t        dt              dt        dt              dz  z  dz
  j                         k(  sJ t        d      j                  t              sJ t        dd      t	        t              k(  sJ y )Nc                  "    t        dt              S r   )r
   r   r   r   r   r   z&test_chebyshevt_poly.<locals>.<lambda>:       r15 r   r   Tr   r   r   r%   r#   r"                   0      K   %   &   d   2   )r   r&   r
   r   r   expandr-   r   r   r   test_chebyshevt_polyr?   9   s   
:561at,Q7771a A%%%1a A%%%1a AadFQJ...1a AadFQqSL0001a AadFQq!tVOa$77771a Bq!tGbAg$5!$;;;;1a Bq!tGbAg$51a4$?!$CCCC2q!aA(>&>rST?U&UXY&Y%a%a%cccc3"qQ)?)B'BQ'F&N&N&PPPP1&&q)))1D)T!W444r   c                  8   t        t        d        t        dt        d      t	        dt        z        k(  sJ 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        z  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      j                  dt        z        sJ t        dd      t	        dt        z        k(  sJ y )Nc                  "    t        dt              S r   )r   r   r   r   r   r   z&test_chebyshevu_poly.<locals>.<lambda>M   r1   r   r   Tr   r   r   r#   r%   r"   r3      r2   r6   r5   @   P      )r   r&   r   r   r   r-   r   r   r   test_chebyshevu_polyrF   L   sx   
:561at,QqS	9991a A%%%1a AaC'''1a AadFQJ...1a AadFQqSL0001a Bq!tGbAg$5$99991a Bq!tGbAg$5!$;;;;1a Bq!tGbAg$51a4$?!$CCCC1&&qs+++1D)T!A#Y666r   c                  8   t        t        d        t        dt        d      t	        dt        z        k(  sJ 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        z  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      j                  dt        z        sJ t        dd      t	        dt        z        k(  sJ y )Nc                  "    t        dt              S r   )r   r   r   r   r   r   z#test_hermite_poly.<locals>.<lambda>^   s    |B2 r   r   Tr   r   r   r#   r%   r"   rB   r3   r7   r2   r6      x   r5   rC   i    )r   r&   r   r   r   r-   r   r   r   test_hermite_polyrL   ]   sw   
:231D)T!A#Y6661"""11$$$11a4!+++11a4"Q$...1AqD2ad7!2R!77771AqD3q!t8!3c!e!;;;;1AqD3q!t8!3c!Q$h!>!DDDD?##AaC(((&$qs)333r   c                     t        t        d        t        dt        d      t	        t              k(  sJ 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        z  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      j                  t              sJ t        dd      t	        t              k(  sJ y )Nc                  "    t        dt              S r   )r   r   r   r   r   r   z(test_hermite_prob_poly.<locals>.<lambda>o   s    0Q7 r   r   Tr   r   r   r%   r#   r5   r2   
      -   )r   r&   r   r   r   r-   r   r   r   test_hermite_prob_polyrR   n   sQ   
:78Q.$q'999Q"a'''Q"a'''Q"adQh...Q"adQqSj000Q"adQq!tVma&7777Q"adR1Wnr!t&;;;;Q"adR1Wnr!Q$w&>&CCCCQ((+++Qd+tAw666r   c                  <   t        t        d        t        dt        d      t	        t        d      k(  sJ t        dt              dk(  sJ t        dt              t        k(  sJ t        dt              t        d	d      t        dz  z  t        dd      z
  k(  sJ t        d	t              t        d
d      t        d	z  z  t        d	d      t        z  z
  k(  sJ t        dt              t        dd      t        dz  z  t        dd      t        dz  z  z
  t        d	d      z   k(  sJ t        d
t              t        dd      t        d
z  z  t        dd      t        d	z  z  z
  t        dd      t        z  z   k(  sJ t        dt              t        dd      t        dz  z  t        dd      t        dz  z  z
  t        dd      t        dz  z  z   t        d
d      z
  k(  sJ t        d      j                  t              sJ t        dd      t	        t              k(  sJ y )Nc                  "    t        dt              S r   )r   r   r   r   r   r   z$test_legendre_poly.<locals>.<lambda>       }R3 r   r   Tr   QQr    r   r   r%   r2   r#   #   r"      ?   F   rP   r5      r3   i;  i   )r   r&   r   r   r   r'   r-   r   r   r   test_legendre_polyr]      s   
:34AT*d1T.BBBBA!###A!###A!Aq'!Q$,1a"8888A!Aq'!Q$,1a"::::A!B(1a4-!B(1a4-"?!Aq'"IIIIA!B(1a4-!B(1a4-"?!B(1*"LLLLA!R#A##r
1a4#(*+C*QT/#:<=aH#E E E E $$Q'''$'47222r   c                  :   t        t        d        t        dt        d      t	        t         dz   d      k(  sJ t        dt              dk(  sJ t        dt              t         dz   k(  sJ t        dt              t        dd      t        dz  z  t        d	d      t        z  z
  dz   k(  sJ t        d
t              t        dd       t        d
z  z  t        dd      t        dz  z  z   t        dd      t        z  z
  dz   k(  sJ t        d	t              t        dd      t        d	z  z  t        dd      t        d
z  z  z
  t        dd      t        dz  z  z   t        dd      t        z  z
  dz   k(  sJ t        dt              t        dd       t        dz  z  t        dd      t        d	z  z  z   t        dd      t        d
z  z  z
  t        dd      t        dz  z  z   t        dd      t        z  z
  dz   k(  sJ t        dt              t        dd      t        dz  z  t        dd      t        dz  z  z
  t        dd      t        d	z  z  z   t        dd      t        d
z  z  z
  t        dd      t        dz  z  z   t        dd      t        z  z
  dz   k(  sJ t        dt        t              dk(  sJ t        dt        t              t         t        z   dz   k(  sJ t        dt        t              t        dz  dz  t         dz
  t        z  z   t        dz  dz  z   t        t        d
d      z  z   dz   k(  sJ t        d
t        t              t        d
z   dz  t        dz  t        d
      dz  z   t        dz  z  z   t        dz   dz  t        t        dd      z  z
  d
z
  t        z  z   t        d
z  dz  z   t        dz  z   t        t        dd      z  z   dz   k(  sJ t        d      j                  t         dz         sJ t        dd      t	        t         dz         k(  sJ y )Nc                  "    t        dt              S r   )r   r   r   r   r   r   z$test_laguerre_poly.<locals>.<lambda>   rU   r   r   Tr   rV   r    r   r   r#   r%   r5   	   r8   rE   r3   H   `   r2   rJ         iX  rK   $   i  i`	  i  i     )r   r&   r   r   r   r'   r   r-   r   r   r   test_laguerre_polyrg      s;   
:34AT*dA26$.GGGGA!###A1"q&(((A!Aq'!Q$,1a":Q">>>>A1Q7(1a4-!Aq'!Q$,">2q!"Ka"OOOOA!	2#!t#Bi1n#%'(RyA~#689"b	!#DFG#H H H HA1Q9*QT/Ab#Jq!tO"CaSGQ$G #3QT)#*,-c3KM#:<=#> > > >A!As)AqD.1R:ad?"BQsC[QRTUQUEU"UXYZ^`cXdefhieiXi"ilmnrtwlxyz|}y}l}"}  AB  CG  IL  AM  NO  AO  #O  RS  #S  S  S  SAq!Q&&&Aq!aR!VaZ///Aq!QT!VrAvqj%81a46%AAa1gI%MPQ%QQQQAq!adU1W!a	77 1d0 &!teAg!Aq'	)A-q0&134a46&:<=qD&ACDQr1X:&NPQ&R R R R $$aR!V,,,$'4Q<777r   c                     t        d      \  } }t        d|      d|dz  z  k(  sJ t        d|      d|z  d|dz  z  z   k(  sJ t        d|      d|dz  z  d|dz  z  z   k(  sJ t        d|      d|z  d	|dz  z  z
  d
|dz  z  z   k(  sJ y )Nzx zr   r   r   r%   irP   r#   rQ   r\   r2   )r   r   )r   zs     r   test_spherical_bessel_fnrj      s    5>DAqq!$!Q$...q!$1qAv555q!$1a4"QT'(9999q!$!bAgAqD(@@@@r   N)#__doc__sympy.core.numbersr   r'   sympy.core.singletonr   sympy.core.symbolr   sympy.polys.polytoolsr   sympy.testing.pytestr   sympy.polys.orthopolysr   r	   r
   r   r   r   r   r   r   	sympy.abcr   r   r   r)   r.   r?   rF   rL   rR   r]   rg   rj   r   r   r   <module>rs      s]    K , " % & '
 
 
  <"O 5&7"4"7"3$82Ar   