Ë
    âQ(hc%  ã                   ó   — d dl Zd dlmZmZ d dlZd dlmZ d dlm	c m
Z d dlmZ d„ Zd„ Zd„ Zd„ Z G d	„ d
«      Z G d„ d«      Zd„ Zej*                  j-                  dg d¢«      ej*                  j-                  dd dej.                  g«      d„ «       «       Zej*                  j-                  dg d¢«      ej*                  j-                  ddej.                  g«      ej*                  j-                  ddej.                  g«      d„ «       «       «       Zej*                  j-                  dg d¢«      ej*                  j-                  dddej.                  g«      ej*                  j-                  dddej.                  g«      d„ «       «       «       Zy)é    N)Úassert_Úassert_allclose)Ú_ufuncs)ÚFuncDatac                  óh  — t        j                  dddt        j                  d«      ¬«      } dt         j                  j	                  «       z  dz
  }t        j
                  | t        j                  |«      z  «      }t        j                  | |«      }t        t        j                  ||d¬	«      «       y )
Nr   i'  é   Úlong)Údtypeé   é   gVçž¯Ò<©Úrtol)ÚnpÚaranger
   ÚrandomÚrandÚcosÚarccosr   Úeval_chebytr   Úallclose)ÚnÚxÚv1Úv2s       úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/special/tests/test_orthogonal_eval.pyÚtest_eval_chebytr   
   sz   € Ü
�	‰	�!�U˜A¤R§X¡X¨fÓ%5Ô6€AØ	Œ"�)‰)�.‰.Ó
Ñ˜QÑ€AÜ	�‰�”"—)‘)˜A“,‘Ó	€BÜ	×	Ñ	˜Q Ó	"€BÜŒB�K‰K˜˜B UÔ+Õ,ó    c                  ó:   — t        j                  dd«      dk(  sJ ‚y )Nr   y       @        g     ²³@)r   r   © r   r   Útest_eval_chebyt_gh20129r       s   € ä×Ñ˜q &Ó)¨VÒ3Ð3Ñ3r   c            	      óÐ   — t        t        j                  t        j                  ddd«      «      «       t        t        j                  t        j                  ddd«      «      «       y )Nr   éÿÿÿÿgš™™™™™¹?)r   r   Úisnanr   Úeval_genlaguerrer   r   r   Ú!test_eval_genlaguerre_restrictionr%      sB   € äŒB�H‰H”W×-Ñ-¨a°°QÓ7Ó8Ô9ÜŒB�H‰H”W×-Ñ-¨c°2°qÓ9Ó:Õ;r   c                  óà   — t        j                  d¬«      5  t        j                  dd«       t        j                  dd«       t        j
                  ddd«       d d d «       y # 1 sw Y   y xY w)NÚraise©Úallr   r   )r   Úerrstater   Úeval_legendreÚeval_laguerreÚeval_gegenbauerr   r   r   Útest_warningsr.      sU   € ä	�‰˜Ô	!ñ )ä×Ñ˜a Ô#Ü×Ñ˜a Ô#Ü×Ñ  1 aÔ(÷	)÷ )ñ )ús   —AA$Á$A-c                   óv   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	TestPolyszQ
    Check that the eval_* functions agree with the constructed polynomials

    c	                 óž  ‡— t         j                  j                  d«      }	g }
t        j                  |«      D �]  }|D ��cg c]  \  }}|||z
  |	j	                  |«      z  z   ‘Œ! }}}t        j
                  |«      j                  }|sdg}|D ]¯  }|r|ft        |«      z   }n|f}|d   |d   |d   z
  |	j	                  |«      z  z   }|d   |d<   |d   |d<   t        j                   ||Ž j                  «      }t         j                  t        j                  ||df«      | ||«      f   }|
j                  |«       Œ± �Œ
 t        j                  |
d¬«      }
ˆfd„}t        j                  d¬«      5  t        ||
t!        t#        t%        |«      dz   «      «      d	|¬
«      }|j'                  «        d d d «       y c c}}w # 1 sw Y   y xY w)NéÒ  r   r   ©Úaxisc                  ój   •— | d   j                  t        j                  d«      «      f| dd  z   }  ‰| Ž S )Nr   r	   r   )Úastyper   r
   )ÚpÚfuncs    €r   Úpolyfuncz&TestPolys.check_poly.<locals>.polyfuncD   s5   ø€ Ø�1‘—‘œRŸX™X fÓ-Ó.Ð0°1°Q°R°5Ñ8ˆAÙ˜�8ˆOr   r'   r(   r   r"   r   )r   r   ÚRandomStater   r   ÚasarrayÚTÚtupleÚpoly1dÚcoefÚc_ÚtileÚappendÚconcatenater*   r   ÚlistÚrangeÚlenÚcheck)Úselfr8   ÚclsÚparam_rangesÚx_rangeÚnnÚnparamÚnxr   ÚrngÚdatasetr   ÚaÚbÚparamsr7   r   ÚpolyÚzr9   Údss    `                   r   Ú
check_polyzTestPolys.check_poly,   sª  ø€ ä�i‰i×#Ñ# DÓ)ˆàˆÜ—‘˜2“ó 	"ˆAØ<H×I±S°Q°q�a˜1˜Q™3 §¡¨Ó 0Ñ0Ó0ÐIˆFÑIÜ—Z‘Z Ó'×)Ñ)ˆFÙØ˜�Øò 
"�ÙØ˜œu Q›x™‘Aà˜�AØ˜A‘J '¨!¡*¨w°q©zÑ"9¸3¿8¹8ÀB»<Ñ!GÑG�Ø˜q‘z��!‘Ø˜q‘z��!‘Ü—y‘y¡ a §¡Ó.�Ü—E‘Eœ"Ÿ'™' ! b¨ VÓ,¨a±°a³Ð8Ñ9�Ø—‘˜qÕ!ò
"ð	"ô" —.‘. ¨qÔ1ˆô	ô �[‰[˜WÔ%ñ 	Ü˜( G¬T´%¼¸LÓ8IÈ!Ñ8KÓ2LÓ-MÈrØ#ô%ˆBà�H‰HŒJ÷	ð 	ùó- J÷,	ð 	ús   Á$F=Å5?GÇGc                 óp   — | j                  t        j                  t        j                  ddgddgd¬«       y )N©g®Gáz®ï¿é
   r"   r   çñhãˆµøä>©rJ   rK   r   )rW   r   Úeval_jacobiÚorthÚjacobi©rH   s    r   Útest_jacobizTestPolys.test_jacobiM   s2   € Ø�‰œ×+Ñ+¬T¯[©[Ø&1°;Ð%?Ø!# Q ¨dð 	õ 	4r   c                 óp   — | j                  t        j                  t        j                  ddgddgd¬«       y )N©r   rZ   ©r   r   r   r   r[   r\   )rW   r   Úeval_sh_jacobir^   Ú	sh_jacobir`   s    r   Útest_sh_jacobizTestPolys.test_sh_jacobiR   s2   € Ø�‰œ×.Ñ.´·±Ø&-¨vÐ%6ÀÀAÀØ!ð 	õ 	#r   c                 ón   — | j                  t        j                  t        j                  dgddgd¬«       y )N©gV-²�ïß¿rZ   r"   r   gH¯¼šò×z>r\   )rW   r   r-   r^   Ú
gegenbauerr`   s    r   Útest_gegenbauerzTestPolys.test_gegenbauerW   s/   € Ø�‰œ×/Ñ/´·±Ø&2 ^¸bÀ!¸WØ!ð 	õ 	#r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y ©Nr"   r   ©rJ   rK   )rW   r   r   r^   Úchebytr`   s    r   Útest_chebytzTestPolys.test_chebyt\   ó*   € Ø�‰œ×+Ñ+¬T¯[©[Ø%'°"°a°ð 	õ 	:r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y rm   )rW   r   Úeval_chebyur^   Úchebyur`   s    r   Útest_chebyuzTestPolys.test_chebyu`   rq   r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y ©Néþÿÿÿr   rn   )rW   r   Úeval_chebysr^   Úchebysr`   s    r   Útest_chebyszTestPolys.test_chebysd   rq   r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y rw   )rW   r   Úeval_chebycr^   Úchebycr`   s    r   Útest_chebyczTestPolys.test_chebych   rq   r   c                 óÀ   — t        j                  d¬«      5  | j                  t        j                  t
        j                  g ddg¬«       d d d «       y # 1 sw Y   y xY w©NÚignorer(   r   r   rn   )r   r*   rW   r   Úeval_sh_chebytr^   Ú	sh_chebytr`   s    r   Útest_sh_chebytzTestPolys.test_sh_chebytl   sK   € Ü�[‰[˜XÔ&ñ 	=Ø�O‰OœG×2Ñ2´D·N±NØ)+°a¸°Vð ô =÷	=÷ 	=ñ 	=úó   —4AÁAc                 ój   — | j                  t        j                  t        j                  g ddg¬«       y ©Nr   r   rn   )rW   r   Úeval_sh_chebyur^   Ú	sh_chebyur`   s    r   Útest_sh_chebyuzTestPolys.test_sh_chebyuq   s*   € Ø�‰œ×.Ñ.´·±Ø%'°!°Q°ð 	õ 	9r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y rm   )rW   r   r+   r^   Úlegendrer`   s    r   Útest_legendrezTestPolys.test_legendreu   s*   € Ø�‰œ×-Ñ-¬t¯}©}Ø%'°"°a°ð 	õ 	:r   c                 óÀ   — t        j                  d¬«      5  | j                  t        j                  t
        j                  g ddg¬«       d d d «       y # 1 sw Y   y xY wr�   )r   r*   rW   r   Úeval_sh_legendrer^   Úsh_legendrer`   s    r   Útest_sh_legendrezTestPolys.test_sh_legendrey   sM   € Ü�[‰[˜XÔ&ñ 	=Ø�O‰OœG×4Ñ4´d×6FÑ6FØ)+°a¸°Vð ô =÷	=÷ 	=ñ 	=úr†   c                 ól   — | j                  t        j                  t        j                  dgddg¬«       y ©NrY   r   éd   rn   )rW   r   r$   r^   Úgenlaguerrer`   s    r   Útest_genlaguerrezTestPolys.test_genlaguerre~   s/   € Ø�‰œ×0Ñ0´$×2BÑ2BØ&1 ]¸QÀ¸Hð 	õ 	Fr   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y ©Nr   r•   rn   )rW   r   r,   r^   Úlaguerrer`   s    r   Útest_laguerrezTestPolys.test_laguerre‚   s*   € Ø�‰œ×-Ñ-¬t¯}©}Ø%'°!°S°ð 	õ 	;r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y ©Niœÿÿÿr•   rn   )rW   r   Úeval_hermiter^   Úhermiter`   s    r   Útest_hermitezTestPolys.test_hermite†   s*   € Ø�‰œ×,Ñ,¬d¯l©lØ%'°$¸°ð 	õ 	>r   c                 ój   — | j                  t        j                  t        j                  g ddg¬«       y r�   )rW   r   Úeval_hermitenormr^   Úhermitenormr`   s    r   Útest_hermitenormzTestPolys.test_hermitenormŠ   s,   € Ø�‰œ×0Ñ0´$×2BÑ2BØ%'°$¸°ð 	õ 	>r   N©r   r   rZ   rZ   rZ   g:Œ0âŽyE>)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rW   ra   rg   rk   rp   ru   r{   r   r…   r‹   rŽ   r’   r—   r›   r    r¤   r   r   r   r0   r0   &   sc   „ ñð
 EGØ*.óòB4ò
#ò
#ò
:ò:ò:ò:ò=ò
9ò:ò=ò
Fò;ò>ó>r   r0   c                   óp   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRecurrencezI
    Check that the eval_* functions sig='ld->d' and 'dd->d' agree.

    c                 óÖ  ‡— t         j                  j                  d«       g }t        j                  |«      D �]#  }	|D �
�cg c]-  \  }
}|
||
z
  t         j                  j	                  |«      z  z   ‘Œ/ }}
}t        j
                  |«      j                  }|sdg}|D ]½  }|r|	ft        |«      z   }n|	f}|d   |d   |d   z
  t         j                  j	                  |«      z  z   }|d   |d<   |d   |d<   t        t        |«      dz   dz  dz   ¬«      }t         j                  t        j                  ||df«      | ‰||fz   i |¤Žf   }|j                  |«       Œ¿ �Œ& t        j                  |d¬«      }ˆfd„}t        j                  d	¬
«      5  t        ||t!        t#        t        |«      dz   «      «      d|¬«      }|j%                  «        d d d «       y c c}}
w # 1 sw Y   y xY w)Nr2   r   r   Údú->d©Úsigr3   c                  óØ   •— | d   j                  t        j                  «      }|f| dd  z   } |j                  j                  }t        |t        | «      dz
  dz  z   dz   ¬«      } ‰| i |¤ŽS )Nr   r   r­   r®   r¯   )r6   r   Úintpr
   ÚcharÚdictrF   )r7   Úp0Úp0_type_charÚkwr8   s       €r   r9   z+TestRecurrence.check_poly.<locals>.polyfunc­   se   ø€ Ø�1‘—‘œRŸW™WÓ%ˆBØ�˜˜!˜"˜‘ˆAØŸ8™8Ÿ=™=ˆLÜ˜,¬#¨a«&°©(°C©Ñ7¸%Ñ?Ô@ˆBÙ˜�>˜b‘>Ð!r   r'   r(   r   r"   r   )r   r   Úseedr   r   r;   r<   r=   r´   rF   r@   rA   rB   rC   r*   r   rD   rE   rG   )rH   r8   rJ   rK   rL   rM   rN   r   rP   r   rQ   rR   rS   r7   r   r·   rU   r9   rV   s    `                 r   rW   zTestRecurrence.check_poly•   sÀ  ø€ ä
�	‰	�‰�tÔàˆÜ—‘˜2“ó 	"ˆAØBN×O¹3¸1¸Q�a˜1˜Q™3¤§	¡	§¡¨vÓ 6Ñ6Ó6ÐOˆFÑOÜ—Z‘Z Ó'×)Ñ)ˆFÙØ˜�Øò 
"�ÙØ˜œu Q›x™‘Aà˜�AØ˜A‘J '¨!¡*¨w°q©zÑ"9¼2¿9¹9¿>¹>È"Ó;MÑ!MÑM�Ø˜q‘z��!‘Ø˜q‘z��!‘Üœs 1›v a™x¨™n¨UÑ2Ô3�Ü—E‘Eœ"Ÿ'™' ! b¨ VÓ,¨a±¸¸Q¸D¹Ð1HÀRÑ1HÐHÑI�Ø—‘˜qÕ!ò
"ð	"ô" —.‘. ¨qÔ1ˆô	"ô �[‰[˜WÔ%ñ 	Ü˜( G¬T´%¼¸LÓ8IÈ!Ñ8KÓ2LÓ-MÈrØ#ô%ˆBà�H‰HŒJ÷	ð 	ùó3 P÷2	ð 	ús   Á2GÆ?GÇG(c                 óP   — | j                  t        j                  ddgddg¬«       y )NrY   r"   r   rn   )rW   r   r]   r`   s    r   ra   zTestRecurrence.test_jacobi¹   s*   € Ø�‰œ×+Ñ+Ø&1°;Ð%?Ø!# Q ð 	õ 	)r   c                 óP   — | j                  t        j                  ddgddg¬«       y )Nrc   rd   r   r   rn   )rW   r   re   r`   s    r   rg   zTestRecurrence.test_sh_jacobi¾   s*   € Ø�‰œ×.Ñ.Ø&-¨vÐ%6ÀÀAÀð 	õ 	Hr   c                 óN   — | j                  t        j                  dgddg¬«       y )Nri   r"   r   rn   )rW   r   r-   r`   s    r   rk   zTestRecurrence.test_gegenbauerÂ   s'   € Ø�‰œ×/Ñ/Ø&2 ^¸bÀ!¸Wð 	õ 	Fr   c                 óL   — | j                  t        j                  g ddg¬«       y rm   )rW   r   r   r`   s    r   rp   zTestRecurrence.test_chebytÆ   ó$   € Ø�‰œ×+Ñ+Ø%'°"°a°ð 	õ 	:r   c                 óL   — | j                  t        j                  g ddg¬«       y rm   )rW   r   rs   r`   s    r   ru   zTestRecurrence.test_chebyuÊ   r½   r   c                 óL   — | j                  t        j                  g ddg¬«       y rw   )rW   r   ry   r`   s    r   r{   zTestRecurrence.test_chebysÎ   r½   r   c                 óL   — | j                  t        j                  g ddg¬«       y rw   )rW   r   r}   r`   s    r   r   zTestRecurrence.test_chebycÒ   r½   r   c                 óL   — | j                  t        j                  g ddg¬«       y rˆ   )rW   r   rƒ   r`   s    r   r…   zTestRecurrence.test_sh_chebytÖ   ó$   € Ø�‰œ×.Ñ.Ø%'°!°Q°ð 	õ 	9r   c                 óL   — | j                  t        j                  g ddg¬«       y rˆ   )rW   r   r‰   r`   s    r   r‹   zTestRecurrence.test_sh_chebyuÚ   rÂ   r   c                 óL   — | j                  t        j                  g ddg¬«       y rm   )rW   r   r+   r`   s    r   rŽ   zTestRecurrence.test_legendreÞ   s$   € Ø�‰œ×-Ñ-Ø%'°"°a°ð 	õ 	:r   c                 óL   — | j                  t        j                  g ddg¬«       y rˆ   )rW   r   r�   r`   s    r   r’   zTestRecurrence.test_sh_legendreâ   s$   € Ø�‰œ×0Ñ0Ø%'°!°Q°ð 	õ 	9r   c                 óN   — | j                  t        j                  dgddg¬«       y r”   )rW   r   r$   r`   s    r   r—   zTestRecurrence.test_genlaguerreæ   s'   € Ø�‰œ×0Ñ0Ø&1 ]¸QÀ¸Hð 	õ 	Fr   c                 óL   — | j                  t        j                  g ddg¬«       y r™   )rW   r   r,   r`   s    r   r›   zTestRecurrence.test_laguerreê   s$   € Ø�‰œ×-Ñ-Ø%'°!°S°ð 	õ 	;r   c                 óL   — t        j                  dd«      }d}t        ||«       y )NéF   ç      ð?g˜i\ŠmÌ)r   rž   r   )rH   ÚvrQ   s      r   r    zTestRecurrence.test_hermiteî   s#   € Ü× Ñ   SÓ)ˆØ!ˆÜ˜˜1Õr   Nr¥   )r¦   r§   r¨   r©   rW   ra   rg   rk   rp   ru   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                  ó°   — t        j                  t        j                  dd«      «      sJ ‚t        j                  t        j                  dd«      «      sJ ‚y )Nr"   rÊ   )r   r#   r   rž   r¢   r   r   r   Útest_hermite_domainrÍ   ô   s@   € ä�8‰8”G×(Ñ(¨¨SÓ1Ô2Ð2Ð2Ü�8‰8”G×,Ñ,¨R°Ó5Ô6Ð6Ñ6r   r   )r   r   r   r   r   c                 ó\  — t        j                  t        j                  | |«      «      t        j                  t        j                  | |g«      «      k(  sJ ‚t        j                  t        j
                  | |«      «      t        j                  t        j                  | |g«      «      k(  sJ ‚y ©N)r   r#   r   rž   Úanyr¢   )r   r   s     r   Útest_hermite_nanrÑ   ú   sx   € ô �8‰8”G×(Ñ(¨¨AÓ.Ó/´2·6±6¼"¿(¹(ÀAÀqÀ6Ó:JÓ3KÒKÐKÐKÜ�8‰8”G×,Ñ,¨Q°Ó2Ó3´r·v±v¼b¿h¹hÈÈ1ÀvÓ>NÓ7OÒOÐOÑOr   )r   r   r   gš™™™™™	@Úalphar   c                 ó¼   — t        j                  t        j                  | ||«      «      }t        j                  t        j                  | ||g«      «      }||k(  sJ ‚y rÏ   )r   r#   r   r$   rÐ   )r   rÒ   r   Únan_laguerreÚnan_args        r   Útest_genlaguerre_nanrÖ     sL   € ô
 —8‘8œG×4Ñ4°Q¸¸qÓAÓB€LÜ�f‰f”R—X‘X˜q %¨˜mÓ,Ó-€GØ˜7Ò"Ð"Ñ"r   g        g�íµ ÷Æ°>c                 ó¼   — t        j                  t        j                  | ||«      «      }t        j                  t        j                  | ||g«      «      }||k(  sJ ‚y rÏ   )r   r#   r   r-   rÐ   )r   rÒ   r   Únan_gegenbauerrÕ   s        r   Útest_gegenbauer_nanrÙ     sL   € ô
 —X‘Xœg×5Ñ5°a¸ÀÓBÓC€NÜ�f‰f”R—X‘X˜q %¨˜mÓ,Ó-€GØ˜WÒ$Ð$Ñ$r   )Únumpyr   Únumpy.testingr   r   ÚpytestÚscipy.specialr   Úscipy.special._orthogonalÚspecialÚ_orthogonalr^   Ú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 ! R§V¡V˜nÓ-ñPó .ó )ðPð ‡�×Ñ˜šnÓ-Ø‡�×Ñ˜ 1 b§f¡f +Ó.Ø‡�×Ñ˜˜q "§&¡&˜kÓ*ñ#ó +ó /ó .ð#ð ‡�×Ñ˜šnÓ-Ø‡�×Ñ˜ 3¨¨2¯6©6Ð"2Ó3Ø‡�×Ñ˜˜t Q¨¯©Ð/Ó0ñ%ó 1ó 4ó .ñ%r   