ó
\K]c           @   sX  d  Z  d d l m Z e d d e ƒd „  ƒ Z d „  Z e ƒ  Z d „  d „ Z e d e ƒ d	 „  ƒ Z e d e ƒ d
 „  ƒ Z	 e d e ƒ d „  ƒ Z
 e d e ƒ d „  ƒ Z e d e ƒ d „  ƒ Z d „  d „ Z e d e ƒ d „  ƒ Z e d e ƒ d „  ƒ Z d „  d „ Z d „  d „ Z d „  d „ Z d „  d „ Z d „  d „ Z d S(   sh   
Usecases of recursive functions.

Some functions are compiled at import time, hence a separate module.
iÿÿÿÿ(   t   jits   i8(i8)t   nopythonc         C   s/   |  d k  r |  St  |  d ƒ t  d |  d ƒ S(   Ni   i   t   n(   t   fib1(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   
   s    c              s%   t  d d t ƒ‡  f d †  ƒ ‰  ˆ  S(   Ns   i8(i8)R   c            s/   |  d k  r |  Sˆ  |  d ƒ ˆ  d |  d ƒ S(   Ni   i   R   (    (   R   (   t   fib2(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR      s    (   R    t   True(    (    (   R   s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt	   make_fib2   s    !c         C   s   |  S(   N(    (   t   x(    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   <lambda>   t    c            s   |  ‡  f d †  ƒ ‰  ˆ  S(   Nc            s5   |  d k r- | d k r- |  ˆ  |  | | ƒ S| Sd  S(   Ni   i    (    (   R   t   y(   t   type_change_self(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR      s    (    (   R    (    (   R   s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_type_change_self   s    c         C   s,   |  d k  r |  St  |  d ƒ t  |  d ƒ S(   Ni   i   (   t   fib3(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   )   s    c         C   s
   t  |  ƒ S(   N(   t   runaway_self(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   1   s    c         C   s=   |  d k r t  d ƒ ‚ n |  d k r5 t |  d ƒ Sd Sd  S(   Ni   t
   raise_selfi    (   t
   ValueErrorR   (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   6   s
    c         C   s"   |  d k  r d S|  t  |  d ƒ S(   Ni   (   t	   inner_fac(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt	   outer_facA   s    c         C   s"   |  d k  r d S|  t  |  d ƒ S(   Ni   (   R   (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   H   s    c         C   s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   P   R	   c            s4   |  ‡  f d †  ƒ ‰ |  ‡ f d †  ƒ ‰  ˆ ˆ  f S(   Nc            s+   |  d k r# d ˆ  d d d |  ƒ Sd |  S(   Ni    i   t   zi   R
   (    (   R   (   t   bar(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   fooQ   s    c            s   ˆ  d |  | ƒ S(   NR   (    (   R
   R   (   R   (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   W   s    (    (   R    (    (   R   R   s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_mutual2P   s    c         C   s
   t  |  ƒ S(   N(   t   runaway_mutual_inner(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   runaway_mutual`   s    c         C   s
   t  |  ƒ S(   N(   R   (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   e   s    c         C   s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   l   R	   c            s.   |  ‡  f d †  ƒ ‰ |  ‡ f d †  ƒ ‰  ˆ S(   Nc            s5   |  d k r- | d k r- |  ˆ  |  | | ƒ S| Sd  S(   Ni   i    (    (   R   R
   (   R   (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   m   s    c            s5   |  d k r- | d k r- |  ˆ  |  | | ƒ S| Sd  S(   Ni   i    (    (   R   R
   (   R   (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   w   s    (    (   R    (    (   R   R   s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_type_change_mutuall   s    
c         C   s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   ‚   R	   c            sX   |  ‡ f d †  ƒ ‰  |  ‡ f d †  ƒ ‰ |  ‡ f d †  ƒ ‰ |  ‡  f d †  ƒ ‰ ˆ  S(   Nc            s"   |  d k r ˆ  |  ƒ d Sd Sd  S(   Ni    i   i   (    (   R   (   t   second(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   firstƒ   s    c            s   ˆ  |  ƒ d S(   Ni   (    (   R   (   t   third(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   ‹   s    c            s   ˆ  |  ƒ d S(   Ni   (    (   R   (   t   fourth(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR      s    c            s   ˆ  |  d d ƒ S(   Ni   i   (    (   R   (   R   (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   “   s    (    (   R    (    (   R   R   R   R   s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_four_level‚   s
    c         C   s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   š   R	   c            s@   |  ‡ f d †  ƒ ‰ |  ‡  ‡ f d †  ƒ ‰ |  d „  ƒ ‰  ˆ S(   Nc            s   |  d k r ˆ  |  ƒ Sd Sd  S(   Ni    i   (    (   R   (   t   inner(    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   outer›   s    
c            s(   |  d k r ˆ |  d ƒ Sˆ  |  ƒ Sd  S(   Ni    i   (    (   R   (   t	   error_funR    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   £   s    c         S   s   |  j  S(   N(   t   ndim(   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR!   «   s    (    (   R    (    (   R!   R   R    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_inner_errorš   s    c         C   s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   ³   R	   c            s.   |  ‡  f d †  ƒ ‰ |  ‡ f d †  ƒ ‰  ˆ S(   Nc            s   |  d k r ˆ  |  ƒ Sd Sd  S(   Ni    i   (    (   R   (   R   (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR    ´   s    
c            s=   |  d k r t  d ƒ ‚ n |  d k r5 ˆ  |  d ƒ Sd Sd  S(   Ni   t   raise_mutuali    (   R   (   R   (   R    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   »   s
    (    (   R    (    (   R   R    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_raise_mutual³   s    	c         C   s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   Ç   R	   c            s+   |  d „  ƒ ‰ |  ‡  ‡ f d †  ƒ ‰  ˆ  S(   Nc         S   s   |  d k r |  d Sd  Sd  S(   Ni   i   (    (   R   (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   È   s    c            s>   ˆ |  ƒ } | d  k r | S| d k  r, | S|  ˆ  | ƒ Sd  S(   Ni   (   t   None(   R   t   out(   R   R   (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyR   Ï   s    (    (   R    (    (   R   R   s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   make_optional_return_caseÇ   s    
N(   t   __doc__t   numbaR    R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R#   R%   R(   (    (    (    s=   lib/python2.7/site-packages/numba/tests/recursion_usecases.pyt   <module>   s$   			