
    -ic%                         S SK rS SKJrJr  S SKrS SKJr  S SKJ	s  J
r  S SKJr  S rS rS rS r " S	 S
5      r " S S5      rS r\R*                  R-                  S/ SQ5      \R*                  R-                  SS S\R.                  /5      S 5       5       r\R*                  R-                  S/ SQ5      \R*                  R-                  SS\R.                  /5      \R*                  R-                  SS\R.                  /5      S 5       5       5       r\R*                  R-                  S/ SQ5      \R*                  R-                  SSS\R.                  /5      \R*                  R-                  SSS\R.                  /5      S 5       5       5       rg)    N)assert_assert_allclose)_ufuncs)FuncDatac                  d   [         R                  " SSS[         R                  " S5      S9n S[         R                  R	                  5       -  S-
  n[         R
                  " U [         R                  " U5      -  5      n[        R                  " X5      n[        [         R                  " X#SS	95        g )
Nr   i'     long)dtype      gV瞯<rtol)nparanger
   randomrandcosarccosr   eval_chebytr   allclose)nxv1v2s       [/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_orthogonal_eval.pytest_eval_chebytr   
   sv    
		!UARXXf%56A	"))..
QA	"))A,	B			Q	"BBKKU+,    c                  >    [         R                  " SS5      S:X  d   eg )Nr   y       @        g     @)r   r    r   r   test_eval_chebyt_gh20129r       s    q&)V333r   c            	          [        [        R                  " [        R                  " SSS5      5      5        [        [        R                  " [        R                  " SSS5      5      5        g )Nr   g?)r   r   isnanr   eval_genlaguerrer   r   r   !test_eval_genlaguerre_restrictionr%      sB    BHHW--aQ789BHHW--c2q9:;r   c                      [         R                  " SS9   [        R                  " SS5        [        R                  " SS5        [        R
                  " SSS5        S S S 5        g ! , (       d  f       g = f)Nraiseallr   r   )r   errstater   eval_legendreeval_laguerreeval_gegenbauerr   r   r   test_warningsr.      sL    		!a#a#1a(	 
"	!	!s   AA%%
A3c                       \ rS rSrSr  SS jrS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rSrg)	TestPolys&   zI
Check that the eval_* functions agree with the constructed polynomials

r   c	                   ^ [         R                  R                  S5      n	/ n
[         R                  " U5       GH  nU VVs/ s H  u  pXU-
  U	R	                  U5      -  -   PM      nnn[         R
                  " U5      R                  nU(       d  S/nU H  nU(       a  U4[        U5      -   nOU4nUS   US   US   -
  U	R	                  U5      -  -   nUS   US'   US   US'   [         R                  " U" U6 R                  5      n[         R                  [         R                  " XS45      UU" U5      4   nU
R                  U5        M     GM     [         R                  " U
SS9n
U4S jn[         R                  " SS9   [        UU
[!        [#        [%        U5      S-   5      5      S	US
9nUR'                  5         S S S 5        g s  snnf ! , (       d  f       g = f)N  r   r   axisc                  l   > U S   R                  [        R                  " S5      5      4U SS  -   n T" U 6 $ )Nr   r	   r   )astyper   r
   )pfuncs    r   polyfunc&TestPolys.check_poly.<locals>.polyfuncD   s5    1RXXf-.01QR58A8Or   r'   r(   r   r"   r   )r   r   RandomStater   r   asarrayTtuplepoly1dcoefc_tileappendconcatenater*   r   listrangelencheck)selfr9   clsparam_rangesx_rangennnparamnxr   rngdatasetr   abparamsr8   r   polyzr:   dss    `                   r   
check_polyTestPolys.check_poly,   s   ii##D)2A<HILSQaQ3 000LFIZZ'))FuQxAAAJ'!*wqz"9388B<!GGqz!qz!yya.EE"''!V,aa89q!  " ..q1	 [[W%(GT%L8I!8K2L-Mr#%BHHJ &%- J, &%s   %G	<G
Gc                 j    U R                  [        R                  [        R                  SS/SS/SS9  g )NgGz
   r"   r   h㈵>rL   rM   r   )rY   r   eval_jacobiorthjacobirJ   s    r   test_jacobiTestPolys.test_jacobiM   s2    ++T[[&1;%?!#Qd 	 	4r   c                 j    U R                  [        R                  [        R                  SS/SS/SS9  g )Nr   r]   r   r   r   r   r^   r_   )rY   r   eval_sh_jacobira   	sh_jacobirc   s    r   test_sh_jacobiTestPolys.test_sh_jacobiR   s2    ..&-v%6A! 	 	#r   c                 h    U R                  [        R                  [        R                  S/SS/SS9  g )NgV-߿r]   r"   r   gHz>r_   )rY   r   r-   ra   
gegenbauerrc   s    r   test_gegenbauerTestPolys.test_gegenbauerW   s/    //&2^b!W! 	 	#r   c                 d    U R                  [        R                  [        R                  / SS/S9  g Nr"   r   rL   rM   )rY   r   r   ra   chebytrc   s    r   test_chebytTestPolys.test_chebyt\   *    ++T[[%'"a 	 	:r   c                 d    U R                  [        R                  [        R                  / SS/S9  g rs   )rY   r   eval_chebyura   chebyurc   s    r   test_chebyuTestPolys.test_chebyu`   rx   r   c                 d    U R                  [        R                  [        R                  / SS/S9  g Nr   rt   )rY   r   eval_chebysra   chebysrc   s    r   test_chebysTestPolys.test_chebysd   rx   r   c                 d    U R                  [        R                  [        R                  / SS/S9  g r   )rY   r   eval_chebycra   chebycrc   s    r   test_chebycTestPolys.test_chebych   rx   r   c                     [         R                  " SS9   U R                  [        R                  [
        R                  / SS/S9  S S S 5        g ! , (       d  f       g = fNignorer(   r   r   rt   )r   r*   rY   r   eval_sh_chebytra   	sh_chebytrc   s    r   test_sh_chebytTestPolys.test_sh_chebytl   sB    [[X&OOG22DNN)+aV  = '&&   1A
Ac                 d    U R                  [        R                  [        R                  / SS/S9  g Nr   r   rt   )rY   r   eval_sh_chebyura   	sh_chebyurc   s    r   test_sh_chebyuTestPolys.test_sh_chebyuq   s*    ..%'!Q 	 	9r   c                 d    U R                  [        R                  [        R                  / SS/S9  g rs   )rY   r   r+   ra   legendrerc   s    r   test_legendreTestPolys.test_legendreu   s*    --t}}%'"a 	 	:r   c                     [         R                  " SS9   U R                  [        R                  [
        R                  / SS/S9  S S S 5        g ! , (       d  f       g = fr   )r   r*   rY   r   eval_sh_legendrera   sh_legendrerc   s    r   test_sh_legendreTestPolys.test_sh_legendrey   sD    [[X&OOG44d6F6F)+aV  = '&&r   c                 f    U R                  [        R                  [        R                  S/SS/S9  g Nr\   r   d   rt   )rY   r   r$   ra   genlaguerrerc   s    r   test_genlaguerreTestPolys.test_genlaguerre~   s/    00$2B2B&1]QH 	 	Fr   c                 d    U R                  [        R                  [        R                  / SS/S9  g Nr   r   rt   )rY   r   r,   ra   laguerrerc   s    r   test_laguerreTestPolys.test_laguerre   s*    --t}}%'!S 	 	;r   c                 d    U R                  [        R                  [        R                  / SS/S9  g Nir   rt   )rY   r   eval_hermitera   hermiterc   s    r   test_hermiteTestPolys.test_hermite   s*    ,,dll%'$ 	 	>r   c                 d    U R                  [        R                  [        R                  / SS/S9  g r   )rY   r   eval_hermitenormra   hermitenormrc   s    r   test_hermitenormTestPolys.test_hermitenorm   s,    00$2B2B%'$ 	 	>r   Nr   r   r]   r]   r]   g:0yE>)__name__
__module____qualname____firstlineno____doc__rY   rd   rk   rp   rv   r|   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r0   r0   &   sc    
 EG*.B4
#
#
::::=
9:=
F;>>r   r0   c                   z    \ rS rSrSr  SS jrS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rSrg)TestRecurrence   zA
Check that the eval_* functions sig='ld->d' and 'dd->d' agree.

r   c                   ^ [         R                  R                  S5        / n[         R                  " U5       GH.  n	U V
Vs/ s H,  u  pXU
-
  [         R                  R	                  U5      -  -   PM.     nn
n[         R
                  " U5      R                  nU(       d  S/nU H  nU(       a  U	4[        U5      -   nOU	4nUS   US   US   -
  [         R                  R	                  U5      -  -   nUS   US'   US   US'   [        [        U5      S-   S-  S-   S9n[         R                  [         R                  " XS45      UT" X4-   0 UD64   nUR                  U5        M     GM1     [         R                  " USS9nU4S jn[         R                  " S	S
9   [        UU[!        [#        [        U5      S-   5      5      SUS9nUR%                  5         S S S 5        g s  snn
f ! , (       d  f       g = f)Nr3   r   r   d->dsigr4   c                     > U S   R                  [        R                  5      nU4U SS  -   n UR                  R                  n[        U[        U 5      S-
  S-  -   S-   S9nT" U 0 UD6$ )Nr   r   r   r   r   )r7   r   intpr
   chardictrH   )r8   p0p0_type_charkwr9   s       r   r:   +TestRecurrence.check_poly.<locals>.polyfunc   se    1RWW%B!"A88==L,#a&(C7%?@B>b>!r   r'   r(   r   r"   r   )r   r   seedr   r   r=   r>   r?   r   rH   rB   rC   rD   rE   r*   r   rF   rG   rI   )rJ   r9   rL   rM   rN   rO   rP   r   rR   r   rS   rT   rU   r8   r   r   rW   r:   rX   s    `                 r   rY   TestRecurrence.check_poly   s   
		t2ABNO,31aQ3		v 666,FOZZ'))FuQxAAAJ'!*wqz"9299>>";M!MMqz!qz!s1vaxnU23EE"''!V,aD1HR1HHIq!  " ..q1	" [[W%(GT%L8I!8K2L-Mr#%BHHJ &%3 P2 &%s   3G <G&&
G4c                 J    U R                  [        R                  SS/SS/S9  g )Nr\   r"   r   rt   )rY   r   r`   rc   s    r   rd   TestRecurrence.test_jacobi   s*    ++&1;%?!#Q 	 	)r   c                 J    U R                  [        R                  SS/SS/S9  g )Nrg   rh   r   r   rt   )rY   r   ri   rc   s    r   rk   TestRecurrence.test_sh_jacobi   s*    ..&-v%6A 	 	Hr   c                 H    U R                  [        R                  S/SS/S9  g )Nrn   r"   r   rt   )rY   r   r-   rc   s    r   rp   TestRecurrence.test_gegenbauer   s'    //&2^b!W 	 	Fr   c                 F    U R                  [        R                  / SS/S9  g rs   )rY   r   r   rc   s    r   rv   TestRecurrence.test_chebyt   $    ++%'"a 	 	:r   c                 F    U R                  [        R                  / SS/S9  g rs   )rY   r   rz   rc   s    r   r|   TestRecurrence.test_chebyu   r   r   c                 F    U R                  [        R                  / SS/S9  g r   )rY   r   r   rc   s    r   r   TestRecurrence.test_chebys   r   r   c                 F    U R                  [        R                  / SS/S9  g r   )rY   r   r   rc   s    r   r   TestRecurrence.test_chebyc   r   r   c                 F    U R                  [        R                  / SS/S9  g r   )rY   r   r   rc   s    r   r   TestRecurrence.test_sh_chebyt   $    ..%'!Q 	 	9r   c                 F    U R                  [        R                  / SS/S9  g r   )rY   r   r   rc   s    r   r   TestRecurrence.test_sh_chebyu   r   r   c                 F    U R                  [        R                  / SS/S9  g rs   )rY   r   r+   rc   s    r   r   TestRecurrence.test_legendre   s$    --%'"a 	 	:r   c                 F    U R                  [        R                  / SS/S9  g r   )rY   r   r   rc   s    r   r   TestRecurrence.test_sh_legendre   s$    00%'!Q 	 	9r   c                 H    U R                  [        R                  S/SS/S9  g r   )rY   r   r$   rc   s    r   r   TestRecurrence.test_genlaguerre   s'    00&1]QH 	 	Fr   c                 F    U R                  [        R                  / SS/S9  g r   )rY   r   r,   rc   s    r   r   TestRecurrence.test_laguerre   s$    --%'!S 	 	;r   c                 L    [         R                  " SS5      nSn[        X5        g )NF         ?gi\m)r   r   r   )rJ   vrS   s      r   r   TestRecurrence.test_hermite   s!      S)!r   Nr   )r   r   r   r   r   rY   rd   rk   rp   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s`    
 @B*."H)
HF::::99:9F;r   r   c                      [         R                  " [        R                  " SS5      5      (       d   e[         R                  " [        R                  " SS5      5      (       d   eg )Nr"   r   )r   r#   r   r   r   r   r   r   test_hermite_domainr      sF    88G((S1222288G,,R56666r   r   )r   r   r   r   r   c                 h   [         R                  " [        R                  " X5      5      [         R                  " [         R                  " X/5      5      :X  d   e[         R                  " [        R
                  " X5      5      [         R                  " [         R                  " X/5      5      :X  d   eg N)r   r#   r   r   anyr   )r   r   s     r   test_hermite_nanr      sp     88G((./266"((A6:J3KKKK88G,,Q23rvvbhhv>N7OOOOr   )r   r   r   g	@alphar   c                     [         R                  " [        R                  " XU5      5      n[         R                  " [         R                  " XU/5      5      nX4:X  d   eg r   )r   r#   r   r$   r   )r   r   r   nan_laguerrenan_args        r   test_genlaguerre_nanr     sF    
 88G44QqABLffRXXqm,-G"""r   g        gư>c                     [         R                  " [        R                  " XU5      5      n[         R                  " [         R                  " XU/5      5      nX4:X  d   eg r   )r   r#   r   r-   r   )r   r   r   nan_gegenbauerr   s        r   test_gegenbauer_nanr     sF    
 XXg55aBCNffRXXqm,-G$$$r   )numpyr   numpy.testingr   r   pytestscipy.specialr   scipy.special._orthogonalspecial_orthogonalra   scipy.special._testutilsr   r   r    r%   r.   r0   r   r   markparametrizenanr   r   r   r   r   r   <module>r
     sk    2  ! ( ( --4
<)f> f>Rb bJ7 i(q!RVVn-P . )P n-1bff+.q"&&k*# + / .# n-3266"23tQ/0% 1 4 .%r   