ó
<Zc           @   s  d  d l  Z  d d l m Z d d l m Z d d l m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m) Z) m+ Z+ m, Z, m- Z- m. Z. m/ Z/ e e f Z0 d d l1 m2 Z2 e3 j4 Z5 d „  Z6 d e3 f d	 „  ƒ  YZ7 d
 e3 f d „  ƒ  YZ8 d „  Z9 e9 e e% ƒ \ e7 _: e7 _; e8 _: e8 _; e9 e e& ƒ \ e7 _< e7 _= e8 _< e8 _= e9 e e' ƒ \ e7 _> e7 _? e8 _> e8 _? e9 e e( ƒ \ e7 _@ e7 _A e8 _@ e8 _A e9 e! e) ƒ \ e7 _B e7 _C e8 _B e8 _C e7 j@ e7 _D e7 jA e7 _E e8 j@ e8 _D e8 jA e8 _E d e7 f d „  ƒ  YZF d e2 f d „  ƒ  YZG y0 d  d lH ZH eH jI jJ e8 ƒ eH jK jJ e7 ƒ Wn eL k
 rn Xd S(   iÿÿÿÿNi   (   t   libmp(   t
   basestring(,   t	   int_typest   MPZ_ONEt   prec_to_dpst   dps_to_prect   repr_dpst   round_floort   round_ceilingt   fzerot   finft   fninft   fnant   mpf_let   mpf_negt   from_intt
   from_floatt   from_strt   from_rationalt   mpi_midt	   mpi_deltat   mpi_strt   mpi_abst   mpi_post   mpi_negt   mpi_addt   mpi_subt   mpi_mult   mpi_divt   mpi_pow_intt   mpi_powt   mpi_from_strt   mpci_post   mpci_negt   mpci_addt   mpci_subt   mpci_mult   mpci_divt   mpci_powt   mpci_absR&   t   mpci_expt   mpci_logt   ComplexResultt   mpf_hasht   mpc_hash(   t   StandardBaseContextc         C   sw   t  |  d ƒ r |  j St |  t ƒ r5 t |  | | ƒ St |  t ƒ rT t |  | | ƒ St |  t ƒ rs t |  | | ƒ Sd  S(   Nt   _mpf_(	   t   hasattrR.   t
   isinstanceR   R   t   floatR   R   R   (   t   xt   prect   rounding(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   convert_mpf_   s        t   ivmpfc           B   sC  e  Z d  Z d d „ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z	 e d „  ƒ Z
 e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z e Z e Z e Z e Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d d „ Z RS(   sH   
    Interval arithmetic class. Precision is controlled by iv.prec.
    i    c         C   s   |  j  j | ƒ S(   N(   t   ctxt   convert(   t   clsR2   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __new__)   s    c         C   s8   |  j  \ } } | | k r. t t j | ƒ ƒ St ‚ d  S(   N(   t   _mpi_t   intR    t   to_intt
   ValueError(   t   selft   at   b(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __int__,   s    c         C   s6   |  j  \ } } | | k r% t | ƒ St |  j  ƒ Sd  S(   N(   R;   R+   t   hash(   R?   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __hash__2   s    
c         C   s   |  S(   N(    (   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   real9   s    c         C   s
   |  j  j S(   N(   R7   t   zero(   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   imag<   s    c         C   s   |  S(   N(    (   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt	   conjugate?   s    c         C   s%   |  j  \ } } |  j j | | f ƒ S(   N(   R;   R7   t   make_mpf(   R?   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR@   A   s    c         C   s%   |  j  \ } } |  j j | | f ƒ S(   N(   R;   R7   RI   (   R?   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRA   F   s    c         C   s1   |  j  } t |  j | j ƒ } | j | | f ƒ S(   N(   R7   R   R;   R3   RI   (   R?   R7   t   v(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   midK   s    	c         C   s1   |  j  } t |  j | j ƒ } | j | | f ƒ S(   N(   R7   R   R;   R3   RI   (   R?   R7   RJ   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   deltaQ   s    	c         C   s   |  j  t f S(   N(   R;   t   mpi_zero(   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _mpci_W   s    c          G   s   t  d ƒ ‚ d  S(   Ns-   no ordering relation is defined for intervals(   t	   TypeError(   t   args(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _compare[   s    c         C   s4   |  j  j | ƒ } |  j | j k o3 | j |  j k S(   N(   R7   t   mpfR@   RA   (   R?   t   t(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __contains__c   s    c         C   s   t  |  j |  j j ƒ S(   N(   R   R;   R7   R3   (   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __str__g   s    c         C   si   |  j  j r t |  ƒ S|  j \ } } t |  j  j ƒ } t j | | ƒ } t j | | ƒ } d | | f S(   Ns   mpi(%r, %r)(   R7   t   prettyt   strR;   R   R3   R    t   to_str(   R?   R@   RA   t   n(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __repr__j   s    
c         C   sF   t  | d ƒ s3 y |  j j | ƒ } Wq3 t SXn  | |  j | j ƒ S(   NR;   (   R/   R7   R8   t   NotImplementedR;   (   t   sRS   t   cmpfun(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRQ   s   s    c         C   s   |  j  | t j ƒ S(   N(   RQ   R    t   mpi_eq(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __eq__{   s    c         C   s   |  j  | t j ƒ S(   N(   RQ   R    t   mpi_ne(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __ne__|   s    c         C   s   |  j  | t j ƒ S(   N(   RQ   R    t   mpi_lt(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __lt__}   s    c         C   s   |  j  | t j ƒ S(   N(   RQ   R    t   mpi_le(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __le__~   s    c         C   s   |  j  | t j ƒ S(   N(   RQ   R    t   mpi_gt(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __gt__   s    c         C   s   |  j  | t j ƒ S(   N(   RQ   R    t   mpi_ge(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __ge__€   s    c         C   s"   |  j  j t |  j |  j  j ƒ ƒ S(   N(   R7   RI   R   R;   R3   (   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __abs__‚   s    c         C   s"   |  j  j t |  j |  j  j ƒ ƒ S(   N(   R7   RI   R   R;   R3   (   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __pos__„   s    c         C   s"   |  j  j t |  j |  j  j ƒ ƒ S(   N(   R7   RI   R   R;   R3   (   R?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   __neg__†   s    c         C   s   |  j  j |  | | | ƒ S(   N(   R7   t   almosteq(   R\   RS   t   rel_epst   abs_eps(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   ae‰   s    N(   t   __name__t
   __module__t   __doc__R:   RB   RD   t   propertyRE   RG   RH   R@   RA   RK   RL   RN   RQ   Rg   Re   Ri   RT   RU   RZ   R_   Ra   Rc   Rj   Rk   Rl   t   NoneRp   (    (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR6   $   s>   																		t   ivmpcc           B   s  e  Z d  d  d „ Z d „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d	 „  ƒ Z e d
 „  ƒ Z d „  Z d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z e Z Z Z d „  Z d „  Z d „  Z d d d „ Z RS(   i    c         C   sI   |  j  j | ƒ } |  j  j | ƒ } t |  ƒ } | j | j f | _ | S(   N(   R7   R8   t   newR;   RN   (   R9   t   ret   imt   y(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR:   Ž   s
    c         C   sT   |  j  \ \ } } \ } } | | k rC | | k rC t | | f ƒ St |  j  ƒ Sd  S(   N(   RN   R,   RC   (   R?   R@   RA   t   ct   d(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRD   •   s    c         C   s6   |  j  j r t |  ƒ Sd t |  j ƒ t |  j ƒ f S(   Ns   iv.mpc(%s, %s)(   R7   RV   RW   t   reprRE   RG   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRZ   œ   s    
c         C   s    d t  |  j ƒ t  |  j ƒ f S(   Ns   (%s + %s*j)(   RW   RE   RG   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRU   ¡   s    c         C   s1   |  j  \ \ } } \ } } |  j j | | f ƒ S(   N(   RN   R7   RI   (   R?   R@   RA   R{   R|   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR@   ¤   s    c         C   s1   |  j  \ \ } } \ } } |  j j | | f ƒ S(   N(   RN   R7   RI   (   R?   R@   RA   R{   R|   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRA   ©   s    c         C   s1   |  j  \ \ } } \ } } |  j j | | f ƒ S(   N(   RN   R7   RI   (   R?   R@   RA   R{   R|   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR{   ®   s    c         C   s1   |  j  \ \ } } \ } } |  j j | | f ƒ S(   N(   RN   R7   RI   (   R?   R@   RA   R{   R|   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR|   ³   s    c         C   s   |  j  j |  j d ƒ S(   Ni    (   R7   RI   RN   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRE   ¸   s    c         C   s   |  j  j |  j d ƒ S(   Ni   (   R7   RI   RN   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRG   ¼   s    c         C   s+   |  j  \ } } |  j j | t | ƒ f ƒ S(   N(   RN   R7   t   make_mpcR   (   R\   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRH   À   s    c         C   sD  |  j  j | ƒ } |  j | j k o2 |  j k n p£ |  j | j k oW |  j k n p£ | j |  j k o| | j k n p£ | j |  j k o¡ | j k n } |  j | j k oÆ |  j k n p7|  j | j k oë |  j k n p7| j |  j k o| j k n p7| j |  j k o5| j k n } | oC| S(   N(   R7   R8   R@   RA   R{   R|   (   R\   RS   t   real_overlapt   imag_overlap(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   overlapÄ   s    ””c         C   s4   |  j  j | ƒ } | j |  j k o3 | j |  j k S(   N(   R7   R8   RE   RG   (   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRT   Ê   s    c         C   s•   t  | |  j j ƒ s9 y |  j j | ƒ } Wq9 t SXn  t | d ƒ rZ | j t f } n t | d ƒ ru | j } n  | rˆ |  j | k S|  j | k S(   NR;   RN   (	   R0   R7   t   _typesR8   R[   R/   R;   RM   RN   (   R\   RS   t   net   tval(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRQ   Î   s    c         C   s   |  j  | ƒ S(   N(   RQ   (   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR_   Ü   s    c         C   s   |  j  | t ƒ S(   N(   RQ   t   True(   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRa   Ý   s    c         C   s   t  d ƒ ‚ d  S(   Ns#   complex intervals cannot be ordered(   RO   (   R\   RS   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRc   ß   s    c         C   s"   |  j  j t |  j |  j  j ƒ ƒ S(   N(   R7   R~   R!   RN   R3   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRl   â   s    c         C   s"   |  j  j t |  j |  j  j ƒ ƒ S(   N(   R7   R~   R    RN   R3   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRk   ã   s    c         C   s"   |  j  j t |  j |  j  j ƒ ƒ S(   N(   R7   RI   R'   RN   R3   (   R\   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRj   ä   s    c         C   s   |  j  j |  | | | ƒ S(   N(   R7   Rm   (   R\   RS   Rn   Ro   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRp   æ   s    N(   Rq   Rr   R:   RD   RZ   RU   Rt   R@   RA   R{   R|   RE   RG   RH   R   RT   t   FalseRQ   R_   Ra   Rc   Re   Rg   Ri   Rl   Rk   Rj   Ru   Rp   (    (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRv   Œ   s,   												c            ss   ‡  f d †  ‰ ‡ ‡ f d †  ‰ ‡ ‡ f d †  } ‡ ‡ f d †  } ‡ f d †  } ‡ f d †  } | | | | f S(   Nc            s   |  j  ˆ  | | |  j ƒ ƒ S(   N(   R~   R3   (   R7   t   svalR„   (   t	   f_complex(    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt	   g_complexê   s    c            s]   y  |  j  ˆ  | | |  j ƒ ƒ SWn6 t k
 rX | t f } | t f } ˆ |  | | ƒ SXd  S(   N(   RI   R3   R*   RM   (   R7   R‡   R„   (   t   f_realR‰   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   g_realì   s     c            s   |  j  } t | | j ƒ s- | j | ƒ } n  t | d ƒ rR ˆ | |  j | j ƒ St | d ƒ r} ˆ  | |  j t f | j ƒ St S(   NR;   RN   (	   R7   R0   R‚   R8   R/   R;   RM   RN   R[   (   R\   RS   R7   (   R‰   R‹   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   lop_realó   s    	   c            s   |  j  } t | | j ƒ s- | j | ƒ } n  t | d ƒ rR ˆ | | j |  j ƒ St | d ƒ r} ˆ  | | j |  j t f ƒ St S(   NR;   RN   (	   R7   R0   R‚   R8   R/   R;   RN   RM   R[   (   R\   RS   R7   (   R‰   R‹   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   rop_realù   s    	   c            sh   |  j  } t | |  j  j ƒ sR y |  j  j | ƒ } WqR t t f k
 rN t SXn  ˆ  | |  j | j ƒ S(   N(   R7   R0   R‚   R8   R>   RO   R[   RN   (   R\   RS   R7   (   R‰   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   lop_complexÿ   s    	c            sI   |  j  } t | |  j  j ƒ s3 |  j  j | ƒ } n  ˆ  | | j |  j ƒ S(   N(   R7   R0   R‚   R8   RN   (   R\   RS   R7   (   R‰   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   rop_complex  s    	(    (   RŠ   Rˆ   RŒ   R   RŽ   R   (    (   Rˆ   RŠ   R‰   R‹   s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt
   _binary_opé   s    t   ivmpf_constantc           B   s&   e  Z d  „  Z d „  Z e e ƒ Z RS(   c         C   s   t  |  ƒ } | | _ | S(   N(   Rw   t   _f(   R9   t   fR?   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR:     s    	c         C   s>   |  j  j d } |  j | t ƒ } |  j | t ƒ } | | f S(   Ni    (   R7   t   _precR’   R   R   (   R?   R3   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt	   _get_mpi_  s    (   Rq   Rr   R:   R•   Rt   R;   (    (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR‘     s   		t   MPIntervalContextc           B   s  e  Z d  „  Z d d „ Z d „  Z d d „ Z e d „  ƒ Z d „  Z	 d „  Z
 e d „  e	 ƒ Z e d „  e
 ƒ Z d	 „  Z d
 „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z RS(   c         C   sé   t  d t f i  ƒ |  _ t  d t f i  ƒ |  _ |  j |  j f |  _ t  d t f i  ƒ |  _ d g |  _ |  j	 d ƒ |  j t
 |  j g |  j _ |  j _ |  j _ |  |  j _ |  j _ |  j _ t |  _ t j |  ƒ |  j ƒ  d  S(   NR6   Rv   R‘   i5   (   t   typeR6   RR   Rv   t   mpcR‚   R‘   t	   _constantR”   t	   _set_precRw   t   _ctxdataR7   R†   RV   R-   t   __init__t   _init_builtins(   R7   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRœ   %  s    / 	c         C   s,   | d  k r |  j | ƒ S|  j | | f ƒ S(   N(   Ru   RR   (   R7   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _mpi2  s    c         C   sc  |  j  d ƒ |  _ |  j  d ƒ |  _ |  j  d ƒ |  _ |  j |  _ |  j  d ƒ |  _ |  j d d ƒ |  _ |  j t	 j
 t	 j ƒ |  _ |  j t	 j ƒ |  _ |  j t	 j t	 j ƒ |  _ |  j t	 j t	 j ƒ |  _ |  j t	 j t	 j ƒ |  _ |  j t	 j ƒ |  _ |  j t	 j t	 j ƒ |  _ |  j t	 j t	 j ƒ |  _ |  j t	 j  t	 j! ƒ |  _" |  j t	 j# t	 j$ ƒ |  _% |  j% |  _& |  j' d „  ƒ |  _( |  j' t	 j) ƒ |  _* |  j' t	 j+ ƒ |  _, |  j' t	 j- ƒ |  _. |  j' t	 j/ ƒ |  _0 |  j' t	 j1 ƒ |  _2 |  j' t	 j3 ƒ |  _4 |  j' t	 j5 ƒ |  _6 |  j' t	 j7 ƒ |  _8 |  j' t	 j9 ƒ |  _: |  j' t	 j; ƒ |  _< d  S(   Ni   i    t   inft   nanc         S   s   d t  d |  d f S(   Ni    i   (   R   (   R3   t   rnd(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   <lambda>J  s    (=   RR   t   oneRF   RŸ   t   ninfR    R˜   t   jt   _wrap_mpi_functionR    t   mpi_expR(   t   expt   mpi_sqrtt   sqrtt   mpi_logR)   t   lnt   mpi_cost   mpci_cost   cost   mpi_sint   mpci_sint   sint   mpi_tant   tant	   mpi_gammat
   mpci_gammat   gammat   mpi_loggammat   mpci_loggammat   loggammat
   mpi_rgammat   mpci_rgammat   rgammat   mpi_factorialt   mpci_factorialt	   factorialt   facR™   t   epst   mpf_pit   pit   mpf_et   et   mpf_ln2t   ln2t   mpf_ln10t   ln10t   mpf_phit   phit	   mpf_eulert   eulert   mpf_catalant   catalant   mpf_glaishert   glaishert   mpf_khinchint   khinchint   mpf_twinprimet	   twinprime(   R7   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR   7  s8    c            s   ‡  ‡ ‡ f d †  } | S(   Nc            s˜   | r" | j  d ˆ  j d ƒ } n ˆ  j d } ˆ  j |  ƒ }  t |  d ƒ rf ˆ  j ˆ |  j | ƒ ƒ St |  d ƒ rŽ ˆ  j ˆ |  j | ƒ ƒ St ‚ d  S(   NR3   i    R;   RN   (	   t   getR”   R8   R/   RI   R;   R~   RN   R>   (   R2   t   kwargsR3   (   R7   Rˆ   RŠ   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   gW  s    (    (   R7   RŠ   Rˆ   RÙ   (    (   R7   Rˆ   RŠ   s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR¦   V  s    c            s2   | r ‡  f d †  } n ˆ  } t  |  | | ƒ d  S(   Nc            sh   |  j  } g  | D] } | | ƒ ^ q } |  j } z% |  j d 7_ ˆ  |  | | Ž } Wd  | |  _ X| 
S(   Ni
   (   R8   R3   (   R7   RP   RØ   R8   R@   R3   t   retval(   R“   (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt	   f_wrappedg  s    		
(   t   setattr(   R9   t   nameR“   t   wrapRÛ   (    (   R“   s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _wrap_specfund  s    c         C   s/   t  d t | ƒ ƒ |  j d <t | ƒ |  _ d  S(   Ni   i    (   t   maxR<   R”   R   t   _dps(   R7   RY   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRš   u  s    c         C   s/   t  | ƒ |  j d <t d t | ƒ ƒ |  _ d  S(   Ni    i   (   R   R”   Rà   R<   Rá   (   R7   RY   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _set_dpsy  s    c         C   s   |  j  d S(   Ni    (   R”   (   R7   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR¢   }  s    c         C   s   |  j  S(   N(   Rá   (   R7   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR¢   ~  s    c         C   s   t  |  j ƒ } | | _ | S(   N(   Rw   RR   R;   (   R7   RJ   R@   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRI   €  s    	c         C   s   t  |  j ƒ } | | _ | S(   N(   Rw   R˜   RN   (   R7   RJ   R@   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR~   …  s    	c         C   sU   | \ } } t  j | | |  j t ƒ } t  j | | |  j t ƒ } |  j | | f ƒ S(   N(   R    R   R3   R   R   RI   (   R7   t   pqt   pt   qR@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _mpqŠ  s    c         C   sÈ  t  | |  j |  j f ƒ r | St  | |  j ƒ r6 | 
St  | t ƒ sT t | d ƒ rˆ |  j | j ƒ } |  j | j ƒ } |  j | | ƒ St  | t	 ƒ r¶ t
 | |  j ƒ } |  j | ƒ St | d ƒ r× | j \ } } nœ y | \ } } Wn! t t f k
 r
| } } n Xt | d ƒ r*| j d } n t | |  j t ƒ } t | d ƒ r^| j d } n t | |  j t ƒ } | t k s‹| t k ršt } t } n  t | | ƒ sµt d ƒ ‚ |  j | | f ƒ S(   Nt   _mpc_R;   i    i   s"   endpoints must be properly ordered(   R0   RR   R˜   R™   t   complexR/   R8   RE   RG   R   R   R3   RI   R;   RO   R>   R5   R   R   R   R   R
   R   t   AssertionError(   R7   R2   Rx   Ry   RJ   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR8     s8    	i   c         K   s   |  j  | ƒ } t | d ƒ r4 t j | j | |  St | d ƒ r‰ t j | j d | |  } t j | j d | |  } d | | f Sd  S(   NR;   RN   i    i   s   (%s + %s*j)(   R8   R/   R    t
   mpi_to_strR;   RN   (   R7   R2   RY   RØ   Rx   Ry   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   nstr±  s    c         C   s¯   |  j  | ƒ } t | |  j ƒ rJ t |  j | j ƒ |  j | j ƒ ƒ d St j | j	 ƒ \ } } | \ } } } } | r‚ | | S| t
 k r• |  j S| t k r¨ |  j S|  j S(   Ni   (   R8   R0   R˜   Rà   t   magRE   RG   R    R   R;   R	   R¤   R   R    RŸ   (   R7   R2   R@   RA   t   signt   manR¨   t   bc(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyRì   º  s    )c         C   s   t  S(   N(   R†   (   R7   R2   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   isnanÈ  s    c         C   s   | |  j  k S(   N(   RŸ   (   R7   R2   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   isinfË  s    c         C   sZ   |  j  | ƒ } | j \ } } | | k rV | \ } } } } | rL | d k S| t k Sd  S(   Ni    (   R8   R;   R	   Ru   (   R7   R2   R@   RA   Rí   Rî   R¨   Rï   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   isintÎ  s    

c         C   sO   |  j  | ƒ j \ } } t j | | ƒ } t j | | ƒ } |  j | | f ƒ S(   N(   R8   R;   R    t	   mpf_shiftRI   (   R7   R2   RY   R@   RA   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   ldexpØ  s    c         C   s   t  |  j | ƒ ƒ j S(   N(   t   absR8   R@   (   R7   R2   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   absminÞ  s    c         C   s   t  |  j | ƒ ƒ j S(   N(   Rõ   R8   RA   (   R7   R2   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   absmaxá  s    c         C   sC   |  j  | ƒ j } |  j  | ƒ j } |  j t j | | |  j ƒ ƒ S(   N(   R8   R;   RI   R    t	   mpi_atan2R3   (   R7   Rz   R2   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   atan2ä  s    c         C   s¨   t  | t j ƒ r | d f St  | t ƒ rW | \ } } |  j | ƒ |  j | ƒ d f S|  j | ƒ } t  | |  j ƒ r‚ | d f St  | |  j ƒ rž | d f St ‚ d  S(   Nt   Zt   Rt   C(   R0   R    R   t   tupleRR   R8   R˜   R>   (   R7   R2   Rä   Rå   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _convert_paramé  s    
 

c         C   s   t  | |  j ƒ p t  | t ƒ S(   N(   R0   RR   R   (   R7   t   z(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _is_real_typeö  s    c         C   s   t  | |  j ƒ S(   N(   R0   R˜   (   R7   Rÿ   (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   _is_complex_typeù  s    ip  c         K   sß   t  | ƒ } t | ƒ } t | | | ƒ }	 |  j }
 } d } xš x  | D] } | | | | 9} qH Wx  |	 D] } | | | | :} qk W| d 7} | | :} | | 9} |
 | 7}
 | d k r¿ |
 S| | k rA |  j ‚ qA qA Wd  S(   Ni    i   (   t   listt   rangeR£   t   NoConvergence(   R7   Rä   Rå   t   typest   coeffsRÿ   t   maxtermsRØ   t   numt   denR\   RS   t   kt   i(    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   hypsumü  s$      
 
 
 
N(   Rq   Rr   Rœ   Ru   Rž   R   R¦   t   classmethodRß   Rš   Râ   Rt   R3   t   dpsRI   R~   Ræ   R8   Rë   Rì   Rð   Rñ   Rò   Rô   Rö   R÷   Rù   Rþ   R   R  R  (    (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyR–   #  s4   								!					
							(M   t   operatort    R    t   libmp.backendR   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   RM   t   ctx_baseR-   t   objectR:   Rw   R5   R6   Rv   R   t   __add__t   __radd__t   __sub__t   __rsub__t   __mul__t   __rmul__t   __div__t   __rdiv__t   __pow__t   __rpow__t   __truediv__t   __rtruediv__R‘   R–   t   numberst   Complext   registert   Realt   ImportError(    (    (    s,   lib/python2.7/site-packages/mpmath/ctx_iv.pyt   <module>   s8   ÿ 		h]	%'''''  ò