ó
    Eñií  ã                   óÀ   • S SK rS SKJr  SSKJrJr  SSKJrJ	r	  S SK
JrJr  / SQr\R                  " S5      rSS	 jrSS
 jrSS jr\" SS9SS j5       rSSS.S jjrg)é    N)Úwarné   )ÚrfftÚirffté   )ÚloggammaÚpoch)Úarray_namespaceÚxp_capabilities)ÚfhtÚifhtÚ	fhtoffsetc           
      óv  • [        U 5      nUR                  U 5      n U R                  S   nUS:w  a=  US-
  S-  nUR                  XeR                  S9nXR                  U* X‡-
  -  U-  5      -  n UR                  [        XaX#US95      n	[        X	US9n
US:w  a   X¥R                  U* WW-
  U-  U-   -  5      -  n
U
$ )Néÿÿÿÿr   r   r   ©Údtype)ÚoffsetÚbias©Úxp©r
   ÚasarrayÚshapeÚarangeÚfloat64ÚexpÚfhtcoeffÚ_fhtq)ÚaÚdlnÚmur   r   r   ÚnÚj_cÚjÚuÚAs              ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/fft/_fftlog_backend.pyr   r      sÊ   € Ü	˜Ó	€BØ
�
‰
�1‹€Að 	
�‰�‰€Að ˆqƒyà�‰s�A‰gˆØ�I‰I�aŸz™zˆIÐ*ˆØ—‘˜�u˜a™g‘ sÑ*Ó+Ñ+ˆð 	�
‰
”8˜A B¸DÑAÓB€Aô 	ˆa�rÑ€Að ˆqƒyà	�V‰V�T�E˜A ™G S™=¨6Ñ1Ñ2Ó3Ñ3ˆà€Hó    c                 óx  • [        U 5      nUR                  U 5      n U R                  S   nUS:w  a?  US-
  S-  nUR                  XeR                  S9nXR                  XHU-
  U-  U-   -  5      -  n UR                  [        XaX#USS95      n	[        X	SUS9n
US:w  a  X¥R                  U* WW-
  -  U-  5      -  n
U
$ )	Nr   r   r   r   r   T)r   r   Úinverse)r*   r   r   )r&   r    r!   r   r   r   r"   r#   r$   r%   r   s              r'   r   r   *   sÌ   € Ü	˜Ó	€BØ
�
‰
�1‹€Að 	
�‰�‰€Að ˆqƒyà�‰s�A‰gˆØ�I‰I�aŸz™zˆIÐ*ˆØ—‘�t #™g s™]¨VÑ3Ñ4Ó5Ñ5ˆð 	�
‰
”8˜A B¸DÈ$ÑOÓP€Aô 	ˆa˜D RÑ(€Að ˆqƒyà	�V‰V�T�E˜1˜s™7‘O CÑ'Ó(Ñ(ˆà€Hr(   c                 ót  • X4pvUS-   U-   S-  nUS-   U-
  S-  n	[         R                  " S[         R                  U S-  -  X-  -  U S-  S-   5      n
[         R                  " U S-  S-   [        S9n[         R                  " U S-  S-   [        S9nX«R
                  SS& X›R                  SS& [        X¼S9  X‹R                  SS& [        X»S9  U
S[        U-
  -  -  n
U=R                  UR                  -  sl        U=R                  [        U-  -  sl        U=R
                  UR
                  -  sl        U=R
                  U
-  sl        [         R                  " X»S9  U S-  S:X  a  SUR
                  S'   [         R                  " US   5      (       d  SU-  [        X˜U	-
  5      -  US'   [         R                  " US   5      (       a.  U(       d'  [        SS	S
9  [         R                  " U5      nSUS'   U$ US   S:X  a:  U(       a3  [        SS	S
9  [         R                  " U5      n[         R                  US'   U$ )z:Compute the coefficient array for a fast Hankel transform.r   r   r   r   N)Úoutr   z.singular transform; consider changing the biasé   )Ú
stacklevelz6singular inverse transform; consider changing the bias)ÚnpÚlinspaceÚpiÚemptyÚcomplexÚimagÚrealr   ÚLN_2r   Úisfiniter	   Úisinfr   ÚcopyÚinf)r"   r    r!   r   r   r*   ÚlnkrÚqr   ÚxmÚyr%   Úvs                r'   r   r   F   sÜ  € àˆ!ð
 ˆQ‰$ˆq‰&�!‰€BØ
ˆQ‰$ˆq‰&�!‰€BÜ
�Š�A”r—u‘u˜a ™d‘| Q¡UÑ+¨Q°©T°!©VÓ4€AÜ
�Š��A‘�a‘œwÑ'€AÜ
�Š��A‘�a‘œwÑ'€AØ‡F�F‰1€IØ‡F�F‰1€IÜˆQÒØ‡F�F‰1€IÜˆQÒØˆŒD�4‰K‰Ñ€AØ‡F‚Fˆa�f‰fÑ…FØ‡F‚FŒd�1‰fÑ…FØ‡F‚Fˆa�f‰fÑ…FØ‡F‚Fˆa�K…FÜ‡F‚Fˆ1Òð 	ˆ1�u�ƒzØˆ�‰ˆr‰
ô �;Š;�q˜‘t×Ñð �!‰t”d˜2 "™u“oÑ%ˆˆ!‰ô
 
‡x‚x��!‘‡~�~žgÜÐ=È!ÒLä�GŠG�A‹JˆØˆˆ!‰ð €Hð 
ˆ1‰�‹–wÜÐEÐRSÒTä�GŠG�A‹JˆÜ�v‰vˆˆ!‰à€Hr(   T)Úout_of_scopec                 óL  • X#pTUS-   U-   S-  nUS-   U-
  S-  n[         R                  SU -  -  n[        USU-  -   5      n	[        USU-  -   5      n
[        U-
  U -  U	R                  U
R                  -   [         R                  -  -   nXK[         R
                  " U5      -
  U -  -   $ )a^  Return optimal offset for a fast Hankel transform.

Returns an offset close to `initial` that fulfils the low-ringing
condition of [1]_ for the fast Hankel transform `fht` with logarithmic
spacing `dln`, order `mu` and bias `bias`.

Parameters
----------
dln : float
    Uniform logarithmic spacing of the transform.
mu : float
    Order of the Hankel transform, any positive or negative real number.
initial : float, optional
    Initial value for the offset. Returns the closest value that fulfils
    the low-ringing condition.
bias : float, optional
    Exponent of power law bias, any positive or negative real number.

Returns
-------
offset : float
    Optimal offset of the uniform logarithmic spacing of the transform that
    fulfils a low-ringing condition.

Examples
--------
>>> from scipy.fft import fhtoffset
>>> dln = 0.1
>>> mu = 2.0
>>> initial = 0.5
>>> bias = 0.0
>>> offset = fhtoffset(dln, mu, initial, bias)
>>> offset
0.5454581477676637

See Also
--------
fht : Definition of the fast Hankel transform.

References
----------
.. [1] Hamilton A. J. S., 2000, MNRAS, 312, 257 (astro-ph/9905191)

r   r   y              ð?)r/   r1   r   r6   r4   Úround)r    r!   Úinitialr   r;   r<   r   r=   r>   ÚzpÚzmÚargs               r'   r   r   y   s¥   € ð^ ˆ!à
ˆQ‰$ˆq‰&�!‰€BØ
ˆQ‰$ˆq‰&�!‰€BÜ
�‰ˆq�‰u‰€AÜ	�"�r˜!‘t‘)Ó	€BÜ	�"�r˜!‘t‘)Ó	€BÜ�$‰;˜Ñ
˜rŸw™w¨¯©Ñ0´"·%±%Ñ7Ñ
7€CØœŸš #›Ñ&¨Ñ+Ñ+Ð+r(   r   c                ó¼   • Uc  [         nU R                  S   n[        U SS9nU(       d  XQ-  nOXSR                  U5      -  n[	        XTSS9nUR                  USS9nU$ )zMCompute the biased fast Hankel transform.

This is the basic FFTLog routine.
r   )Úaxis)r/   r   r   Úconjr   Úflip)r   r%   r*   r   r"   r&   s         r'   r   r   ³   si   € ð
 
�zÜˆð 	
�‰�‰€Aô 	ˆQ�RÑ€AÞà	‰‰ð 	
�W‰W�Q‹Z‰ˆÜˆa˜Ñ€AØ
�‰�˜ˆÐ€Aà€Hr(   )ç        rK   )rK   rK   F)F)Únumpyr/   Úwarningsr   Ú_basicr   r   Úspecialr   r	   Úscipy._lib._array_apir
   r   Ú__all__Úlogr6   r   r   r   r   r   © r(   r'   Ú<module>rT      s^   ðÛ Ý ß ß $ç Bâ
&€ð 
‡v‚vˆaƒy€ôô8ô80ñf ˜dÑ#ó6,ó $ð6,ðr T÷ r(   