+
    :i                     h   R t ^ RIHt ]P                  ! RRR7      R 4       tR t]! 4       t]P                  R 4       t]P                  ! RR7      R 4       t]P                  ! RR7      R	 4       t	]P                  ! RR7      R
 4       t
]P                  ! RRR7      R 4       tR 3R ltR 3R ltR# )z
Usecases of recursive functions in the CUDA target, many derived from
numba/tests/recursion_usecases.py.

Some functions are compiled at import time, hence a separate module.
)cudai8(i8)Tdevicec                 f    V ^8  d   V # \        V ^,
          4      \        V ^,
          4      ,           #    )fib1ns   &h/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/cuda/tests/cudapy/recursion_usecases.pyr	   r	      s+    1u A;a!e$$    c                  J   a  \         P                  ! R RR7      V 3R l4       o S # )r   Tr   c                 \   < V ^8  d   V # S! V ^,
          4      S! V ^,
          4      ,           # r    )r   fib2s   &r   r   make_fib2.<locals>.fib2   s*    q5HAE{T!a%[((r   )r   jit)r   s   @r   	make_fib2r      s'    	XXht$) %)
 Kr   c                 T    V ^8  d!   V^ 8  d   V \        W,
          V4      ,           # V# )   )type_change_self)xys   &&r   r   r   !   s)    1uQ#AE1---r   c                 f    V ^8  d   V # \        V ^,
          4      \        V ^,
          4      ,           # r   )fib3r
   s   &r   r   r   *   s)    1uA;a!e$$r   c                     \        V 4      # N)runaway_selfr   s   &r   r   r   3   s    ?r   c                 \    V ^8X  d   \        R4      hV ^ 8  d   \        V ^,
          4      # ^# )r   
raise_self)
ValueErrorr!   r   s   &r   r!   r!   8   s-    Av&&	
Q!a%  r   F)debugoptc                     \        V 4       R # r   )r!   r   s   &r   raise_self_kernelr&   B   s	    qMr   c                     V # r   r   r   s   &r   <lambda>r(   G   s    Ar   c                 2   aa V R  4       oV VV3R l4       oS# )c                 &    V ^8  d
   V ^,
          # R# )   Nr   r   s   &r   foo&make_optional_return_case.<locals>.fooH   s    q5q5Lr   c                 P   < S! V 4      pVf   V# V^8  d   V# V S! V4      ,          # r   r   )r   outbarr,   s   & r   r0   &make_optional_return_case.<locals>.barO   s0    !f;J1WJs3x<r   r   )r   r0   r,   s   &@@r   make_optional_return_caser2   G   s0     	 	  	  Jr   c                     V # r   r   r   s   &r   r(   r(   \   s    !r   c                    a V V3R  l4       oS# )c                 8   < V ^ 8:  d   R# V S! V ^,
          4      3# )    Nr   )r   	make_lists   &r   r7   *make_growing_tuple_case.<locals>.make_list^   s!    69QU#$$r   r   )r   r7   s   &@r   make_growing_tuple_caser9   \   s    % 	%
 r   N)__doc__numbar   r   r	   r   r   r   r   r   r!   r&   r2   r9   r   r   r   <module>r<      s     (4 % !% {  
 % %     %  ! #. * !, r   