Ë
    èÿæi%  ã                   óz  — d Z ddlmZ  edd¬«      d„ «       Zd„ Z e«       Zd„ fd	„Z ed¬«      d
„ «       Z ed¬«      d„ «       Z ed¬«      d„ «       Z	 ed¬«      d„ «       Z
 ed¬«      d„ «       Zd„ fd„Z ed¬«      d„ «       Z ed¬«      d„ «       Zd„ fd„Zd„ fd„Zd„ fd„Zd„ fd„Zd„ fd„Zd„ fd„Zy) zh
Usecases of recursive functions.

Some functions are compiled at import time, hence a separate module.
é    ©Újitúi8(i8)T©Únopythonc                 óL   — | dk  r| S t        | dz
  «      t        | dz
  ¬«      z   S ©Né   é   ©Ún)Úfib1r   s    ús/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/recursion_usecases.pyr   r   
   s)   € àˆ1‚uØˆä��A‘‹;œ  A¡œÑ&Ð&ó    c                  ó2   ‡ — t        dd¬«      ˆ fd„«       Š ‰ S )Nr   Tr   c                 óB   •— | dk  r| S  ‰| dz
  «       ‰| dz
  ¬«      z   S r	   © )r   Úfib2s    €r   r   zmake_fib2.<locals>.fib2   s*   ø€ àˆqŠ5ØˆHÙ�A˜‘E‹{™T A¨¡Eœ]Ñ*Ð*r   r   )r   s   @r   Ú	make_fib2r      s#   ø€ Üˆ˜DÔ!ó+ó "ð+ð
 €Kr   c                 ó   — | S ©Nr   ©Úxs    r   Ú<lambda>r      s   € ©r   c                 ó   ‡— | ˆfd„«       Š‰S )Nc                 ó:   •— | dkD  r|dkD  r|  ‰| |z
  |«      z   S |S ©Nr   r   r   )r   ÚyÚtype_change_selfs     €r   r   z/make_type_change_self.<locals>.type_change_self   s,   ø€ àˆqŠ5�Q˜’UØÑ'¨¨A©¨qÓ1Ñ1Ð1àˆHr   r   )r   r   s    @r   Úmake_type_change_selfr       s   ø€ Øóó 	ðð
 Ðr   c                 óJ   — | dk  r| S t        | dz
  «      t        | dz
  «      z   S ©Nr
   r   )Úfib3r   s    r   r#   r#   )   s)   € àˆ1‚uØˆÜ��A‘‹;œ˜a !™e›Ñ$Ð$r   c                 ó   — t        | «      S r   )Úrunaway_selfr   s    r   r%   r%   1   s   € ä˜‹?Ðr   c                 óJ   — | dk(  rt        d«      ‚| dkD  rt        | dz
  «      S y)Nr   Ú
raise_selfr   )Ú
ValueErrorr'   r   s    r   r'   r'   6   s-   € àˆA‚vÜ˜Ó&Ð&Ø	
ˆQŠÜ˜!˜a™%Ó Ð àr   c                 ó0   — | dk  ry| t        | dz
  «      z  S ©Nr   )Ú	inner_facr   s    r   Ú	outer_facr,   A   ó    € àˆ1‚uØØŒy˜˜Q™ÓÑÐr   c                 ó0   — | dk  ry| t        | dz
  «      z  S r*   )r,   r   s    r   r+   r+   H   r-   r   c                 ó   — | S r   r   r   s    r   r   r   P   s   € ™qr   c                 ó6   ‡‡— | ˆfd„«       Š| ˆfd„«       Š‰‰fS )Nc                 ó2   •— | dkD  rd ‰d| ¬«      z  S d| z   S )Nr   r
   r   )Úzr   r   )r   Úbars    €r   Úfoozmake_mutual2.<locals>.fooQ   s$   ø€ àˆqŠ5Ø‘s˜Q !”}Ñ$Ð$Ø�1‰uˆr   c                 ó   •—  ‰| |z
  ¬«      S )Nr   r   )r   r2   r4   s     €r   r3   zmake_mutual2.<locals>.barW   s   ø€ á�Q˜‘UŒ|Ðr   r   ©r   r3   r4   s    @@r   Úmake_mutual2r7   P   s4   ù€ Øóó 	ðð
 	óó 	ðð �ˆ8€Or   c                 ó   — t        | «      S r   )Úrunaway_mutual_innerr   s    r   Úrunaway_mutualr:   `   s   € ä Ó"Ð"r   c                 ó   — t        | «      S r   )r:   r   s    r   r9   r9   e   s   € ä˜!ÓÐr   c                 ó   — | S r   r   r   s    r   r   r   l   ó   € ©!r   c                 ó2   ‡‡— | ˆfd„«       Š| ˆfd„«       Š‰S )Nc                 ó:   •— | dkD  r|dkD  r|  ‰| |z
  |«      z   S |S r   r   )r   r   r3   s     €r   r4   z$make_type_change_mutual.<locals>.foom   s,   ø€ àˆqŠ5�Q˜’Uð ‘s˜1˜q™5 !“}Ñ$Ð$àˆHr   c                 ó:   •— | dkD  r|dkD  r|  ‰| |z
  |«      z   S |S r   r   )r   r   r4   s     €r   r3   z$make_type_change_mutual.<locals>.barw   s*   ø€ àˆqŠ5�Q˜’UØ‘s˜1˜q™5 !“}Ñ$Ð$àˆHr   r   r6   s    @@r   Úmake_type_change_mutualrA   l   s0   ù€ Øóó 	ðð 	óó 	ðð €Jr   c                 ó   — | S r   r   r   s    r   r   r   ‚   s   € ¡!r   c                 ó^   ‡‡‡‡— | ˆfd„«       Š| ˆfd„«       Š| ˆfd„«       Š| ˆfd„«       Š‰S )Nc                 ó&   •— | dkD  r ‰| «      dz  S y)Nr   r
   r   r   )r   Úseconds    €r   Úfirstzmake_four_level.<locals>.firstƒ   s   ø€ ð ˆqŠ5Ù˜!“9˜q‘=Ð àr   c                 ó   •—  ‰| «      dz  S )Né   r   )r   Úthirds    €r   rE   zmake_four_level.<locals>.second‹   s   ø€ á�Q‹x˜!‰|Ðr   c                 ó   •—  ‰| «      dz  S )Né   r   )r   Úfourths    €r   rI   zmake_four_level.<locals>.third�   s   ø€ á�a‹y˜1‰}Ðr   c                 ó    •—  ‰| dz  dz
  «      S r"   r   )r   rF   s    €r   rL   zmake_four_level.<locals>.fourth“   s   ø€ á�Q˜‘U˜Q‘YÓÐr   r   )r   rF   rL   rE   rI   s    @@@@r   Úmake_four_levelrN   ‚   sX   û€ Øóó 	ðð 	óó 	ðð 	óó 	ðð 	ó ó 	ð ð €Lr   c                 ó   — | S r   r   r   s    r   r   r   š   s   € ¡1r   c                 óF   ‡‡‡— | ˆfd„«       Š| ˆˆfd„«       Š| d„ «       Š‰S )Nc                 ó    •— | dkD  r ‰| «      S y©Nr   r   r   ©r   Úinners    €r   Úouterzmake_inner_error.<locals>.outer›   s   ø€ àˆqŠ5Ù˜“8ˆOð r   c                 ó4   •— | dkD  r ‰| dz
  «      S  ‰| «      S rR   r   )r   Ú	error_funrU   s    €€r   rT   zmake_inner_error.<locals>.inner£   s$   ø€ àˆqŠ5Ù˜˜Q™“<Ðñ ˜Q“<Ðr   c                 ó   — | j                   S r   )Úndimr   s    r   rW   z#make_inner_error.<locals>.error_fun«   s   € ð �v‰vˆr   r   )r   rW   rT   rU   s    @@@r   Úmake_inner_errorrZ   š   sD   ú€ Øóó 	ðð 	ô ó 	ð ð 	ñó 	ðð €Lr   c                 ó   — | S r   r   r   s    r   r   r   ³   s   € ¡Ar   c                 ó2   ‡‡— | ˆfd„«       Š| ˆfd„«       Š‰S )Nc                 ó    •— | dkD  r ‰| «      S yrR   r   rS   s    €r   rU   z make_raise_mutual.<locals>.outer´   s   ø€ àˆqŠ5Ù˜“8ˆOàr   c                 óF   •— | dk(  rt        d«      ‚| dkD  r ‰| dz
  «      S y)Nr   Úraise_mutualr   )r(   )r   rU   s    €r   rT   z make_raise_mutual.<locals>.inner»   s-   ø€ à�Š6Ü˜^Ó,Ð,Ø�ŠUÙ˜˜Q™“<Ðàr   r   )r   rT   rU   s    @@r   Úmake_raise_mutualr`   ³   s0   ù€ Øóó 	ðð 	óó 	ðð €Lr   c                 ó   — | S r   r   r   s    r   r   r   Ç   s   € ©Ar   c                 ó0   ‡‡— | d„ «       Š| ˆˆfd„«       Š‰S )Nc                 ó   — | dkD  r| dz
  S y )Né   r   r   r   s    r   r4   z&make_optional_return_case.<locals>.fooÈ   s   € àˆqŠ5Ø�q‘5ˆLàr   c                 ó@   •—  ‰| «      }|€|S |dk  r|S |  ‰|«      z  S )Né   r   )r   Úoutr3   r4   s     €€r   r3   z&make_optional_return_case.<locals>.barÏ   s0   ø€ á�!‹fˆØˆ;ØˆJØ�1ŠWØˆJà‘s˜3“x‘<Ðr   r   r6   s    @@r   Úmake_optional_return_caserh   Ç   s0   ù€ Øñó 	ðð 	ô ó 	ð ð €Jr   c                 ó   — | S r   r   r   s    r   r   r   Ü   r=   r   c                 ó   ‡— | ˆfd„«       Š‰S )Nc                 ó*   •— | dk  ry |  ‰| dz
  «      fS rR   r   )r   Ú	make_lists    €r   rl   z*make_growing_tuple_case.<locals>.make_listÞ   s!   ø€ à�Š6Øà‘9˜Q ™UÓ#Ð$Ð$r   r   )r   rl   s    @r   Úmake_growing_tuple_caserm   Ü   s   ø€ àó%ó 	ð%ð
 Ðr   N)Ú__doc__Únumbar   r   r   r   r    r#   r%   r'   r,   r+   r7   r:   r9   rA   rN   rZ   r`   rh   rm   r   r   r   Ú<module>rp      s7  ðñõ ñ €X˜Ôñ'ó ð'òñ ƒ{€ñ *ó ñ ˆdÔñ%ó ð%ñ ˆdÔñó ðñ ˆdÔñó ðñ ˆdÔñ ó ð ñ ˆdÔñ ó ð ñ !ó ñ  ˆdÔñ#ó ð#ñ ˆdÔñó ðñ !,ó ñ, $ó ñ0 %ó ñ2 &ó ñ( #.ó ñ* !,ô r   