Ë
    qwjÀ  ã                   óŒ  — d dl Z d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZmZ ej                  j                  Zd„ Zej                  j#                  dddg«      ej                  j#                  d	g d
¢«      ej                  j#                  dg d¢«      ej                  j#                  dddg«      d„ «       «       «       «       Zd„ Zej                  j#                  dddg«      d„ «       Z edd¬«      ej                  j#                  deeg«      d„ «       «       Zej                  j#                  dddg«      d„ «       Zy)é    N)ÚfhtÚifhtÚ	fhtoffset)Úpoch)Úxp_assert_closeÚxp_assert_lessc                 ó   — d„ }t        j                  ddd«      }t        j                  |d   |d   z  «      }d}d}d}| j	                   |||«      «      }t        |||||¬	«      }g d
¢}	| j	                  |	| j                  ¬«      }	t        ||	«       t        |||¬«      }t        |||||¬	«      }g d¢}	| j	                  |	| j                  ¬«      }	t        ||	«       d}t        |||¬«      }t        |«      }t        |||||¬	«      }g d¢}	| j	                  |	| j                  ¬«      }	t        ||	«       d}t        |||¬«      }t        |«      }t        |||||¬	«      }g d¢}	| j	                  |	| j                  ¬«      }	t        ||	«       y )Nc                 óL   — | |dz   z  t        j                  | dz   dz  «      z  S ©Né   é   )ÚnpÚexp)ÚrÚmus     ú`/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/fft/tests/test_fftlog.pyÚfz&test_fht_agrees_with_fftlog.<locals>.f   s'   € Ø�2�a‘4‰yœŸ™  A¡  a¡›Ñ(Ð(ó    éüÿÿÿé   é   r   r   g333333Ó?ç        ©ÚoffsetÚbias)gÿÐ=lS¿gá–l¾1£Z?gp¢Rßð_¿gœ~]’
o?g€°0d±@?g–Åíº…œ?g0¨2†u¹?g7c4UoÝ?gUËû�/5Ô?gÀÞ 3²ßJ¿g QÊi©«I¿g!m¿ÞÃ9?g áä®1¿g?ˆàJÇb7?g »tj3B¿g šÂ	'K?©Údtype©r   )g  Dy‡Ó?g ò¾T Iã¾g Ýí9¥4?g°B ûÖúM?gÈQº89Êw?g�ÀÄ¥™š?gZøT3%Á?gz;_x˜ÛÞ?g9%PÔúÑ?gv@žÀ‹Ý†¿gA”AÊÙY]?gayiìég;¿gGÁI<!?g FÌÚ\m¿gÿH¬žÒ ?g @(ÙLGü¾gš™™™™™é?)gáÿ×Uê_Àg0E>y7äÅ?g4â¬ž	F»?gR^Ø¡*9ª¿g¤-ägÑÿš?gÁ“Ó!a‘?gRÃèÞ´ À?gÍmžMUUÞ?g¨ å ð.Ò?g'?£eH�¿gŸZ7ZòÇP?gâmÜ·`�%¿gCGÎïT?gçž2œTà¾gÒ…°ýêuÀ>gå/”&ô®¾gš™™™™™é¿)göGãË3Øâ>g`4]<]?g[8„²ÛÖ+?g,8GédŠP?g¢°¢
¦u?g›,×—$5™?g~„}ç£¿?grƒa,‹4Þ?gœV—�°„Ò?gh¸`>E‘¿gDgôyÙ–?g¸P2�ZSŽ¿gÍ†ŽË�©Å?gÜºJžíÒÓ?g[«U¶+@gð"äÚ%@)
r   ÚlogspaceÚmathÚlogÚasarrayr   Úfloat64r   r   Úfloat)
Úxpr   r   Údlnr   r   r   ÚaÚoursÚtheirss
             r   Útest_fht_agrees_with_fftlogr*      s˜  € ò)ô 	�‰�B˜˜2Ó€Aä
�(‰(�1�Q‘4˜˜!™‘9Ó
€CØ	€BØ€FØ€Dà
�
‰
‘1�Q˜“8Ó€Aô ˆq�#�r &¨tÔ4€Dò@€Fð �Z‰Z˜ b§j¡jˆZÓ1€FÜ�D˜&Ô!ô �s˜B TÔ*€FÜˆq�#�r &¨tÔ4€Dò@€Fð �Z‰Z˜ b§j¡jˆZÓ1€FÜ�D˜&Ô!ð €DÜ�s˜B TÔ*€Fô �6‹]€Fäˆq�#�r &¨tÔ4€Dò@€Fð �Z‰Z˜ b§j¡jˆZÓ1€FÜ�D˜&Ô!ð €DÜ�s˜B TÔ*€FÜ�6‹]€Fäˆq�#�r &¨tÔ4€Dò@€Fð �Z‰Z˜ b§j¡jˆZÓ1€FÜ�D˜&Õ!r   ÚoptimalTFr   )r   ç      ð?g      ð¿r   )r   gš™™™™™¹?gš™™™™™¹¿Úné@   é?   c                 ó^  — t         j                  j                  d«      }|j                  |j	                  | «      «      }|j                  dd«      }|j                  dd«      }|rt        ||||¬«      }t        |«      }t        |||||¬«      }	t        |	||||¬«      }
t        |
|d¬	«       y )
Nì   ÍE3  éÿÿÿÿr   éþÿÿÿr   ©Úinitialr   r   gvƒôõ!„>)Úrtol)r   ÚrandomÚRandomStater"   Ústandard_normalÚuniformr   r$   r   r   r   )r-   r   r   r+   r%   Úrngr'   r&   r   ÚAÚa_s              r   Útest_fht_identityr>   a   sŸ   € ô
 �)‰)×
Ñ
 
Ó
+€Cà
�
‰
�3×&Ñ& qÓ)Ó*€AØ
�+‰+�b˜!Ó
€CØ	�‰�R˜Ó	€BáÜ˜3 ¨F¸Ô>ˆô �v“ˆäˆAˆs�B˜v¨DÔ1€AÜ	ˆa��b ¨dÔ	3€Bä�B˜ Ö'r   c                 óú  — t         j                  j                  d«      }| j                  |j	                  d«      «      }|j                  dd«      }d\  }}t        j                  d¬«      5 }t        ||||¬«       |rJ d	«       ‚	 d d d «       d
\  }}t        j                  d¬«      5 }t        ||||¬«       |rJ d	«       ‚	 d d d «       d\  }}t        j                  t        «      5 }t        ||||¬«       |sJ d«       ‚	 d d d «       d
\  }}t        j                  t        «      5 }t        ||||¬«       |sJ d«       ‚	 d d d «       y # 1 sw Y   ŒÇxY w# 1 sw Y   Œ–xY w# 1 sw Y   ŒbxY w# 1 sw Y   y xY w)Nr1   r.   r2   r   )g      Àr,   T)Úrecordr   z)fht warned about a well-defined transform)g      Àç      à?)g      ÀrA   z+fht did not warn about a singular transformz,ifht did not warn about a singular transform)r   r7   r8   r"   r9   r:   ÚwarningsÚcatch_warningsr   ÚpytestÚwarnsÚWarningr   )r%   r;   r'   r&   r   r   r@   s          r   Útest_fht_special_casesrG   z   sV  € Ü
�)‰)×
Ñ
 
Ó
+€Cà
�
‰
�3×&Ñ& rÓ*Ó+€AØ
�+‰+�b˜!Ó
€Cð
 �H€BˆÜ	×	 Ñ	 ¨Õ	-°ÜˆAˆs�B˜TÕ"ÙÐFÐFÓFˆz�6÷ 
.ð
 �H€BˆÜ	×	 Ñ	 ¨Õ	-°ÜˆAˆs�B˜TÕ"ÙÐFÐFÓFˆz�6÷ 
.ð �H€BˆÜ	�‰”gÔ	 &ÜˆAˆs�B˜TÕ"ÙÐDÐDÓD‰v÷ 
ð �H€BˆÜ	�‰”gÔ	 &ÜˆQ��R˜dÕ#ÙÐEÐEÓE‰v÷ 
Ð	÷) 
.Ð	-ú÷ 
.Ð	-ú÷ 
Ð	ú÷ 
Ð	ús0   Á-EÂ*EÃ*E%Ä*E1ÅEÅE"Å%E.Å1E:c                 ó$  — t         j                  j                  d«      }|j                  dd«      }|j                  d|z
  d«      }t        j                  dd| «      }|j                  ||z  «      }t        j                  |d   |d   z  «      }t        ||d	|¬
«      }t        |«      }t        |||||¬«      }	t        j                  |«      |d d d…   z  }
|j                  d|
z  |z  t        |dz   |z
  dz  |«      z  «      }t        |	|«       y )Nr1   r   é   r2   rA   r3   r   r   r   r4   r   )r   r7   r8   r:   r   r"   r    r!   r   r$   r   r   r   r   )r-   r%   r;   r   Úgammar   r'   r&   r   r<   ÚkÚAts               r   Útest_fht_exactrM   �   sý   € ä
�)‰)×
Ñ
 
Ó
+€Cð
 
�‰�Q˜Ó	€Bð �K‰K˜˜2™˜sÓ#€Eä
�‰�B˜˜1Ó€AØ
�
‰
�1�e‘8Ó€Aä
�(‰(�1�Q‘4˜˜!™‘9Ó
€Cä�s˜B¨°%Ô8€Fô �6‹]€FäˆAˆs�B˜v¨EÔ2€Aä
�‰ˆv‹�q™˜2˜‘wÑ€Að 
�‰�Q�q‘S˜5‘L¤4¨¨A©¨e©°Q©¸Ó#>Ñ>Ó	?€Bä�A�rÕr   z,array-likes only supported for NumPy backend)Únp_onlyÚreasonÚopc                 óˆ   — ddgddggddgddggddgddggg}t         ||dd«       || j                  |«      dd«      «       y )Nr,   g       @)r   r"   )r%   rP   Úxs      r   Útest_array_likerS   ¼   s`   € ð �ˆ*�s˜C�jÐ	!Ø�ˆ*�s˜C�jÐ	!Ø�ˆ*�s˜C�jÐ	!ð	#€Aô ‘B�q˜#˜s“O¡R¨¯
©
°1«°s¸CÓ%@ÕAr   é€   é�   c                 ó>  ‡ — ‰ j                  d«      }d}t        j                  dd|«      }t        j                  |d   |d   z  «      }t        |dt        j                  d«      z  |¬«      }‰ j                  ||j                  ¬	«      }t        j                  |«      ‰ j                  |d
¬«      z  }ˆ fd„} |||«      }	t        |	|||¬«      }
 |||«      }‰ j                  ‰ j                  |
|z
  |z  «      «      }t        |‰ j                  d«      d   «       y )Nr,   r   iùÿÿÿr   r   iúÿÿÿé
   )r5   r   r   r2   )Úaxisc                 óF   •— | |dz   z  ‰j                  | dz   dz  «      z  S r   )r   )rR   r   r%   s     €r   r   ztest_gh_21661.<locals>.fÏ   s(   ø€ Ø�2˜‘6‰{˜2Ÿ6™6 1 a¡4 %¨¡'›?Ñ*Ð*r   )r   r   g `ºm3*pC© )r"   r   r   r    r!   r   r   r   Úflipr   ÚmaxÚabsr   )r%   r-   Úoner   r   r&   r   rK   r   Úa_rÚfht_valÚa_kÚrel_errs   `            r   Útest_gh_21661rc   Å   sö   ø€ à
�*‰*�S‹/€CØ	€BÜ
�‰�B˜˜1Ó€AÜ
�(‰(�1�Q‘4˜!˜A™$‘;Ó
€CÜ�s B¬¯©°«¡O¸Ô;€FØ
�
‰
�1˜CŸI™Iˆ
Ó&€AÜ�‰�Ó˜2Ÿ7™7 1¨2˜7Ó.Ñ.€Aô+ñ ˆAˆr‹(€CÜ�#�s˜r¨&Ô1€GÙ
ˆAˆr‹(€CØ�f‰f�R—V‘V˜W s™]¨cÑ1Ó2Ó3€GÜ�7˜BŸJ™J xÓ0°Ñ4Õ5r   )rB   r    Únumpyr   rD   Úscipy.fft._fftlogr   r   r   Úscipy.specialr   Úscipy._lib._array_apir   r   ÚmarkÚskip_xp_backendsr*   Úparametrizer>   rG   rM   rS   rc   rZ   r   r   Ú<module>rk      sE  ðÛ Û ã Û ç 2Ñ 2Ý ç Aà—;‘;×/Ñ/Ð òO"ðd ‡�×Ñ˜ T¨5 MÓ2Ø‡�×Ñ˜Ò#3Ó4Ø‡�×Ñ˜¢Ó0Ø‡�×Ñ˜˜r 2˜hÓ'ñ(ó (ó 1ó 5ó 3ð(ò* FðF ‡�×Ñ˜˜r 2˜hÓ'ñó (ðñ< ˜$ØGôIà‡�×Ñ˜  T˜{Ó+ñBó ,óIðBð ‡�×Ñ˜˜s C˜jÓ)ñ6ó *ñ6r   