ó
    ˆ*£há>  ã                   ó  • S SK JrJr  S r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r	\S	 5       r
\S
 5       r\S 5       r\SS j5       r\SS j5       r\S 5       r\S 5       r\S 5       rg)é   )ÚdefunÚdefun_wrappedc                 ó¢  • U R                  U5      u  pU R                  U5      nU R                  * nU(       d9  SU R                  /US// XQS-
  -  // / S4nU(       a  US   S==   XQ-  -  ss'   U4$ U R	                  U* 5      =(       dJ    U R                  U5      S:„  =(       d/    U R                  U5      S:H  =(       a    U R                  U5      S:„  nU R                  S-  S-   nU(       a>  U R                  U R                  X"US9SS	S
9n	U R                  X R                  SUS9US9n
OUn
U R                  XªUS9nU R                  SX¸S9nU R                  US	S
9nU R                  U
S	S
9nU(       a  SU
/X// / XQ-  XQS-
  -  // U4nU/nOBSU/X// / XQ-  XQS-
  -  // U4nSU R                  U/US-   SS// XQ-  /XQS-
  -  /SU-
  /U4nUU/nU(       ao  U R                  W	5      n[        [        U5      5       HF  nUU   S   S==   XQ-  -  ss'   UU   S   R                  U5        UU   S   R                  S5        MH     [!        U5      $ )z„
Combined calculation of the Hermite polynomial H_n(z) (and its
generalization to complex n) and the parabolic cylinder
function D.
é   ç      à?r   é    é   é   )Úprecç      Ð¿T©Úexact)Ú_convert_paramÚconvertÚmpq_1_2ÚpiÚisnpintÚreÚimr   ÚfmulÚsqrtÚfdivÚfnegÚexpÚrangeÚlenÚappendÚtuple)ÚctxÚnÚzÚparabolic_cylinderÚntypÚqÚT1Úcan_use_2f0ÚexpprecÚuÚwÚw2Úrw2Únrw2ÚnwÚtermsÚT2ÚexpuÚis                      ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/mpmath/functions/orthogonal.pyÚ_hermite_paramr3      so  € ð × Ñ  Ó#�G€AØ�‰�A‹€AØ	�‰ˆ€Aö  Ø�—‘ˆ[˜1˜c˜( B¨¨a©C©¨	°2°r¸1Ð<ˆÞØˆq‰E�!‹H˜™‰O‹HØˆsˆ
Ø—+‘+˜q˜b“/÷ + S§V¡V¨A£Y°¡]÷ +Ø	�‰�‹�a‰×	)˜CŸF™F 1›I¨™Mð à�h‰h�q‰j˜2‰o€GÞØ�H‰H�S—X‘X˜a w�XÐ/°¸dˆHÐCˆØ�H‰H�QŸ™ ¨'˜Ð2¸ˆHÐA‰àˆØ	�‰�!˜WˆÐ	%€BØ
�(‰(�1�bˆ(Ð
'€CØ�8‰8�C˜tˆ8Ð$€DØ	�‰�!˜4ˆÐ	 €BÞØ�ˆV�a�V˜R  a¡c¨1°©c©7 ^°R¸Ð=ˆØ�‰à�ˆW�q�f˜b " q¡s¨A°©s©G n°b¸$Ð>ˆØ�—‘˜ˆ_˜q ™s C¨˜m¨R°!±#°¸¸a¹C¹¸	ÀAÀaÁCÀ5È"ÐLˆØ�B�ˆæØ�w‰w�q‹zˆÜ”s˜5“zÖ"ˆAØ�!‰H�Q‰K˜‹N˜a™cÑ!‹NØ�!‰H�Q‰K×Ñ˜tÔ$Ø�!‰H�Q‰K×Ñ˜qÖ!ñ #ô �‹<Ðó    c                 ó<   ^ ^^• T R                   " U UU4S j/ 40 UD6$ )Nc                  ó    >• [        T TTS5      $ )Nr   ©r3   ©r   r    r!   s   €€€r2   Ú<lambda>Úhermite.<locals>.<lambda>>   ó   ø€ ¤°°Q¸¸1Ô!=r4   ©Ú	hypercomb©r   r    r!   Úkwargss   ``` r2   Úhermiter@   <   s   ú€ à�=Š=Ö=¸rÑLÀVÑLÐLr4   c                 ó<   ^ ^^• T R                   " U UU4S j/ 40 UD6$ )a¤  
Gives the parabolic cylinder function in Whittaker's notation
`D_n(z) = U(-n-1/2, z)` (see :func:`~mpmath.pcfu`).
It solves the differential equation

.. math ::

    y'' + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right) y = 0.

and can be represented in terms of Hermite polynomials
(see :func:`~mpmath.hermite`) as

.. math ::

    D_n(z) = 2^{-n/2} e^{-z^2/4} H_n\left(\frac{z}{\sqrt{2}}\right).

**Plots**

.. literalinclude :: /plots/pcfd.py
.. image :: /plots/pcfd.png

**Examples**

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> pcfd(0,0); pcfd(1,0); pcfd(2,0); pcfd(3,0)
    1.0
    0.0
    -1.0
    0.0
    >>> pcfd(4,0); pcfd(-3,0)
    3.0
    0.6266570686577501256039413
    >>> pcfd('1/2', 2+3j)
    (-5.363331161232920734849056 - 3.858877821790010714163487j)
    >>> pcfd(2, -10)
    1.374906442631438038871515e-9

Verifying the differential equation::

    >>> n = mpf(2.5)
    >>> y = lambda z: pcfd(n,z)
    >>> z = 1.75
    >>> chop(diff(y,z,2) + (n+0.5-0.25*z**2)*y(z))
    0.0

Rational Taylor series expansion when `n` is an integer::

    >>> taylor(lambda z: pcfd(5,z), 0, 7)
    [0.0, 15.0, 0.0, -13.75, 0.0, 3.96875, 0.0, -0.6015625]

c                  ó    >• [        T TTS5      $ ©Nr   r7   r8   s   €€€r2   r9   Úpcfd.<locals>.<lambda>v   r;   r4   r<   r>   s   ``` r2   ÚpcfdrE   @   s   ú€ ðl �=Š=Ö=¸rÑLÀVÑLÐLr4   c                 óh   • U R                  U5      u  pEU R                  U* U R                  -
  U5      $ )ae  
Gives the parabolic cylinder function `U(a,z)`, which may be
defined for `\Re(z) > 0` in terms of the confluent
U-function (see :func:`~mpmath.hyperu`) by

.. math ::

    U(a,z) = 2^{-\frac{1}{4}-\frac{a}{2}} e^{-\frac{1}{4} z^2}
        U\left(\frac{a}{2}+\frac{1}{4},
        \frac{1}{2}, \frac{1}{2}z^2\right)

or, for arbitrary `z`,

.. math ::

    e^{-\frac{1}{4}z^2} U(a,z) =
        U(a,0) \,_1F_1\left(-\tfrac{a}{2}+\tfrac{1}{4};
        \tfrac{1}{2}; -\tfrac{1}{2}z^2\right) +
        U'(a,0) z \,_1F_1\left(-\tfrac{a}{2}+\tfrac{3}{4};
        \tfrac{3}{2}; -\tfrac{1}{2}z^2\right).

**Examples**

Connection to other functions::

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> z = mpf(3)
    >>> pcfu(0.5,z)
    0.03210358129311151450551963
    >>> sqrt(pi/2)*exp(z**2/4)*erfc(z/sqrt(2))
    0.03210358129311151450551963
    >>> pcfu(0.5,-z)
    23.75012332835297233711255
    >>> sqrt(pi/2)*exp(z**2/4)*erfc(-z/sqrt(2))
    23.75012332835297233711255
    >>> pcfu(0.5,-z)
    23.75012332835297233711255
    >>> sqrt(pi/2)*exp(z**2/4)*erfc(-z/sqrt(2))
    23.75012332835297233711255

)r   rE   r   )r   Úar!   r?   r    Ú_s         r2   ÚpcfurI   x   s2   € ðX ×Ñ˜aÓ �D€AØ�8‰8�Q�B�s—{‘{‘N AÓ&Ð&r4   c                 óº  ^ ^^^^	• T R                  U5      u  mnT R                  T5      mT R                  mT R                  m	US:X  av  T R	                  TS-  5      (       a]  U UUU	U4S jnT R
                  " U/ 40 UD6nT R                  T5      (       a'  T R                  T5      (       a  T R                  U5      nU$ U UU	U4S jnT R
                  " UT/40 UD6$ )a‚  
Gives the parabolic cylinder function `V(a,z)`, which can be
represented in terms of :func:`~mpmath.pcfu` as

.. math ::

    V(a,z) = \frac{\Gamma(a+\tfrac{1}{2}) (U(a,-z)-\sin(\pi a) U(a,z)}{\pi}.

**Examples**

Wronskian relation between `U` and `V`::

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> a, z = 2, 3
    >>> pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z)
    0.7978845608028653558798921
    >>> sqrt(2/pi)
    0.7978845608028653558798921
    >>> a, z = 2.5, 3
    >>> pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z)
    0.7978845608028653558798921
    >>> a, z = 0.25, -1
    >>> pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z)
    0.7978845608028653558798921
    >>> a, z = 2+1j, 2+3j
    >>> chop(pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z))
    0.7978845608028653558798921

ÚQr   c                  óÒ  >• TR                  T	SSS9n [        TT* T-
  T	S5      n[        TTT-
  U S5      nU HB  nUS   R                  S5        US   R                  S5        US   R                  TT-
  5        MD     TR                  TT-  T-
  5      TR	                  STR
                  -  5      -  nU H+  nUS   R                  U5        US   R                  S5        M-     X-   $ )	Ny       €      ð¿Tr   r   r   ù              ð?é   r   )r   r3   r   Úexpjpir   r   )
ÚjzÚT1termsÚT2termsÚTr(   r   r    r$   Úrr!   s
        €€€€€r2   ÚhÚpcfv.<locals>.hÍ   sÞ   ø€ Ø—‘˜!˜S¨�Ð-ˆBÜ$ S¨1¨"¨Q©$°°1Ó5ˆGÜ$ S¨!¨A©#¨r°1Ó5ˆGÛ�Ø�!‘—‘˜B”Ø�!‘—‘˜A”Ø�!‘—‘˜A˜a™CÖ ñ ð —
‘
˜A˜a™C ™EÓ# c§h¡h¨q°·±©xÓ&8Ñ8ˆAÛ�Ø�!‘—‘˜A”Ø�!‘—‘˜A–ñ ð Ñ$Ð$r4   c                 ó@  >• T
R                  TS5      nT
R                  TS5      nT
R                  U5      nT
R                  TT
R                  U5      /nUT* U T-  T-   S/TTU -  -
  // TU -  T-   /T/U4nUT/-   T* U T-  T-
  SS/ST-
  TU -  -
  // TU -  S-   T-
  /ST-   /U4nT
R                  TTU -  -   5      u  pxUS   R	                  U5        US   R	                  U5        XV4 H.  n	U	S   R	                  S5        U	S   R	                  TU -
  5        M0     XV4$ )Nr   r   r   r   rN   )Úsquare_exp_argr   r   Úcospi_sinpir   )r    r)   r(   ÚeÚlÚY1ÚY2ÚcÚsÚYr   r$   rT   r!   s             €€€€r2   rU   rV   ß   sC  ø€ Ø×"Ñ" 1 eÓ,ˆAØ×"Ñ" 1 cÓ*ˆAØ—‘˜“
ˆAØ—‘˜˜CŸG™G A›JÐ'ˆAØ�a�R˜˜1™˜Q™ �N Q q¨¡s¡U G¨R°!°A±#°a±%°¸1¸#¸qÐ@ˆBØ�a�S‘˜A˜2˜q ™s 1™u a¨Ð+¨a°©c°!°A±#©g¨Y¸¸Q¸q¹SÀ¹UÀ1¹W¸IÈÈ!ÉÀuÈaÐOˆBØ—?‘? 1 Q q¡S¡5Ó)‰DˆAØˆq‰E�L‰L˜ŒOØˆq‰E�L‰L˜ŒOØ“X�Ø�!‘—‘˜A”Ø�!‘—‘˜A˜a™CÖ ñ ð �6ˆMr4   )r   r   r   Úmpq_1_4Úisintr=   Ú_is_real_typeÚ_re)
r   rG   r!   r?   ÚntyperU   Úvr    r$   rT   s
   ` `    @@@r2   Úpcfvrg   §   sÈ   ü€ ð@ ×!Ñ! !Ó$�H€A€uØ�‰�A‹€AØ�‰€AØ�‰€AØ�ƒ|˜Ÿ	™	 ! A¡#Ÿ™÷	%ñ 	%ð �MŠM˜!˜RÑ* 6Ñ*ˆØ×Ñ˜Q×Ñ C×$5Ñ$5°a×$8Ñ$8Ø—‘˜“
ˆAØˆ÷	ð 	ð �}Š}˜Q  Ñ. vÑ.Ð.r4   c                 ó  ^ ^^• T R                  U5      u  mnT R                  T5      mU UU4S jnT R                  U5      nT R                  T5      (       a'  T R                  T5      (       a  T R	                  U5      nU$ )a  
Gives the parabolic cylinder function `W(a,z)` defined in (DLMF 12.14).

**Examples**

Value at the origin::

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> a = mpf(0.25)
    >>> pcfw(a,0)
    0.9722833245718180765617104
    >>> power(2,-0.75)*sqrt(abs(gamma(0.25+0.5j*a)/gamma(0.75+0.5j*a)))
    0.9722833245718180765617104
    >>> diff(pcfw,(a,0),(0,1))
    -0.5142533944210078966003624
    >>> -power(2,-0.25)*sqrt(abs(gamma(0.75+0.5j*a)/gamma(0.25+0.5j*a)))
    -0.5142533944210078966003624

c               3   óX  >#   • TR                  TR                  STR                  T-  -   5      5      n TR                  STR                  T-  -   5      TR                  STR                  T-  -
  5      -
  S-  n TR                  S-  SU -  -   nTR                  STR                  STR                  -  T-  5      -   5      TR                  TR                  T-  5      -
  nTR                  US-  5      TR                  STR                  -  T-  5      -  nUTR                  U5      -  TR                  TR                  T-  TTR                  S5      -  5      -  v •  UTR                  U* 5      -  TR                  TR                  * T-  TTR                  S5      -  5      -  v •  g 7f)Nr   y               @é   r   r   g      Ð?r   )
ÚargÚgammaÚjÚloggammar   r   r   ÚexpjrI   rO   )Úphi2ÚrhoÚkÚCr   r    r!   s       €€€r2   r.   Úpcfw.<locals>.terms  sW  øé € Ø�w‰w�s—y‘y  s§u¡u¨Q¡w¡Ó/Ó0ˆØ—‘˜S §¡ q¡™[Ó)¨C¯L©L¸¸S¿U¹UÀ1¹W¹Ó,EÑEÀrÑIˆØ�f‰f�Q‰h˜˜T™Ñ!ˆà�H‰H�Q˜Ÿ™  3§6¡6¡¨!¡Ó,Ñ,Ó-°·±¸¿¹¸q¹Ó0AÑAˆØ�H‰H�Q�q‘S‹M˜CŸG™G D¨¯©¡K°¡MÓ2Ñ2ˆØ�#—(‘(˜3“-Ñ #§(¡(¨3¯5©5°©7°A°c·j±jÀÓ6GÑ4GÓ"HÑHÒHØ�#—(‘(˜C˜4“.Ñ  3§8¡8¨S¯U©U¨F°1©H°a¸¿
¹
À4Ó8HÑ6HÓ#IÑIÓIùs   ƒF'F*)r   r   Úsum_accuratelyrc   rd   )r   rG   r!   r?   rH   r.   rf   r    s   ` `    @r2   Úpcfwrv   ð   sq   ú€ ð, ×Ñ˜aÓ �D€A€qØ�‰�A‹€A÷Jð 	×Ñ˜5Ó!€AØ
×Ñ˜×Ñ × 1Ñ 1°!× 4Ñ 4Ø�G‰G�A‹JˆØ€Hr4   c                 ó.  ^^^• U R                  T5      (       a  STT-   -  $ U R                  TS-   5      (       a@  U R                  TS-   5      (       a  [        S5      eUU4S jnU R                  " UT/40 UD6$ UU4S jnU R                  " UT/40 UD6$ )Nr   r   r   z#Gegenbauer function with two limitsc           	      óX   >• SU -  n/ / TU-   /TS-   U/T* TU-   /U S-   /SST-
  -  4nU/$ ©Nr   r   r   © )rG   Úa2rS   r    r!   s      €€r2   rU   Úgegenbauer.<locals>.h=  sM   ø€ Ø�1‘ˆBØ�B˜˜2™˜  1¡ b 	¨Q¨B°°"±¨:¸¸#¹°wÀÀQÀqÁSÁ	ÐIˆAØ�3ˆJr4   c           	      óT   >• ST-  n/ / X-   /U S-   U/U * X-   /TS-   /SST-
  -  4nU/$ ry   rz   )r    r{   rS   rG   r!   s      €€r2   rU   r|   B  sI   ø€ Øˆq‰SˆØ��Q‘T�F˜Q˜q™S "˜I¨¨¨A©D z°A°c±E°7¸CÀÀ1Á¹IÐEˆØˆsˆ
r4   )r   ÚNotImplementedErrorr=   ©r   r    rG   r!   r?   rU   s    ```  r2   Ú
gegenbauerr€   3  s‘   ú€ ð ‡{�{�1‡~�~Ø�!�A‘#‰wˆØ
‡{�{�1�S‘5×Ñð �;‰;�q˜‘s×ÑÜ%Ð&KÓLÐLö	ð �}Š}˜Q  Ñ. vÑ.Ð.öð �=Š=˜˜Q˜CÑ* 6Ñ*Ð*r4   c                 óN  ^^^• U R                  T5      (       d  UUU4S jnU R                  " Xa/40 UD6$ U R                  T5      (       d  UU4S jnU R                  " XaT/40 UD6$ U R                  UT-   U5      U R                  " U* SU-   T-   T-   TS-   ST-
  S-  40 UD6-  $ )Nc                 ób   >• / / TU -   S-   /U S-   TS-   /U * TT-   U -   S-   /TS-   /ST-
  S-  44$ ©Nr   r   rz   ©r    rG   ÚbÚxs    €€€r2   rU   Újacobi.<locals>.hK  sQ   ø€ Ø˜˜a ™c !™e˜W q¨¡s¨A¨a©C j°A°2°q¸±s¸1±u¸Q±w°-À!ÀAÁ#ÀÈÈ1ÉÈcÉ	ÐRÐTÐTr4   c                 óZ   >• / / T* /U S-   T* U -
  /U * UT-   U -   S-   /TS-   /TS-   S-  44$ rƒ   rz   r„   s     €€r2   rU   r‡   O  sM   ø€ Ø˜˜q˜b˜T A a¡C¨!¨¨A© ;°!°°Q°q±S¸±U¸1±W°ÀÀ!Á¸uÀqÈÁsÈCÁiÐPÐRÐRr4   r   r   )r   r=   rb   ÚbinomialÚhyp2f1)r   r    rG   r…   r†   r?   rU   s     ```  r2   Újacobir‹   H  sŸ   ú€ à�;‰;�q�>‰>÷	Uà�}Š}˜Q Ñ. vÑ.Ð.Ø�9‰9�Q�<‰<ö	Sà�}Š}˜Q A Ñ1¨&Ñ1Ð1à�<‰<˜˜!™˜AÓ §¢¨Q¨B¨q°©s°1©u°Q©w°q¸±s¸A¸a¹CÀ¹7Ñ!MÀfÑ!MÑMÐMr4   c                 ó<   ^^• UU4S jnU R                   " XR/40 UD6$ )Nc                 óB   >• / / U T-   S-   /U S-   TS-   /T* /U S-   /T44$ rC   rz   )rG   r    r!   s    €€r2   rU   Úlaguerre.<locals>.hZ  s;   ø€ Ø�R˜!˜A™#˜a™%˜ 1 Q¡3¨¨!© *°¨r¨d°Q°q±S°E¸1Ð=Ð?Ð?r4   r<   r   s    ` `  r2   Úlaguerrer�   U  s   ù€ ö
@à�=Š=˜˜CÑ* 6Ñ*Ð*r4   c                 ó>  • U R                  U5      (       ah  [        U5      nXS:  -   S-  (       aN  U(       d  U$ U R                  U5      nUSU R                  -  S-
  :  a  U$ US:  a  U =R                  U* -  sl        U R                  " U* US-   SSU-
  S-  40 UD6$ )Nr   r   éþÿÿÿé
   éûÿÿÿr   )rb   ÚintÚmagr   rŠ   )r   r    r†   r?   r•   s        r2   Úlegendrer–   ^  s“   € à
‡y�y�‡|�|Ü�‹Fˆà�Q‘‰K˜1×ÞØ�Ø—'‘'˜!“*ˆCØ�R˜Ÿ™‘[ ‘^Ó#Ø�Ø�R‹xØ—’˜S˜DÑ •Ø�:Š:�q�b˜˜1™˜Q  !¡ Q™wÑ1¨&Ñ1Ð1r4   c                 ó  ^• U R                  U5      nU R                  U5      nU(       d  U R                  " UT40 UD6$ US:X  a  U4S jnU R                  " XaU/40 UD6$ US:X  a  U4S jnU R                  " XaU/40 UD6$ [        S5      e)Nr   c           	      ób   >• US-  nST-   ST-
  /X"* // SU-
  /U * U S-   /SU-
  /SST-
  -  4nU4$ ©Nr   r   rz   ©r    ÚmÚgrS   r!   s       €r2   rU   Úlegenp.<locals>.hw  óU   ø€ Ø�#‘ˆAØ�1‘�a˜‘c�
˜Q ˜G R¨!¨A©#¨°!°°Q°q±S°	¸A¸a¹C¸5À#ÀqÈÁsÁ)ÐKˆAØ�4ˆKr4   rN   c           	      ób   >• US-  nTS-   TS-
  /X"* // SU-
  /U * U S-   /SU-
  /SST-
  -  4nU4$ r™   rz   rš   s       €r2   rU   r�   }  rž   r4   úrequires type=2 or type=3)r   r–   r=   Ú
ValueError©r   r    r›   r!   Útyper?   rU   s      `   r2   Úlegenpr¤   m  s�   ø€ ð 	�‰�A‹€AØ�‰�A‹€AæØ�|Š|˜A˜qÑ+ FÑ+Ð+àˆqƒyõ	ð �}Š}˜Q 1 Ñ0¨Ñ0Ð0Øˆqƒyõ	ð �}Š}˜Q 1 Ñ0¨Ñ0Ð0Ü
Ð0Ó
1Ð1r4   c                 ó„  ^ ^• T R                  U5      nT R                  U5      nT R                  T5      mTS;   a  T R                  $ US:X  a  U U4S jnT R                  " XaU/40 UD6$ US:X  aG  [        T5      S:”  a  U U4S jnT R                  " XaU/40 UD6$ U U4S jnT R                  " XaU/40 UD6$ [	        S5      e)	N)r   éÿÿÿÿr   c                 ó  >• TR                  U5      u  p#SU-  TR                  -  nUnST-   nST-
  nUS-  nST-
  S-  n	XEXg/SSXˆ* // SU-
  /U * U S-   /SU-
  /U	4n
U* Xg/SU* U/X-   S-   /X-
  S-   US-   /U * U S-   /US-   /U	4nX«4$ ©Nr   r   r¦   )rY   r   )r    r›   ÚcosÚsinr_   r^   rG   r…   r(   r)   r%   r/   r   r!   s               €€r2   rU   Úlegenq.<locals>.h�  sÝ   ø€ Ø—‘ qÓ)‰HˆCØ�C‘˜#Ÿ&™&Ñ ˆAØˆAØ�!‘ˆAØ�!‘ˆAØ�!‘ˆAØ�1‘�a‘ˆAØ˜�  A q¨"˜~¨r°A°a±C°5Ø��Q�q‘S�	˜A˜a™C˜5 !ð$ˆBà�"�a�˜b 1 " a˜[¨1©3¨q©5¨'°A±C¸±E¸1¸Q¹3°<Ø��Q�q‘S�	˜A˜a™C˜5 !ð$ˆBà�6ˆMr4   rN   r   c                 óÞ   >• TR                  U5      STR                  TTS-
  TS-   /SU * S-
  SU * U-
  S-
  SU-  SU-  /X-   S-   /U S-   /SSU -   U-   -  SSU -   U-   -  /U S-   /TS-  4nU/$ )Nr   r   r   g      ø?r‘   )rO   r   )r    r›   r%   r   r!   s      €€r2   rU   r«   ¢  s¡   ø€ Ø—j‘j “m Q¨¯©°°1°Q±3¸¸!¹Ð<Ø˜!˜˜A™˜s Q B q¡D¨¡F¨C°©E°3°q±5Ð9Ø‘c˜!‘e�W˜q ™u˜gØ˜1˜Q™3˜q™5‘k 3¨¨!©¨A©¡;Ð/°!°C±%°¸!¸b¹'ðB�ð �t�r4   c                 ó.  >• ST
R                  U5      -  T
R                  -  nT
R                  U5      nST-   nTS-
  nUS-  nST-
  S-  nX#XE/SSXf* // SU-
  /U * U S-   /SU-
  /U4nU* X4U/SSU* U/X-   S-   /X-
  S-   US-   /U * U S-   /US-   /U4n	X‰4$ r¨   )Úsinpir   rO   )r    r›   r_   r^   rG   r…   r(   r)   r%   r/   r   r!   s             €€r2   rU   r«   «  sâ   ø€ Ø˜Ÿ	™	 !›Ñ$ s§v¡vÑ-�Ø—J‘J˜q“M�Ø�a‘C�Ø�a‘C�Ø�a‘C�Ø�q‘S˜!‘G�Ø˜A�\ B¨¨1¨b >°2¸¸!¹°uØ�R˜˜1™�I  !¡˜u að(�à�b˜! �] R¨¨Q¨B° N°Q±S¸±U°G¸a¹cÀ!¹eÀQÀqÁS¸\Ø�R˜˜1™�I  !¡˜u að(�à�v�r4   r    )r   Únanr=   Úabsr¡   r¢   s   `  `   r2   Úlegenqr±   „  sÂ   ù€ ð 	�‰�A‹€AØ�‰�A‹€AØ�‰�A‹€AØˆGƒ|ð �w‰wˆØˆqƒyö	ð �}Š}˜Q A Ñ1¨&Ñ1Ð1Øˆqƒyô ˆq‹6�A‹:öð —=’= ¨ FÑ5¨fÑ5Ð5öð —=’= ¨ FÑ5¨fÑ5Ð5Ü
Ð0Ó
1Ð1r4   c                 óÂ   • U(       d<  U R                  U5      (       a&  [        U R                  U5      5      S-  S:X  a  US-  $ U R                  " U* USSU-
  S-  40 UD6$ )Nr   r   r   )r   r   ©rb   r”   rd   rŠ   ©r   r    r†   r?   s       r2   Úchebytrµ   º  sV   € æ�3—9‘9˜Q—<‘<¤C¨¯©°«
£O°aÑ$7¸1Ó$<Ø�1‰uˆØ�:Š:�q�b˜˜5 ! A¡# q¡Ñ3¨FÑ3Ð3r4   c                 óÔ   • U(       d<  U R                  U5      (       a&  [        U R                  U5      5      S-  S:X  a  US-  $ US-   U R                  " U* US-   SSU-
  S-  40 UD6-  $ )Nr   r   r   )rN   r   r³   r´   s       r2   Úchebyur·   À  sc   € æ�3—9‘9˜Q—<‘<¤C¨¯©°«
£O°aÑ$7¸1Ó$<Ø�1‰uˆØˆa‰C�3—:’:˜q˜b ! A¡# u¨q°©s°A©gÑ@¸Ñ@Ñ@Ð@r4   c                 ó4  ^ ^^• T R                  U5      nT R                  U5      nT R                  T5      mT R                  T5      mT R                  U5      nU=(       a    US:¬  nT R                  U5      nU(       a'  US:  a!  U(       a  T R                  " US-   * UTT40 UD6$ TS:X  a  U(       a  US:  a  T R                  S-  $ U(       a.  U(       a'  [	        U5      U:”  a  T R                  S-  $ U UU4S jn	OU UU4S jn	T R
                  " X‘U/40 UD6$ )Nr   r   rM   c           
      óª  >• [        U5      nSTR                  UT-  5      SU -  S-   TR                  X-   5      -  TR                  -  TR                  X-
  5      -  TR	                  T5      S-  TR                  U5      S/nSU-  TR                  U5      S-   -  SSSU-  SU* S-
  /nX4/ / X -
  X-   S-   /US-   /TR	                  ST-  5      S-  44$ )Nr¦   r   r   r   )r°   ro   Úfacr   rª   Úsign)r[   r›   Úabsmrs   ÚPr   ÚphiÚthetas        €€€r2   rU   Úspherharm.<locals>.hØ  sè   ø€ Ü�q“6ˆDØ�S—X‘X˜a ™e“_Ø�A‘#�a‘%˜Ÿ™ ¡›Ñ(¨¯©Ñ/°·±¸¹³Ñ?Ø—‘˜“ Ñ"Ø—‘˜“ ð#ˆAð �Q‘˜Ÿ™ › A™Ñ&¨¨3°°D±¸"¸t¸eÀA¹gÐFˆAØ˜2˜r D¡F¨A©F°1©HÐ#5¸¸Q¹°xØ—‘˜˜E™	Ó" AÑ%ð'ð )ð )r4   c                 óò  >• TR                  X-
  S-   5      (       d4  TR                  X-   S-   5      (       d  TR                  SU-
  5      (       a  S/S// / / / S44$ TR                  ST-  5      u  p#STR                  UT-  5      -  SU -  S-   TR                  -  TR	                  X-
  S-   5      TR	                  X-   S-   5      US-  US-  /nSSSSSU-  SU-  /nXE/ SU-
  /U * U S-   /SU-
  /US-  44$ )Nr   r   r¦   r   r   g      à¿)r   Úcos_sinro   r   rl   )	r[   r›   r©   rª   rs   r½   r   r¾   r¿   s	         €€€r2   rU   rÀ   ä  s  ø€ Ø�{‰{˜1™3˜q™5×!Ñ! S§[¡[°±°Q±×%7Ñ%7¸3¿;¹;ÀqÈÁs×;KÑ;KØ˜˜r˜d B¨¨B°°AÐ6Ð8Ð8Ø—{‘{ 3 u¡9Ó-‰HˆCØ�S—X‘X˜a ™e“_Ñ$ q¨¡s¨1¡u¨c¯f©f¡nØ—‘˜1™3˜q™5Ó! 3§9¡9¨Q©S°©UÓ#3Ø�a‘˜˜a™ð!ˆAð �C˜˜d C¨¡E¨4°©6Ð2ˆAØ˜2  !¡˜u¨ r¨!¨A©# h°°1±°°s¸A±vÐ>Ð@Ð@r4   )r   rb   Ú	spherharmÚzeror°   r=   )
r   r[   r›   r¿   r¾   r?   Úl_isintÚ	l_naturalÚm_isintrU   s
   `  ``     r2   rÃ   rÃ   Æ  sñ   ú€ à�‰�A‹€AØ�‰�A‹€AØ�K‰K˜Ó€EØ
�+‰+�cÓ
€CØ�i‰i˜‹l€GØ×"˜A ™F€IØ�i‰i˜‹l€GÞ�1�q“5žWØ�}Š}˜q ™s˜V Q¨¨sÑ=°fÑ=Ð=Ø�ƒz–g ! a£%Ø�x‰x˜"‰}ÐÞ–WÜˆq‹6�A‹:Ø—8‘8˜b‘=Ð ÷	)ð 	)÷	Að �=Š=˜˜q˜EÑ, VÑ,Ð,r4   N)r   )Ú	functionsr   r   r3   r@   rE   rI   rg   rv   r€   r‹   r�   r–   r¤   r±   rµ   r·   rÃ   rz   r4   r2   Ú<module>rÉ      s:  ðß +ò7ðr ñMó ðMð ñ5Mó ð5Mðn ñ,'ó ð,'ð\ ñE/ó ðE/ðP ñ#ó ð#ðJð: ñ+ó ð+ð( ñ
Nó ð
Nð ñ+ó ð+ð ñ2ó ð2ð ó2ó ð2ð, ó32ó ð32ðj ñ4ó ð4ð
 ñAó ðAð
 ñ&-ó ñ&-r4   