+
    LV-jÀ  ã                   óŽ  € ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHt ^ RI	H
t
 ^ RIHtHt ]P                  P                  tR t]P                  P#                  RRR.4      ]P                  P#                  R	. RO4      ]P                  P#                  R
. RO4      ]P                  P#                  R^@^?.4      R 4       4       4       4       tR t]P                  P#                  R^@^?.4      R 4       t]! RRR7      ]P                  P#                  R]].4      R 4       4       t]P                  P#                  R^€^�.4      R 4       tR# )é    N)ÚfhtÚifhtÚ	fhtoffset)Úpoch)Úxp_assert_closeÚxp_assert_lessc                 ó  € R  p\         P                  ! R^^4      p\        P                  ! V^,          V^ ,          ,          4      pRpRpRpV P	                  V! W$4      4      p\        WsWEVR7      p. R	Op	V P	                  W�P                  R7      p	\        W‰4       \        W4VR7      p\        WsWEVR7      p. R
Op	V P	                  W�P                  R7      p	\        W‰4       Rp\        W4VR7      p\        V4      p\        WsWEVR7      p. ROp	V P	                  W�P                  R7      p	\        W‰4       Rp\        W4VR7      p\        V4      p\        WsWEVR7      p. ROp	V P	                  W�P                  R7      p	\        W‰4       R# )c                 ót   € W^,           ,          \         P                  ! V ^,          ) ^,          4      ,          # ©é   )ÚnpÚexp)ÚrÚmus   &&Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/scipy/fft/tests/test_fftlog.pyÚfÚ&test_fht_agrees_with_fftlog.<locals>.f   s%   € Ø�a•4�yœŸš  A¥  a¥›Õ(Ð(ó    g333333Ó?ç        ©ÚoffsetÚbias©Údtype©r   gš™™™™™é?Néüÿÿÿ)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?)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áÿ×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(      sp  € ò)ô 	�Š�B˜˜2Ó€Aä
�(Š(�1�Q•4˜˜!�•9Ó
€CØ	€BØ€FØ€Dà
�
‰
‘1�Q“8Ó€Aô ˆq�r¨tÔ4€Dò@€Fð �Z‰Z˜§j¡jˆZÓ1€FÜ�DÔ!ô �s TÔ*€FÜˆq�r¨tÔ4€Dò@€Fð �Z‰Z˜§j¡jˆZÓ1€FÜ�DÔ!ð €DÜ�s TÔ*€Fô �6‹]€Fäˆq�r¨tÔ4€Dò@€Fð �Z‰Z˜§j¡jˆZÓ1€FÜ�DÔ!ð €DÜ�s TÔ*€FÜ�6‹]€Fäˆq�r¨tÔ4€Dò@€Fð �Z‰Z˜§j¡jˆZÓ1€FÜ�DÖ!r   ÚoptimalTFr   r   Únc                 ó^  € \         P                  P                  R 4      pVP                  VP	                  V 4      4      pVP                  R^4      pVP                  R^4      pV'       d   \        WxW!R7      p\        V4      p\        WgW‚VR7      p	\        W—W‚VR7      p
\        W¦RR7       R# )ì   ÍE3  ©Úinitialr   r   gvƒôõ!„>)ÚrtolNéÿÿÿÿéþÿÿÿ)r   ÚrandomÚRandomStater    Ústandard_normalÚuniformr   r"   r   r   r   )r*   r   r   r)   r#   Úrngr%   r$   r   ÚAÚa_s   &&&&&      r   Útest_fht_identityr9   a   s‘   € ô
 �)‰)×
Ñ
 
Ó
+€Cà
�
‰
�3×&Ñ& qÓ)Ó*€AØ
�+‰+�b˜!Ó
€CØ	�‰�R˜Ó	€BçÜ˜3¨FÔ>ˆô �v“ˆäˆA�B¨DÔ1€AÜ	ˆa�b¨dÔ	3€Bä�B ×'r   c           	      óŽ  € \         P                  P                  R 4      pV P                  VP	                  ^@4      4      pVP                  R
^4      pRRrT\        P                  ! RR7      ;_uu_ 4       p\        W#WER7       V'       d   Q R4       h RRR4       RRrT\        P                  ! RR7      ;_uu_ 4       p\        W#WER7       V'       d   Q R4       h RRR4       RRrT\        P                  ! \        4      ;_uu_ 4       p\        W#WER7       V'       g   Q R4       h RRR4       RRrT\        P                  ! \        4      ;_uu_ 4       p\        W#WER7       V'       g   Q R	4       h RRR4       R#   + '       g   i     Lð; i  + '       g   i     L»; i  + '       g   i     Lƒ; i  + '       g   i     R# ; i)r,   ç      ð?T)Úrecordr   z)fht warned about a well-defined transformNç      à?z+fht did not warn about a singular transformz,ifht did not warn about a singular transformr0   g      Àg      Àg      À)r   r2   r3   r    r4   r5   ÚwarningsÚcatch_warningsr   ÚpytestÚwarnsÚWarningr   )r#   r6   r%   r$   r   r   r<   s   &      r   Útest_fht_special_casesrC   z   sM  € Ü
�)‰)×
Ñ
 
Ó
+€Cà
�
‰
�3×&Ñ& rÓ*Ó+€AØ
�+‰+�b˜!Ó
€Cð
 �SˆÜ	×	 Ò	 ¨×	-Õ	-°ÜˆA�BÕ"ßÐFÐFÓFˆz�6÷ 
.ð
 �SˆÜ	×	 Ò	 ¨×	-Õ	-°ÜˆA�BÕ"ßÐFÐFÓFˆz�6÷ 
.ð �SˆÜ	�Š”g×	Ô	 &ÜˆA�BÕ"ßÐDÐDÓD‰v÷ 
ð �SˆÜ	�Š”g×	Ô	 &ÜˆQ�RÕ#ßÐEÐEÓE‰v÷ 
Ñ	÷) 
.×	-ú÷ 
.×	-ú÷ 
×	ú÷ 
×	Ð	ús0   Á4E:Â<FÄF ÅF3Å:F
	ÆF	Æ F0	Æ3G	c                 óŠ  € \         P                  P                  R 4      pVP                  ^ ^4      pVP                  RV,
          R4      p\         P                  ! R^V 4      pVP                  WT,          4      p\        P                  ! V^,          V^ ,          ,          4      p\        WsRVR7      p\        V4      p\        WgW8VR7      p	\         P                  ! V4      VRRR1,          ,          p
VP                  ^V
,          V,          \        V^,           V,
          ^,          V4      ,          4      p\        W›4       R# )r,   r   r-   r   Nr0   r=   r1   )r   r2   r3   r5   r   r    r   r   r   r"   r   r   r   r   )r*   r#   r6   r   Úgammar   r%   r$   r   r7   ÚkÚAts   &&          r   Útest_fht_exactrH   �   só   € ä
�)‰)×
Ñ
 
Ó
+€Cð
 
�‰�Q˜Ó	€Bð �K‰K˜˜2�˜sÓ#€Eä
�Š�B˜˜1Ó€AØ
�
‰
�1•8Ó€Aä
�(Š(�1�Q•4˜˜!�•9Ó
€Cä�s¨°%Ô8€Fô �6‹]€FäˆA�B¨EÔ2€Aä
�Šˆv‹�q™˜2˜•wÕ€Að 
�‰�Q�q•S˜5•L¤4¨¨A­¨e­°Q­¸Ó#>Õ>Ó	?€Bä�AÖr   z,array-likes only supported for NumPy backend)Únp_onlyÚreasonÚopc                 óŠ   € R R .R R ..R R .R R ..R R .R R ...p\        V! VR R4      V! V P                  V4      R R4      4       R# )r;   g       @N)r   r    )r#   rK   Úxs   && r   Útest_array_likerN   ¼   s`   € ð �ˆ*�s˜C�jÐ	!Ø�ˆ*�s˜C�jÐ	!Ø�ˆ*�s˜C�jÐ	!ð	#€Aô ‘B�q˜#˜s“O¡R¨¯
©
°1«°s¸CÓ%@ÖAr   c                 ó~  a € S P                  R 4      pRp\        P                  ! R	^V4      p\        P                  ! V^,          V^ ,          ,          4      p\        VR
\        P                  ! ^
4      ,          VR7      pS P                  WBP                  R7      p\        P                  ! V4      S P                  VRR7      ,          pV 3R lpV! WC4      p	\        W•W6R7      p
V! Ws4      pS P                  S P                  W«,
          V,          4      4      p\        VS P                  R4      R,          4       R# )r;   r   )r.   r   r   )Úaxisc                 ól   <€ W^,           ,          SP                  V ^,          ) ^,          4      ,          # r   )r   )rM   r   r#   s   &&€r   r   Útest_gh_21661.<locals>.fÏ   s&   ø€ Ø˜•6�{˜2Ÿ6™6 1 a¥4 %¨¥'›?Õ*Ð*r   )r   r   g `ºm3*pCNiùÿÿÿiúÿÿÿr0   © )r    r   r   r   r   r   r   r   Úflipr   ÚmaxÚabsr   )r#   r*   Úoner   r   r$   r   rF   r   Úa_rÚfht_valÚa_kÚrel_errs   f&           r   Útest_gh_21661r\   Å   sê   ø€ à
�*‰*�S‹/€CØ	€BÜ
�Š�B˜˜1Ó€AÜ
�(Š(�1�Q•4˜!˜A�$•;Ó
€CÜ�s B¬¯ª°«¥O¸Ô;€FØ
�
‰
�1ŸI™Iˆ
Ó&€AÜ�Š�Ó˜2Ÿ7™7 1¨2˜7Ó.Õ.€Aõ+ñ ˆA‹(€CÜ�#˜rÔ1€GÙ
ˆA‹(€CØ�f‰f�R—V‘V˜W�]¨cÕ1Ó2Ó3€GÜ�7˜BŸJ™J xÓ0°Õ4Ö5r   )r   r;   g      ð¿)r   gš™™™™™¹?gš™™™™™¹¿)r>   r   Únumpyr   r@   Úscipy.fft._fftlogr   r   r   Úscipy.specialr   Úscipy._lib._array_apir   r   ÚmarkÚskip_xp_backendsr(   Úparametrizer9   rC   rH   rN   r\   rS   r   r   Ú<module>rd      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   