
~9\c           @   s  d  Z  d d l m Z e d  Z d d l m Z d d l m Z 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 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( d d l) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 d d	 l1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 d d
 l7 m8 Z8 m9 Z9 m: Z: m; Z; d d l< m= Z= d d l> m? Z? d d l@ mA ZA mB ZB mC ZC mD ZD mE ZE mF ZF mG ZG mH ZH mI ZI mJ ZJ mK ZK d d lL mM ZM mN ZN mO ZO d d lP mQ ZQ d d lR mS ZS mT ZT mU ZU mV ZV mW ZW mX ZX mY ZY mZ ZZ m[ Z[ m\ Z\ m] Z] m^ Z^ m_ Z_ m` Z` ma Za mb Zb mc Zc md Zd me Ze mf Zf mg Zg mh Zh mi Zi mj Zj mk Zk ml Zl mm Zm mT ZT mn Zn mo Zo mp Zp mq Zq mr Zr ms Zs mt Zt mu Zu mv Zv mw Zw mx Zx my Zy mz Zz m{ Z{ m| Z| m} Z} m~ Z~ m Z m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z m Z m Z d d l> m Z d d l m Z d d l m Z d e} f d     YZ e eT  Z d en f d     YZ d en f d     YZ e rhd d l m Z m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z m Z m Z d d l m Z d d l m Z m Z d d  l m Z d! e f d"     YZ e j e  e j e  g  d# D] Z e e  ^ q\ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ef d$  \ Z Z Z Z Z n  d% en f d&     YZ d'   Z d(   Z d)   Z d*   Z d+   Z d,   Z e d-  Z d.   Z d/   Z d0   Z d1   Z d2   Z d3   Z d4   Z d5   Z d6   Z d7   Z d8   Z d9   Z d:   Z d;   Z d<   Z d=   Z d>   Z d?   Z d@   Z dA   Z dB   Z dC   Z dD   Z dE   Z dF   Z dG   Z dH   Z dI   Z dJ   Z dK   Z e dL  Z dM   Z dN   Z dO   Z dP   Z dQ   Z dR   Z dS en f dT     YZ dU dV  Z dW   Z dX   Z dY   Z dZ   Z d[   Zd\   Zd]   Zd^   Zd_   Ze d`  Zda   Zdb   Zdc   Z	dd   Z
de   Zdf   Zdg   Zdh   Zdi   Zdj   Zdk   Zdl   Zdm   Zdn   Zdo   Zdp   Zdq   Zdr   Zds   Zdt   Zdu   Zdv   Ze} Zdw   Zdx   Zdy   Z dz   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   Z/d   Z0d   Z1d   Z2d   Z3d   Z4d   Z5d   Z6d   Z7d   Z8d   Z9d   Z:d   Z;d   Z<d   Z=d   Z>d   Z?d   Z@d   ZAd   ZBd   ZCd   ZDd   ZEd   ZFd   ZGd   ZHd   ZId   ZJd   ZKd   ZLd   ZMd   ZNd   ZOe d  ZPd   ZQd   ZRe d  ZSd   ZTd   ZUd   ZVd   ZWe d  ZXd   ZYd   ZZd   Z[d   Z\d   Z]d   Z^d   Z_d   Z`d   Zad   Zbd   Zcd   Zdd   Zed   Zfd   Zge d  Zhe d  Zid   Zjd   Zkd   Zld   Zmd   Znd   Zod   Zpd   Zqd   Zrd   Zsd   Ztd   Zud   Zvd   Zwd   Zxeyd  ZzdU d  Z{d   Z|d   Z}d   Z~d   Zd   Zd   Zd   Zd   Zd   Ze d  Zd   Zd   Ze 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e 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   Ze d d f  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	  Zd
  Zd  Zd  Zd  Zd  Zd  Zeyd Zd  Zd  Zd  Zd  Zd  Zeyd Zd  Zd  Zd  Zd  Zd  Zd  Zd  Ze 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+  Zd,  Zd-  Zd.  Zd/  Zd0  Zd1  Ze d2 Zd3  Zd4  Zd5  Zd6  Zd7  Zd8  Zd9  Zd:  Zd;  Zd<  Zd=  Zd>  Zd?  Zd@  ZdA  ZdB  ZdC  ZdD  ZdE  ZdF  ZdG  ZdH  ZdI  ZdJ  ZdK  ZdL  ZdM  ZdN  ZdO  ZdP  ZdQ  ZdR  ZdS  ZdT  ZdU  ZdV  ZdW  ZdX  ZdY  Z dZ  Zd[  Zd\  Zd]  Zd^  Zd_  Zd`  Zda  Zdb  Z	dc  Z
dd  Zde  Zdf  Zdg  Zdh  Zdi  Zdj  Zdk  Zdl  Zdm  Zdn  Zdo  Zdp  Zdq  Zdr  Zds  Zdt  Zdu  Zdv  Zdw  Zdx  Zdy  Z dz  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  Z/d  Z0d  Z1d  Z2d  Z3d  Z4d  Z5eyd Z6d  Z7d  Z8d  Z9d  Z:d  Z;d  Z<d  Z=d  Z>d  Z?d  Z@d  ZAd  ZBd  ZCd  ZDd  ZEd  ZFd  ZGd  ZHd  ZId  ZJd  ZKd  ZLd  ZMd  ZNd  ZOd  ZPd  ZQd  ZRd  ZSd  ZTd  ZUd  ZVd  ZWd  ZXd  ZYd  ZZd  Z[d  Z\d  Z]d  Z^d  Z_e e f \ a`aaeyabd  Zcd  Zdd  Zed  Zfd  Zgd  Zhd  Zieyeyeyeyd Zjd  Zkd  Zld  Zmd  Znd  Zod  Zpd  Zqd  Zrd  Zsd  Ztd  Zud  Zvd  Zwd  Zxd  Zyd  Zzd  Z{d  Z|den f d    YZ}d  Z~d  Zd  Zd  Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Ze d d f  d   Zd  Zden f d    YZd  Ze 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en f d    YZd  Zden f d    YZd  Zd  Zd  Zd  Zd  Zd  Ze d Zd  Zd   Zd  Zd  Zd  Zd  Zd  Zd  Zd  Zd  Ze Ze Ze Ze re e    Ze  Ze  Ze  Ze  Ze  Ze  Zn  d	S(
  s   
Utility functions for Rubi integration.

See: http://www.apmaths.uwo.ca/~arich/IntegrationRules/PortableDocumentFiles/Integration%20utility%20functions.pdf
i(   t   import_modulet   matchpy(   t   doctest_depends_on(   t   floort   frac(   t   logt   sint   cost   tant   cott   csct   sect   sqrtt   erft   gammat
   uppergammat	   polygammat   digammat   loggammat	   factorialt   zetat   LambertW(   t   acosht   asinht   atanht   acotht   acscht   asecht   cosht   sinht   tanht   cotht   secht   csch(   t   atant   acsct   asint   acott   acost   asect   atan2(   t   Polyt   quot   remt   total_degreet   degree(   t   fractiont   simplifyt   cancelt   powsimp(   t   sympify(   t   postorder_traversal(   t   fresnelct   fresnelst   erfct   erfit   Eit   expintt   lit   Sit   Cit   Shit   Chi(   t   imt   ret   Abs(   t   factor_terms(4   t   Basict   Et   polylogt   Nt   Wildt   WildFunctiont   factort   gcdt   Sumt   St   It   Mult   Integert   Floatt   Dictt   Symbolt   Rationalt   Addt   hypert   symbolst   sqf_listt   sqft   Maxt	   factorintt	   factorratt   Mint   signRD   t   Functiont   collectt	   FiniteSett	   nsimplifyt   expand_trigt   expandt   polyt   apartt   lcmt   Andt   Powt   pit   zoot   oot   Integralt   UnevaluatedExprt   PolynomialErrort   Dummyt   expt	   powdenestt   PolynomialDivisionFailedt   discriminantt   UnificationFailedt   appellf1(   t   TupleArg(   t
   elliptic_ft
   elliptic_et   elliptic_pi(   t   flatten(   t   randint(   t   Ort   rubi_unevaluated_exprc           B   s   e  Z d  Z e d    Z RS(   ss   
    This is needed to convert `exp` as `Pow`.
    sympy's UnevaluatedExpr has an issue with `is_commutative`.
    c         C   s'   d d l  m } | d   |  j D  S(   Ni(   t	   fuzzy_andc         s   s   |  ] } | j  Vq d  S(   N(   t   is_commutative(   t   .0t   a(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>(   s    (   t   sympy.core.logicR~   t   args(   t   selfR~   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   %   s    (   t   __name__t
   __module__t   __doc__t   propertyR   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR}       s   t   rubi_expc           B   s   e  Z d  Z e d    Z RS(   s  
    sympy's exp is not identified as `Pow`. So it is not matched with `Pow`.
    Like `a = exp(2)` is not identified as `Pow(E, 2)`. Rubi rules need it.
    So, another exp has been created only for rubi module.

    Examples
    ========

    >>> from sympy import Pow, exp as sym_exp
    >>> isinstance(sym_exp(2), Pow)
    False
    >>> from sympy.integrals.rubi.utility_function import rubi_exp
    >>> isinstance(rubi_exp(2), Pow)
    True

    c         G   s   t  t | d  S(   Ni    (   Rh   t   _E(   t   clsR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   eval>   s    (   R   R   R   t   classmethodR   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   -   s   t   rubi_logc           B   s   e  Z d  Z e d    Z RS(   sY  
    For rule matching different `exp` has been used. So for proper results,
    `log` is modified little only for case when it encounters rubi's `exp`.
    For other cases it is same.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import rubi_exp, rubi_log
    >>> a = rubi_exp(2)
    >>> rubi_log(a)
    2

    c         G   s9   | d j  t  r' t | d  j   St | d  Sd  S(   Ni    (   t   hasR   t   sym_logt   doit(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   Q   s    (   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   B   s   (	   t   Arityt	   Operationt   CommutativeOperationt   AssociativeOperationt   OneIdentityOperationt   CustomConstraintt   Patternt   ReplacementRulet   ManyToOneReplacer(   t   op_itert   create_operation_expressiont   op_len(   t   WC(   t   is_matcht   replace_all(   R   t   UtilityOperatorc           B   s#   e  Z d  Z e j Z e Z e Z	 RS(   R   (
   R   R   t   nameR   t   variadict   arityt   Falset   commutativet   Truet   associative(    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   _   s   	t   ABCFGabcdefghijklmnpqrtuvswxzs	   a b c d et   Intc           B   s   e  Z d  Z e d    Z RS(   s9   
    Integrates given `expr` by matching rubi rules.
    c         C   sF   t  | t t t t f  r) t |  | Sd d l m } | | |  S(   Ni(   t   util_rubi_integrate(   t
   isinstancet   intRO   t   floatRP   RL   t   sympy.integrals.rubi.rubiR   (   R   t   exprt   varR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   p   s    (   R   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   l   s   c         C   s4   t  |   }  |  j t  r0 |  j t t  }  n  |  S(   s  
    This function converts back rubi's `exp` to general sympy's `exp`.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import rubi_exp, replace_pow_exp
    >>> expr = rubi_exp(5)
    >>> expr
    E**5
    >>> replace_pow_exp(expr)
    exp(5)

    (   RL   R   R   t   replaceRD   (   t   z(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replace_pow_expx   s    c         C   s   t  |   }  |  S(   N(   R/   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Simplify   s    c         C   s   i | |  6S(   N(    (   R   t   value(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Set   s    c         C   s   t  |  t  rB t |  j    d } | j i |  | | 6 } nA x> |  D]6 } t | j    d } | j i | | | 6 } qI W| S(   Ni    (   R   t   dictt   listt   keyst   xreplace(   t   subsR   t   kt   i(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With   s    c         C   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Module   s    c         c   s    x | D] } |  |  Vq Wd  S(   N(    (   t   fR   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Scan   s    c         C   sc   | r4 x' | D] } |  | |  t  k r t  Sq Wt Sx$ | D] } |  |  t  k r; t  Sq; Wt Sd  S(   N(   R   R   (   R   t   lt   xR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MapAnd   s    c         C   s5   t  |  t t f  r+ t t |  j      S|  t k S(   N(   R   RQ   R   t   FalseQR   t   valuesR   (   t   u(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR      s    c          G   sl   t  |   d k rT t |  d t  r= t d   |  d D  St |  d  d k Sn t d   |  D  Sd  S(   Ni   i    c         s   s   |  ] } t  |  Vq d  S(   N(   t   ZeroQ(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    (   t   lenR   R   R   t   all(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR      s
    c         C   s   |  t  d  k r t St S(   Ni   (   RL   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   OneQ   s    c         C   sK   t  |   }  |  t t f k r" t S|  j rG |  d k  } | j sG | Sn  t S(   Ni    (   R   Rj   Rk   R   t   is_comparablet   is_Relational(   R   t   res(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   NegativeQ   s    		c         C   s   t  |   d k S(   Ni    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NonzeroQ   s    c            sa     t  k r t |  t  St |  t  rC t   f d   |  D  St |   }  |  j    Sd  S(   Nc         3   s$   |  ] } t  |  j    Vq d  S(   N(   RL   R   (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    (   R   t   FreeQRl   R   R   t   anyRL   R   (   t   nodesR   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR      s    c         C   s   t  S(   s    Note that in rubi 4.10.8 this function was not defined in `Integration Utility Functions.m`,
    but was used in rules. So explicitly its returning `False`
    (   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NFreeQ   s    c          G   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   List   s    c         C   sK   t  |   }  |  t t f k r" t S|  j rG |  d k } | j sG | Sn  t S(   Ni    (   R   Rj   Rk   R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   PositiveQ   s    		c          G   s   t  d   |  D  S(   Nc         s   s$   |  ] } | j  o t |  Vq d  S(   N(   t
   is_IntegerR   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PositiveIntegerQ   s    c          G   s   t  d   |  D  S(   Nc         s   s$   |  ] } | j  o t |  Vq d  S(   N(   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NegativeIntegerQ   s    c         C   s0   t  |   }  t |  t t f  r% t S|  j Sd  S(   N(   R   R   R   RO   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntegerQ   s    c          G   s   t  d   |  D  S(   Nc         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   IntegersQ   s    c         C   s9   t  t |    } t | t t f  r1 | d k St Sd  S(   Ni    (   RL   R?   R   RO   RP   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _ComplexNumberQ  s    
c          G   s   t  d   |  D  S(   sJ  
    ComplexNumberQ(m, n,...) returns True if m, n, ... are all explicit complex numbers, else it returns False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import ComplexNumberQ
    >>> from sympy import I
    >>> ComplexNumberQ(1 + I*2, I)
    True
    >>> ComplexNumberQ(2, I)
    False

    c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ComplexNumberQ  s    c          G   s   t  d   |  D  S(   Nc         s   s-   |  ]# } t  |  o$ t |  d  k Vq d S(   i    N(   R   R@   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PureComplexNumberQ  s    c         C   s   |  j  S(   N(   t   is_real(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   RealNumericQ  s    c         C   s   |  j  o |  d k S(   Ni    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PositiveOrZeroQ  s    c         C   s   |  j  o |  d k S(   Ni    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NegativeOrZeroQ"  s    c         C   s   t  |   p t |   S(   N(   t	   FractionQR   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FractionOrNegativeQ%  s    c         C   s   t  t |    o t |   S(   N(   t   Nott   PosQR   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NegQ(  s    c         C   s
   |  | k S(   N(    (   R   t   b(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Equal,  s    c         C   s
   |  | k S(   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Unequal/  s    c         C   s   t  |   r; t t |    r t |   t t |    Sn` t |   rK |  St |   ra t |   St |   r d } x! |  j D] } | t |  7} q} W| Sd S(   Ni    (	   t   ProductQR   t   Firstt   IntPartt   RestR   t   IntegerPartt   SumQR   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   2  s    
c         C   s   t  |   r; t t |    r; t |   t t |    Sn  t |   rK d St |   ra t |   St |   r d } x! |  j D] } | t |  7} q} W| S|  Sd  S(   Ni    (	   R   R   R   t   FracPartR   R   t   FractionalPartR   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   B  s    
c          G   s   t  d   |  D  S(   Nc         s   s   |  ] } | j  Vq d  S(   N(   t   is_Rational(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>U  s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   RationalQT  s    c         C   s   t  |   j S(   N(   RL   t   is_Mul(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   W  s    c         C   s   |  j  S(   N(   t   is_Add(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   Z  s    c         C   s   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NonsumQ]  s    c         C   sY   d  |  | | g k r d  S|  j t d   rI |  j t d  t  }  n  |  j | |  S(   Nt	   Integrate(   t   NoneR   R^   R   Rl   R   (   R   R   t   y(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Subst`  s
    c         C   sh   t  |  t  r |  d St  |  t  r* |  St |   sB t |   rY t |  j  } | d S|  j d Sd S(   s   
    Gives the first element if it exists, or d otherwise.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import First
    >>> from sympy.abc import  a, b, c
    >>> First(a + b + c)
    a
    >>> First(a*b*c)
    a

    i    N(   R   R   RR   R   R   t   SortR   (   R   t   dR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   i  s    c         C   s^   t  |  t  r |  d St |   s/ t |   rO t |  j  } |  j | d   S|  j d Sd S(   s   
    Gives rest of the elements if it exists

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import Rest
    >>> from sympy.abc import  a, b, c
    >>> Rest(a + b + c)
    b + c
    >>> Rest(a*b*c)
    b*c

    i   N(   R   R   R   R   R   R   t   func(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    c         C   s   t  |   rZ |  j } |  j } t |  r6 t |  pY t | t d  d  oY t |  S|  j rz t d   |  j	 D  St |   p |  t
 k Sd  S(   Ni   i   c         s   s   |  ] } t  |  Vq d  S(   N(   t   SqrtNumberQ(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   t   PowerQt   baseRp   R   R   RL   R   R   R   R   RM   (   R   t   mt   n(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    		<	c         C   s^   t  |   r0 t t |    r0 t t |    p] t |   o] t t |    o] t t |    S(   N(   R   R   R   R   R   t   SqrtNumberSumQ(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c            sd   t  |  t  r) t   f d   |  D  S|  j    r` t t |     d   d k r` t Sn  t S(   sA  
    LinearQ(expr, x) returns True iff u is a polynomial of degree 1.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import LinearQ
    >>> from sympy.abc import  x, y, a
    >>> LinearQ(a, x)
    False
    >>> LinearQ(3*x + y**2, x)
    True
    >>> LinearQ(3*x + y**2, y)
    False

    c         3   s   |  ] } t  |    Vq d  S(   N(   t   LinearQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    t   geni   (   R   R   R   t   is_polynomialR-   R)   R   R   (   R   R   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    !c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Sqrt  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcCosh  s    t   Util_Coefficientc           B   s   e  Z d    Z RS(   c         C   s   t  |  j  d k r d } n t |  j d  } t |  r t |  j d  } t | t t f  r| | j |  j d |  S| j |  j d |  Sn |  Sd  S(   Ni   i   i    (	   R   R   R   t   NumericQRc   R   R   RO   t   coeff(   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    	(   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s   i   c         C   s   t  |  rs |  d k s* | t t f k r. d St |   }  t | t t f  r_ |  j | |  S|  j | |  Sn  t |  | |  S(   s  
    Coefficient(expr, var) gives the coefficient of form in the polynomial expr.
    Coefficient(expr, var, n) gives the coefficient of var**n in expr.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import Coefficient
    >>> from sympy.abc import  x, a, b, c
    >>> Coefficient(7 + 2*x + 4*x**3, x, 1)
    2
    >>> Coefficient(a + b*x + c*x**3, x, 0)
    a
    >>> Coefficient(a + b*x + c*x**3, x, 4)
    0
    >>> Coefficient(b*x + c*x**3, x, 3)
    c

    i    (	   R  Rj   Rk   Rc   R   R   RO   R  R  (   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Coefficient  s    c         C   s   t  |   }  t |  t  r t |  j t  r |  j d k rU t t |  j  |  j  S|  j d k  r t t |  j  d |  j  Sq n t |  t  r t	 |   }  n  t
 |   d S(   Ni    ii   (   R   R   Rh   Rp   RO   t   DenominatorR  t	   NumeratorRT   RI   R.   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    #c         C   s   t  |  | g | g |  S(   N(   RU   (   R   R   t   cR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Hypergeometric2F1  s    c         C   s+   t  |  t  r |  S|  j r& t }  n  |  S(   N(   R   t   boolR   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s
    		c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    c         C   s   t  |  | | | | |  S(   N(   Ru   (   R   t   b1t   b2R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   AppellF1  s    c          G   s
   t  |    S(   N(   Ry   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   EllipticPi  s    c          G   s
   t  |    S(   N(   Rx   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   EllipticE  s    c         C   s   t  |  |  S(   N(   Rw   (   t   PhiR  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   EllipticF  s    c         C   s'   | d  k r t |   St |  |  Sd  S(   N(   R   R"   R(   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcTan  s    
c         C   s
   t  |   S(   N(   R%   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcCot%  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcCoth(  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcTanh+  s    c         C   s
   t  |   S(   N(   R$   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcSin.  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcSinh1  s    c         C   s
   t  |   S(   N(   R&   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcCos4  s    c         C   s
   t  |   S(   N(   R#   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcCsc7  s    c         C   s
   t  |   S(   N(   R'   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcSec:  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcCsch=  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ArcSech@  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SinhC  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TanhF  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CoshI  s    c         C   s
   t  |   S(   N(   R    (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SechL  s    c         C   s
   t  |   S(   N(   R!   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CschO  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CothR  s    c          G   sS   xL t  d t |   d  D]1 } y  |  | |  | d k r? t SWq t SXq Wt S(   Ni    i   (   t   rangeR   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   LessEqualU  s     	c          G   sS   xL t  d t |   d  D]1 } y  |  | |  | d k r? t SWq t SXq Wt S(   Ni    i   (   R,  R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Less^  s     	c          G   sS   xL t  d t |   d  D]1 } y  |  | |  | d k r? t SWq t SXq Wt S(   Ni    i   (   R,  R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Greaterg  s     	c          G   sS   xL t  d t |   d  D]1 } y  |  | |  | d k  r? t SWq t SXq Wt S(   Ni    i   (   R,  R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   GreaterEqualp  s     	c          G   s*   t  d   |  D  o) t  d   |  D  S(   s5  
    FractionQ(m, n,...) returns True if m, n, ... are all explicit fractions, else it returns False.

    Examples
    ========

    >>> from sympy import S
    >>> from sympy.integrals.rubi.utility_function import FractionQ
    >>> FractionQ(S('3'))
    False
    >>> FractionQ(S('3')/S('2'))
    True

    c         s   s   |  ] } | j  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         s   s'   |  ] } t  |  t d   k Vq d S(   i   N(   R  RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   y  s    c         C   s   t  |  p t  |  p t t d  | t d  |  p t t d  | t d  |  p t t d  | t d  |  p t t d  | t d  |  p t  | |  S(   Ni   i   i   i   (   R   R   RL   (   R   R   R  R   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntLinearcQ  s    c         C   s
   |  j    S(   N(   Rc   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Expand  s    c         C   s   t  |  |  S(   s'  
    If u is free from x IndependentQ(u, x) returns True else False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import IndependentQ
    >>> from sympy.abc import  x, a, b
    >>> IndependentQ(a + b*x, x)
    False
    >>> IndependentQ(a + b, x)
    True

    (   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IndependentQ  s    c         C   s   |  j  p t |   S(   N(   t   is_Powt   ExpQ(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s=   t  |  t  r  t |  j d  St |   o< t |  j d  S(   Ni    i   (   R   t   sym_expR   R   R  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntegerPowerQ  s    c         C   sc   t  |  t  r3 t |  j d  o2 t |  j d  St |   ob t |  j d  ob t |  j d  S(   Ni    i   (   R   R6  R   R   R   R  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PositiveIntegerPowerQ  s    $c         C   s=   t  |  t  r  t |  j d  St |   o< t |  j d  S(   Ni    i   (   R   R6  R   R   R  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FractionalPowerQ  s    c         C   sF   t  |   }  t |  t  r t S|  d  t t t g k r; t S|  j Sd  S(   N(   R2   R   R   R   R   R   R   t   is_Atom(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   AtomQ  s    c         C   s"   t  |   }  t |   t t f k S(   N(   R   t   HeadR6  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR5    s    c         C   s   |  j  t t f k S(   N(   R   R   t   Log(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   LogQ  s    c         C   s   |  j  S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR<    s    c         C   s*   t  |  t  r | |  k S| |  j k Sd  S(   N(   R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MemberQ  s    
c         C   s@   t  |   r |  } n t |   } t t t t t t t g |  S(   N(	   R;  R<  R?  R   R   R   R	   R   R
   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TrigQ  s    	c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SinQ  s    c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CosQ  s    c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TanQ  s    c         C   s   t  |   t k S(   N(   R<  R	   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CotQ  s    c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SecQ  s    c         C   s   t  |   t k S(   N(   R<  R
   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CscQ  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Sin  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Cos  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Tan  s    c         C   s
   t  |   S(   N(   R	   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Cot  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Sec  s    c         C   s
   t  |   S(   N(   R
   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Csc  s    c         C   s@   t  |   r |  } n t |   } t t t t t t t g |  S(   N(	   R;  R<  R?  R   R   R   R   R    R!   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   HyperbolicQ  s    	c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SinhQ  s    c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CoshQ  s    c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TanhQ	  s    c         C   s   t  |   t k S(   N(   R<  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CothQ  s    c         C   s   t  |   t k S(   N(   R<  R    (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SechQ  s    c         C   s   t  |   t k S(   N(   R<  R!   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CschQ  s    c         C   s@   t  |   r |  } n t |   } t t t t t t t g |  S(   N(	   R;  R<  R?  R$   R&   R"   R%   R'   R#   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   InverseTrigQ  s    	c         C   s   t  t t t t g t |    S(   N(   R?  R   R   R   R
   R<  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SinCosQ  s    c         C   s   t  t t t t g t |    S(   N(   R?  R   R   R    R!   R<  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   SinhCoshQ  s    c         C   s   t  t t |     S(   N(   R   R   R3   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   LeafCount"  s    c         C   s   t  |   }  t |  t  r t |  j t  r |  j d k rU t t |  j  |  j  S|  j d k  r t t |  j  d |  j  Sq n t |  t  r t	 |   }  n  t
 |   d S(   Ni    i(   R   R   Rh   Rp   RO   R  R  R  RT   RI   R.   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  %  s    #c         C   s    t  |  t t f  r t S|  j S(   N(   R   R   R   R   t	   is_number(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NumberQ1  s    c         C   s   t  |   j S(   N(   RF   RX  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  6  s    c         C   s&   t  |  t  r t |   St |  j  S(   s3  
    Returns number of elements in the experssion just as sympy's len.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import Length
    >>> from sympy.abc import  x, a, b
    >>> from sympy import cos, sin
    >>> Length(a + b)
    2
    >>> Length(sin(a)*cos(a))
    2

    (   R   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Length9  s    
c         C   s   t  |  t  S(   N(   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ListQM  s    c         C   s   t  |   }  t |  j    S(   N(   RL   R?   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ImP  s    c         C   s   t  |   }  t |  j    S(   N(   RL   R@   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ReT  s    c         C   s4   |  j  s t |   }  n  |  t t t t t t g k S(   N(   R:  R<  R   R   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   InverseHyperbolicQX  s    	c         C   sC   t  |   pB t |   r* t |   d k pB t |   pB |  j t k S(   Ni   (   R>  RT  RZ  R^  R   RE   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   InverseFunctionQ]  s    c         C   sl   t  |   r t St |   t |   Bt |   Br= t |  |  Sx$ |  j D] } t | |  sG t SqG Wt Sd  S(   N(	   R;  R   R@  RM  t	   CalculusQR   R   t   TrigHyperbolicFreeQR   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRa  a  s     c         C   s   t  |   r t St |   sF t |   sF |  j t k sF |  j t k rS t |  |  Sx! |  j D] } t	 |  s] t
 Sq] Wt Sd  S(   N(   R;  R   R_  R`  R   RU   Ru   R   R   t   ElementaryFunctionQR   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   InverseFunctionFreeQn  s    6c      
   C   sX  t  |   r t t |   St |   r; t t t |     St |   r |  j }  |  j	 } t |   t |  @t
 |  t |   B@S|  j r t d   |  j D  S|  j r t d   |  j D  S|  j rP|  j } |  j d }  | t t t t t t t t t g	 k rt |   S| t t g k r3t d |  d  S| t k rIt |   St Sn t Sd  S(   Nc         s   s   |  ] } t  |  Vq d  S(   N(   t   RealQ(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         s   s   |  ] } t  |  Vq d  S(   N(   Rd  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    i    ii   (    R[  R   Rd  R  R   R\  RF   R  R  Rp   R   R   R   R   R   R   t   is_FunctionR   R   R   R   R	   R   R
   R"   R%   R   R$   R&   t   LER   R   (   R   t   vR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRd  {  s.    		(				'

c         C   s   t  |  |  S(   N(   R   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   EqQ  s    c         C   s$   t  |   r t St |   r  t Sd  S(   N(   R;  R   R9  R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FractionalPowerFreeQ  s    c         C   s*   t  |   r" t t |    r" t St Sd  S(   N(   R;  R   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ComplexFreeQ  s    c            s  | d  k r   j   St | t  rt | j t  r8t   | j  }   j |  r1| | j d k ro t Sy t	   | j  } Wn t
 k
 r t SX| j   } | d  d | j  } | | d g 7} x6 | D]. } | d k s | j |  } d | | <q q Wt d   | D  r t St S  j |  St Sqt | j t t f  rt t    | j  rt   | j  d k rt   f d   | j j D  st Sqqn  t | t  rt   f d   | j D  S  j |  S(   Ni    ic         s   s   |  ] } | d  k Vq d S(   i    N(    (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         3   s   |  ] } t    |  Vq d  S(   N(   R   (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         3   s   |  ] } t    |  Vq d  S(   N(   t   PolynomialQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R   R  R   Rh   Rp   RO   R-   R  R   R)   Rn   t
   all_coeffst   indexR   R   RP   RS   R   R/   t   Exponentt   free_symbolsRN   R   (   R   R   t   degt   pt   c_listt
   coeff_listR   Rm  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRk    s>    
0"c         C   s
   t  |   S(   N(   RX   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FactorSquareFree  s    c         C   s   t  d  } t  d  } t  d  } t  d  } |  j | |  } t | | |  r t | | |  r t | |  r t | |  j | |  } t | | |  r t | | |  r t St Sq t | | |  Sn t Sd  S(   NR   t   wR  R  (	   RG   t   matchRk  R   R   Rt  R  R   R   (   R   R   R   Ru  R  R  t   Matcht   e(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PowerOfLinearQ  s    &&c         C   s  t  t |    }  | d  k r t |   j s= |  j |  rA d St |  |  r t | t  ru t t	 |  |  |  St |  d | Sd SnDt |   j s |  j |  r d g } n  |  j
 rt |  |  }  g  } d } x |  j D] } | j |  rGt | t  r+| t t	 | |  |  g 7} qm| t | d | g 7} q | d k r | d g 7} | d 7} q q W| j   | } nB t | t  rt t	 |  |  |  g } n t |  d | g } | |   Sd  S(   Ni    R  i   (   R2  RL   R   RX  R   Rk  R   RS   R-   R)   R   R_   R   t   sort(   R   R   t   hR   t   lstR   t   t(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRn    s:    	"
	c         C   s   t  |   rs x` |  D]X } t t | | d  oa t t | | d  d k o^ t | | d  d k   r t Sq Wt St |  | d  o t t |  | d  d k o t |  | d  d k  Sd  S(   Ni   i    i   (   R[  R   t   PolyQR  R   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   QuadraticQ
  s    Nc         C   st   t  |  |  os t  | |  os t |  |  os t t |  | d  t | | d  t |  | d  t | | d   S(   Ni    i   (   R  R   R   R  (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   LinearPairQ  s    c         C   s  t  |  |  r t |  |  d k r t |  | t  } t |  d k rs d t |  | t |  |   t |  |  g St |  d k r | d d k r t |  | d  t |  | t |  |   t |  |  g St Sqt Snt |   r|  j | k rt |  j	 |  rd d |  j	 g St Snt
 |   r\t t |   |  rt t |   |  } t |  rdt St |   | d t |   | d | d g Snj t t |   |  rt t |   |  } t |  rt St |   | d t |   | d | d g Sn  t t |   |  } t |  r#t St t |   |  } t |  rHt S| d } | d } | d } | d } | d }	 | d }
 t |  rt |  rd | |	 | |
 g St | |
  r| |	 | | | g St Sn  t |  rt | |
  r| |	 | |	 |
 g St Sn  t | |
  rUt | |	 | |  rU| | | |	 d | g St Snat |   rt t |   |  rt t |   |  } t |  rt St |   | d | d | d g Sn` t t |   |  r(t t |   |  } t |  rt St |   | d | d | d g Sn  t t |   |  } t |  rMt St t |   |  } t |  rrt St | d | d  r| d | d | d | d | d g St Sn t Sd  S(   Ni    i   i   (   Rk  Rn  R   R   R  R   R  R  R   Rp   R   R   t   BinomialPartsR   R;  R   Rh  R   (   R   R   R|  t   lst2t   lst1R   R   R  R  R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    +"7!00





'&&)c         C   s  t  |   }  t |  |  ru t |  |  } t |  d k  sn t t  t |    sn t t |  d d  ru t Sn  t |   r t |  j	 d  r t
 |  j |  } | s t | d  r t S| d d d | d | d | d d | d g Sq t Sn  t |   rt t |   |  rt t |   |  } | s>t St |   | d t |   | d t |   | d | d g Sn  t t |   |  rt t |   |  } | st St |   | d t |   | d t |   | d | d g Sn  t
 t |   |  } | st St
 t |   |  } | s2t S| d } | d } | d } | d } | d }	 | d }
 t | |
  rt | |	 | |  r| | | |	 | | | |	 | g St Sn  t |   rt t |   |  r-t t |   |  } | s t St |   | d | d | d | d g Sn  t t |   |  rt t |   |  } | sat St |   | d | d | d | d g Sn  t t |   |  } | sXt
 t |   |  } | st St t |   |  } | st
 t |   |  } | st St | d d | d  rE| d | d | d | d | d g St | d d | d  r| d | d | d | d | d g St Sn  t | d | d  rt | d | d  r| d | d | d | d | d | d g St | d d | d  rQt | d | d  rQ| d | d | d | d | d | d g St Sn  t t |   |  } t |  rat
 t |   |  } | st St | d | d  rt | d | d  r| d | d | d | d | d | d g St | d d | d  rZt | d | d  rZ| d | d | d | d | d | d g St Sn  t | d | d  rt | d | d  rt | d | d  r| d | d | d | d | d | d | d g St Sn t Sd  S(   Ni   i   i   i    (   R2   Rk  t   CoefficientListR   t   EvenQR   R   R  Rh  Rp   R  R  R   R   R   t   TrinomialPartsR   R   R   R;  (   R   R   R|  R  R  R   R   R  R  R   R  t   lst3t   lst4(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  l  s    D7AA





'$--((/030/030G8c            sJ  t  |   r& t   f d   |  D  S| d  k r|    k rB t St   t  r   j }   j } t | |  r t	 |  r t
 |  |  o t |     p t t |      St |  r t |     o t t |     |  St Sq n  t |     pt |  t     St |     oEt |    |  d k oEt |     | k Sd  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   R~  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    i    (   R[  R   R   R   R   Rh   Rp   R  R   R   R~  Rk  t   TogetherR;  R  R  Rn  (   R   R   R  t   x_base(    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR~    s     		1%
"c         C   s#   t  |  t t f  o" |  d d k S(   Ni   i    (   R   RO   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s#   t  |  t t f  o" |  d d k S(   Ni   i   (   R   RO   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   OddQ  s    c         C   s   t  |   r+ t |  d  o* t  t |    St |   rD t |  j  St |   rr t t |    oq t t	 |    St
 |   r t |   } t |  r t |  St St Sd  S(   Ni    (   R   R/  R	  R  R  Rp   R   t   PerfectSquareQR   R   R   R   R   R   (   R   t   s(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    "
c         C   s   t  |   r |  d k St |   r/ t |  j  St |   r] t t |    o\ t t |    St |   r t	 |   } t
 |  o t |  St Sd  S(   Ni    (   R   R  R  Rp   R   t   NiceSqrtAuxQR   R   R   R   R   R   (   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
"c         C   s   t  t |    o t |   S(   N(   R   R   R  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   NiceSqrtQ  s    c         C   s
   t  |   S(   N(   RI   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s[  t  |   r |  d k St |   rW t t |    rD t |   d k St |   d k Sn t |   r t |   } t t |   r t |  d k St |  d k Sn t |   r t |  j	  r t
 |  j  St Sn t |   rt
 t |    rt
 t |    St
 t |    SnB t |   r1t
 t |    S|  d k } | t t f k rS| St Sd  S(   Ni    (   R   RY  R   R]  R\  R  RF   R  R  Rp   t   PosAuxR  R   R   R   R   R   R   (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s2    
c         C   s   t  t |    S(   N(   R  t   TogetherSimplify(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   7  s    c         C   s6   t  |  |  r. t t t |  |  j     Sg  Sd  S(   N(   Rk  R   t   reversedR)   Rl  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  ;  s    c         C   sM   t  | t  r@ i  } x | D] } | j |  q W|  j |  S|  j |  S(   N(   R   R   t   updateR   (   R   R   t   n_argsR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   ReplaceAllA  s    c   	      C   s   t  | | g |  r t | |  r t t | i | | | | 6 |  } g  | D] } t | |  ^ qR } d } xQ t d t |  d  D]6 } | t |  | | d | | | | d  } q W| S| |  S(   Ni    i   (   R   Rk  R  R  t   SimplifyTermR,  R   R   (	   Rg  R   R   R   R   R|  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ExpandLinearProductI  s    $'" 4c          G   sV   t  |   }  t |   d k rL t |  d t t f  r? |  d St  d  Sn  t |    S(   Ni   i    (   RL   R   R   R   RO   RJ   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   GCDT  s    c         C   s
   t  |   S(   N(   RB   (   t   expn(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ContentFactor]  s    c         C   s  t  |   rK t t |    r" |  St t |    r> t |   St d  SnJt |   r t |  j  r t |  j  r |  j d k r d t	 |  j  Sd d t	 |  j  Sqt d  Sn t
 |   r t g  |  j D] } t |  ^ q   St |   rt |   d k  r9t |   } t |  r,t d  St |  Sqt t |    } t t |    } | d k  r| d k  rt | |  St | |  Sn  t d  S(   Ni   i    i2   (   RY  R   R\  R]  RL   R  R   R  Rp   R  R   RN   R   t   NumericFactorR   RW  R  R   R   R  (   R   R   R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  `  s4    
&
c         C   s;  t  |   rB t t |    r( t d  St t |    r> t S|  St |   r~ t |  j  rz t	 |  j
  rz |  t |   S|  St |   r d } x! |  j D] } | t |  9} q W| St |   r7t |   d k  r t |   } t |  r |  St |  Sn  t |   } d } x |  j D] } | | | 7} qW| S|  S(   Ni   i2   i    (   RY  R   R\  RL   R]  RM   R  R   R  R   Rp   R  R   R   t   NonnumericFactorsR   RW  R  (   R   t   resultR   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s6    
c         C   sQ  | d  k r g  } n  t |   }  t |  } t |   r= | St |   r\ t |  j | |  St |   st t |   r t t |   | t t	 |   | |   St
 |  |  rMg  } xy | D]q } t |  r | j |  k r)| j |  Pq)q t | j  d k r | j d |  k r)| j |  Pq)q q W| g  k rI| j |   n  | S| S(   Ni   (   R   R   R;  R7  t   MakeAssocListR  R   R   R   R   R   R  Rp   t   appendR   R   (   R   R   t   alstt   tmpR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s2    	(c         C   s[  | d  k r g  } n  t |   }  t |  } t |   r= |  St |   rc t |  j | |  |  j St |   s{ t |   r |  j	 g  |  j
 D] } t | | |  ^ q   St |  |  rWg  } xy | D]q } t |  r | j |  k r7| j |  Pq7q t | j
  d k r | j
 d |  k r7| j |  Pq7q q W| g  k rK|  S| d d S|  S(   Ni   i    (   R   R   R;  R7  t   GensymSubstR  Rp   R   R   R   R   R   R  R  R   (   R   R   R  R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s2    	/c         C   s  t  |   r g  } x2 | D]* } | j d |  k r | j |  Pq q W| g  k rW |  St | d j  d k r| d j d Sn t |   r t |  j | |  } |  j d k  r t |  r d S| |  j St	 |   s t
 |   r|  j g  |  j D] } t | | |  ^ q   S|  S(   Ni    i   t   Indeterminate(   R;  R   R  R   R7  t   KernelSubstR  Rp   R   R   R   R   (   R   R   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s$    /c         C   s@  t  |  |  r6 t t |  |   r6 t |  |  } n t d  } t |  r[ t | |  St |  |  } t |  r t | |  St t |  |  | |  } t |  r t	 |  |  } t | j
 g  | j D] } | | ^ q   |  St |   } t |  rt | |  St |   } t |  r3t | |  St |  |  S(   Ni    (   t   AlgebraicFunctionQR   t   RationalFunctionQt   ExpandAlgebraicFunctionRL   R   t   ExpandCleanupt
   SmartApartt   RationalFunctionFactorst   NonrationalFunctionFactorsR   R   R2  R  (   R   R   Rg  Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ExpandExpression  s&    $0c         C   s    t  |  |  r t |  |  S|  S(   N(   R  Re   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Apart  s    c          G   s   t  |   d k rh |  \ } } t | |  } t t t | | |  |  | |  } | d k rd | S| S|  \ } } } t | |  } t t t | | |  |  | |  } | d k r | S| S(   Ni   R  (   R   R  R  R  R  (   R   R   R   R  R  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    ''c            s7   |  j  |      r/ t   f d   | D  Sd  Sd  S(   Nc         3   s   |  ] }   | Vq d  S(   N(    (   R   R   (   Rv  (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>!  s    (   Rv  t   tupleR   (   R   t   patternR   (    (   Rv  sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MatchQ  s    c         C   s"   t  |  | |  t |  | |  g S(   N(   t   PolynomialQuotientt   PolynomialRemainder(   Rq  t   qR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialQuotientRemainder%  s    c         C   sg   t  |   rF d } x- |  j D]" } t | |  r | | 9} q q W| St |  |  rY |  St d  Sd  S(   Ni   (   R   R   R   RL   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FreeFactors(  s    c         C   sa   t  |   rF d } x- |  j D]" } t | |  s | | 9} q q W| St |  |  rY d S|  Sd S(   sB  
    Returns the product of the factors of u not free of x.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import NonfreeFactors
    >>> from sympy.abc import  x, a, b
    >>> NonfreeFactors(a, x)
    1
    >>> NonfreeFactors(x + a, x)
    a + x
    >>> NonfreeFactors(a*b*x, x)
    x

    i   N(   R   R   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NonfreeFactors5  s    c         C   s   t  j t |  |   S(   N(   t   RemoveContentAux_replacerR   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   RemoveContentAuxQ  s    c         C   sZ   t  |  |  } t |  } t t | |  d  r@ t | |  St t  | |  |  Sd  S(   Ni   (   R  R  Rh  R  R  (   R   R   Rg  Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   RemoveContentT  s
    c         C   sa   t  |   rF d } x- |  j D]" } t | |  r | | 7} q q W| St |  |  rY |  Sd Sd S(   s   
    Returns the sum of the terms of u free of x.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import FreeTerms
    >>> from sympy.abc import  x, a, b
    >>> FreeTerms(a, x)
    a
    >>> FreeTerms(x*a, x)
    0
    >>> FreeTerms(a*x + b, x)
    b

    i    N(   R   R   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   FreeTerms^  s    c         C   sm   t  |   rL t d  } x- |  j D]" } t | |  s" | | 7} q" q" W| St |  |  s_ |  St d  Sd  S(   Ni    (   R   RL   R   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NonfreeTermsz  s    c         C   s  t  |   rt d d | g } t d d | g } t d  } | | } |  j |  } | r| | g } t |  t |  k rt g  | D] } | | ^ q  \ }	 }
 t |
  r |
 |	 }	 }
 n  t |	 |  rt |	  rd } x |	 j D] } | | |
 7} q W| Sqn  | | | } |  j |  } | r| | | g } t |  t |  k rt g  | D] } | | ^ ql \ }	 } }
 t |  rt |	  rt	 |	 |  } d } x | j D] } | | |
 7} qW| Sqqn  |  S(   NR   t   excludeR  Rg  i    (
   R   RG   Rv  R   R  R   R   R   R   R2  (   R   R   t   u_t   n_t   v_R  Rv  R   R   R   Rg  R  R  Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s<    
)
,c         C   s  t  |   rt d  } t d d | g } t d d | g } t d d | g } t d d | g } t d d | g } t d d | g } | | | | | | | | | }	 |  j |	  }
 |
 ry!| | | | | | | g } t g  | D] } |
 | ^ q  \ } } } } } } } t | | | |  t | | | |  @rt | | | | | | | | | | d	 |  St | | | |  t | | | |  @rt | | | | | | | | | | | d	 |  SWqqXqn  |  S(
   NR   R   R  R   R  R   Rx  R   i   (   R   RG   Rv  R  R   t   CollectReciprocals(   R   R   R  t   a_t   b_t   c_t   d_t   e_t   f_R  Rv  R   R   R   R   R   R  R   Rx  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s*    &8.5.=
c         C   sv   t  |  |  } t |  rn d } x$ | j D] } | t | |  7} q+ W| } t |  rg t | |  S| Sn | Sd  S(   Ni    (   R  R   R   R  t   UnifySum(   R   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  |   rQ |  g  k r t St t |   | |  rJ t t |   | |  St Sn t |   sl t |  |  rp t St |   r t	 |  j
  | t |  j
 |  @Br t |  j | |  SnD t |   t |   Br x' |  j D] } t | | |  s t Sq Wt St S(   N(   R[  R   R  R   R   R   R;  R   R  R   Rp   R  R   R   R   (   R   R   t   flagR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s"    #c         C   sn   | d k r" t  t |   | |  St  |  | |  } t  t |   | |  } t | |  d k rf | S| Sd  S(   Ni   i    (   R  R  R   (   R   t   formR  t   coef1t   coef2(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Coeff  s    c         C   s   t  |   r t |   S|  S(   N(   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   LeadTerm  s    
c         C   s   t  |   r t |   S|  S(   N(   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   RemainingTerms  s    
c         C   sm   t  |   rM t |   d k rM t |   t d  k r: |  St t |    Sn t |   ri t t |    S|  S(   Ni    i   (   R   R]  R\  RL   t
   LeadFactorR   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  |   rQ t |   d k rQ t |   d k r: t d  St t t |    Sn& t |   rw t t |    t |   St d  S(   Ni    i   (	   R   R]  R\  RL   RM   t   RemainingFactorsR   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
c         C   s#   t  |   } t |  r | j S| S(   s   
    returns the base of the leading factor of u.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import LeadBase
    >>> from sympy.abc import  a, b, c
    >>> LeadBase(a**b)
    a
    >>> LeadBase(a**b*c)
    a
    (   R  R  R  (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   LeadBase  s    c         C   s#   t  |   } t |  r | j S| S(   N(   R  R  Rp   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   LeadDegree#  s    c         C   s^   t  |   r" |  j d k  r" d Sn  t |   rT t g  |  j D] } t |  ^ q;   St |   S(   Ni    i   (   R  Rp   R   RN   R   t   NumerR  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  *  s    &c         C   sq   t  |   r5 |  j d k  rg |  j d |  j d Sn2 t |   rg t g  |  j D] } t |  ^ qN   St |   S(   Ni    i   (   R  Rp   R   R   RN   t   DenomR  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  3  s    &c         C   s   t  |  | |  S(   N(   RU   (   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   hypergeom<  s    c         C   s3   | r t  t |   | |  St  t |   |  Sd  S(   N(   Rn  R  (   R   R  R{  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Expon?  s    c         C   s  t  d  } t  d d | d d g } t  d d | g } t  d d | d g } t  d d | g } t  d	 d | d g } t  d
 d | g } t  d d | g }	 | | | | |	 | | | | | | }
 |  j |
  } | r| | | |	 | | | g } t |  t |  k rt g  | D] } | | ^ q+ \ } } } } } } } t | |  r| | | | | | | | | | | | t j k r|  S| | | | | | | | | | | | Sqqn  | | | | |	 | | | | }
 |  j |
  } | r| | | |	 | | | g } t |  t |  k rt g  | D] } | | ^ qY \ } } } } } } } t |  rt | | | |  r| | | | | | | | | | t j k r|  S| | | | | | | | | | Sqqn  |  S(   NR   Rq  R  i   i    R   R   R  R   R  R  (   RG   Rv  R   R  R   RL   t   NaNR   (   R   R   R  t   p_R  R  R  R  R  t   m_R  Rv  R   R   R   R   R   R  R  R  Rq  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MergeMonomialsE  s:    .8;9&8$31c   	      C   sz  t  |  | |  } t |  | |  } d } xG t | | t  D]3 } | t t t | | |  | |  |  7} q= W| } t |  } t | |  } t | |  } | t | | t	  } t
 t | | d   r | } n  d } xK t | | t  D]7 } | t t t | | |  | | |  |  7} q W| } t | |  rb| | | | t | |  S| | | | | Sd  S(   Ni    (   R  R  Rn  R   t   SimpR  R  R  R  R\   R   t	   BinomialQt   ExpandToSum(	   R   Rg  R   R*   R+   R  R   t   freet   monomial(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialDividek  s&    1
5c         C   s`   t  |   r= x* |  D]" } t t | | |   r t Sq Wt St |  rM t St  t |  |   S(   sN  
    If u is equivalent to an expression of the form a + b*x**n, BinomialQ(u, x, n) returns True, else it returns False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import BinomialQ
    >>> from sympy.abc import  x
    >>> BinomialQ(x**9, x)
    True
    >>> BinomialQ((1 + x)**3, x)
    False

    (   R[  R   R  R   R   RY  R  (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  |   r= x* |  j D] } t t | |   r t Sq Wt St } t |   }  t |   r |  j d k r t	 |  j
 |  r t } q n  t  t |  |   o t t |  |   o t |  S(   s  
    If u is equivalent to an expression of the form a + b*x**n + c*x**(2*n) where n, b and c are not 0,
    TrinomialQ(u, x) returns True, else it returns False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import TrinomialQ
    >>> from sympy.abc import x
    >>> TrinomialQ((7 + 2*x**6 + 3*x**12), x)
    True
    >>> TrinomialQ(x**2, x)
    False

    i   (   R[  R   R   t
   TrinomialQR   R   R   R  Rp   R  R  R  R  (   R   R   R   t   check(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    !c            s9   t  |   r& t   f d   |  D  St  t |      S(   sq  
    If u is equivalent to an expression of the form a*x**q+b*x**n where n, q and b are not 0,
    GeneralizedBinomialQ(u, x) returns True, else it returns False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import GeneralizedBinomialQ
    >>> from sympy.abc import a, x, q, b, n
    >>> GeneralizedBinomialQ(a*x**q, x)
    False

    c         3   s   |  ] } t  |    Vq d  S(   N(   t   GeneralizedBinomialQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R[  R   t   GeneralizedBinomialParts(   R   R   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c            s9   t  |   r& t   f d   |  D  St  t |      S(   s  
    If u is equivalent to an expression of the form a*x**q+b*x**n+c*x**(2*n-q) where n, q, b and c are not 0,
    GeneralizedTrinomialQ(u, x) returns True, else it returns False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import GeneralizedTrinomialQ
    >>> from sympy.abc import x
    >>> GeneralizedTrinomialQ(7 + 2*x**6 + 3*x**12, x)
    False

    c         3   s   |  ] } t  |    Vq d  S(   N(   t   GeneralizedTrinomialQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R[  R   t   GeneralizedTrinomialParts(   R   R   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   sG   t  |   } d d g g } x% | d D] } | j t |   q& W| S(   Ni   (   RW   R  R   (   Rd   t   rR  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FactorSquareFreeList  s
    c         C   s   t  |  |  r t |   } d } d } | d d d g k rL t |  } n  x! | D] } t | | d  } qS W| d k r x( | D]  } | | d | d | } q Wt |  | St Sn  t S(   Ni    i   (   Rk  R  R   R  R2  R   (   R   R   R|  RJ   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PerfectPowerTest  s    c         C   s?   t  |  |  r; t |   } t |  s3 t |  r7 | St St S(   N(   Rk  Rt  R  R   R   (   R   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SquareFreeFactorTest  s    c         C   s   t  |   s t |  |  r t St |   r; t |  j |  St |   sS t |   r x* |  j D] } t	 t | |   r] t
 Sq] Wt St
 S(   N(   R;  R   R   R7  R  R  R   R   R   R   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   sc   t  |   rF d } x- |  j D]" } t | |  r | | 9} q q W| St |  |  rY |  St d  S(   Ni   (   R   R   R  RL   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   sc   t  |   rF d } x- |  j D]" } t | |  s | | 9} q q W| St |  |  r_ t d  S|  S(   Ni   (   R   R   R  RL   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
c         C   sK   t  |  t  r t t |    St |  j  } |  j t t |     Sd  S(   N(   R   R   R  R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Reverse(  s    c         C   si  t  |  |  r" t |  |  d g St |   rr t |  j  rT |  j t |  j |  S|  j t t |  j |   St |   r t t	 |   |  } t t
 |   |  } | d | d | d | d g St |   r_t |   } t |  rOt t	 |   |  } t t
 |   |  } t | d | d | d | d  | d | d g St | |  Sn  d d g S(   s  
    u is a polynomial or rational function of x.
    RationalFunctionExponents(u, x) returns a list of the exponent of the
    numerator of u and the exponent of the denominator of u.

    Examples
    ========
    >>> from sympy.integrals.rubi.utility_function import RationalFunctionExponents
    >>> from sympy.abc import  x, a
    >>> RationalFunctionExponents(x, x)
    [1, 0]
    >>> RationalFunctionExponents(x**(-1), x)
    [0, 1]
    >>> RationalFunctionExponents(x**(-1)*a, x)
    [0, 1]

    i    i   (   Rk  Rn  R7  R   Rp   t   RationalFunctionExponentsR  R  R   R   R   R   R  RY   (   R   R   R  R  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  /  s$    "7c         C   s   d   } t  |  } d   } t  |  } d   } t t t t t t  | |  } t | |  } d   }	 t t t t   }
 t |
 |	  } |  j t	 t
  }  t t |  |  | | g  } t |  S(   Nc         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f1X  s    c         S   s    t  |  t  s t St | |   S(   N(   R   RR   R   t   UnsameQ(   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f2\  s    c         S   sQ   t  | |  } t t |  t g  | j D] } | | |  ^ q(   | |  |  S(   N(   t   RationalFunctionExpandt   IfR   RT   R   (   R  R   R   Rg  Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With1b  s    c   	      S   s"  t  |  |  } d   } t |  } t t t t d t d   t t d t d   t t t t	 t d t d   t
 t  |  } t t |  |  |  } t | |   r | r | St  t |  |  |  } t |  |  } t |  rt g  | j D] } | | ^ q   S| | Sd  S(   Nc      	   S   sL   t  t t |  | | | |  |  t | |  t | t | t d     S(   Ni(   Rg   R   R   R   R   RT   RL   (   R   R   R  R   Rq  R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _consf_uj  s    R  i   R   R   (   t   ExpandIntegrandR   R   R   t   x_R   RL   R  R  R  R  R   R  R  R  R   RT   R   (	   R   R   Rg  R  t   cons_ut   patt   result_matchqRu  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With2g  s    	i$(   R   R   R   R  R  R  R  R   R   R6  R   R   R   (   R   R   R  t   cons1R  t   cons2R  t   pattern1t   rule1R  t   pattern2t   rule2R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  U  s    			#	c         C   s  t  |   }  | d  k	 r | | } } t | |  } t | |  } t |  r |  t | |  g } x+ | j D]  } | j t |  | |   qo W| j	 |   S|  t | |  t |  | |  SnMt
 d d d d g } t
 d d | g } t
 d d | d g }	 t
 d d d g }
 t
 d d | g } t
 d	 d | d g } t
 d
 d d d g } | | |	 |
 | } |  j |  } | rt t t t t g | |
 j	  r| | |	 |
 | g } t |  t |  k rt g  | D] } | | ^ q \ } } } } } | j d j | | |  } | r| | f } t |  t |  k rt g  | D] } | | ^ qb \ } } t | |  r| j	 } t | | | | | |  | | | | |  Sqqqqn  |  j t t  }  t t |  |  t d d } t  |  Sd  S(   NR   R  i    i   R   R   t   FR  R   R  t	   max_count(   R   R   R  R  R   R  R   R  R  R   RG   Rv  R?  R$   R&   R   R   R   R  Rk  R  R   R6  R   R   R   t   ExpandIntegrand_rules(   R   R   t   extraRu  R  R  R   R  R  R  t   F_R  R  R  R  Rv  R   R   R   R   R   R  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    sH    %"2)	?c         C   s  t  |   rZ t  |  rS t |   t |  k r: | d k  St |   t |  k  Sqqt Snt  |  rj t St |   r t |  r t |   t |  k r t t |   t |   St |   t |  k  Sqqt Snt |  r t St |   d k st |   d k rDt |  d k s+t |  d k rDt t	 |   t	 |   St
 |   rt
 |  rt |   t |  k rt t	 |   t	 |   St t |   t |   Sqqt Snt |   rt |  rt |  | g  St Snt |  rt St |   st |   t k st |   t k rft |  sOt |   t k sOt |   t k r_t |  | g  St Snt |  st |   t k st |   t k rt St |   t |  k r9t |   t |  k r#xR t t |  j   D]; } |  j | | j | k st |  j | | j |  SqWt St |   t |  k  St |   t |  k  rUt St |  t |   k  rqt St t | |  g   S(   Ni    (   R   RA   R   R   R   R  t   SimplerQR  R]  R\  R   RY  t   OrderedQR;  R<  R@   R?   RZ  R,  R   R   RW  R   (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s`    
H000c         C   sw  t  |  r" t t  |    r" t St  |   rD t t  |   rD t St |  t d   } t | t d   } t |  r t |  r | | k  St Sn  t |  r t St |  r t |  r | | k  St Sn  t |  r t St |   rt |  rt	 |  t	 |  k  St Sn  t |  r%t St	 |  t	 |  k  rAt St	 |  t	 |  k  r]t St t
 | |  g   Sd  S(   Ni   (   R   R   R   R   t   RtRL   R   R   R   RW  R  (   R   Rg  t   sqrtut   sqrtv(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SimplerSqrtQ  s:    

c         C   ss   t  |  |  rV | t d  k r% t S| t d  k rH |  t d  k  S|  | k Sn t t |   t |   Sd S(   s  
    If u + v is simpler than u, SumSimplerQ(u, v) returns True, else it returns False.
    If for every term w of v there is a term of u equal to n*w where n<-1/2, u + v will be simpler than u.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import SumSimplerQ
    >>> from sympy.abc import x
    >>> from sympy import S
    >>> SumSimplerQ(S(4 + x),S(3 + x**3))
    False

    i    i   N(   R   RL   R   t   SumSimplerAuxQR2  (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SumSimplerQ		  s    c         C   s'   t  |  |  } | t k r | S| d S(   Ni   (   R  R   (   R   R   t   bp(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   BinomialDegree"	  s    c         C   s!   t  |  |  } | r | d S| S(   Ni   (   R  (   R   R   R}  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TrinomialDegree)	  s    c         C   s   d   } t  |   r t  |  r t | t |    rX t t |   | | t |     St t |   |  } t |   | d | d g Sq t |  |  r | |  |  d g S|  | g Sn; t  |  r t | |   r d | | |   g S|  | g Sn  |  | g S(   Nc         S   sY   g  } t  } x= |  j D]2 } | | k r; | r; t } q n  | j |  q W|  j |   S(   N(   R   R   R   R  R   (   R   R   R|  t   deletedR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _delete_cases1	  s    i    i   (   R   R?  R   t   CancelCommonFactorsR   (   R   Rg  R  R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  0	  s    	"c   	      C   s,  t  |  |  } | d } | d } t |  t |  k r} t |  d k r} t |  d k r} t | j d | j d |  St |  d d t |  k  r t St | |  r$t | |  rd } d } x! t | |  D] } | | 7} q Wx! t | |  D] } | | 7} q W| | k  St Sn t	 Sd  S(   Ni    i   i   i   (
   R  R<  RZ  t   SimplerIntegrandQR   RW  R   R  R  R   (	   R   Rg  R   R|  t   u1t   v1t   t1t   t2R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  P	  s$    

< 
c         C   s)   t  |  |  } | r% | d | d Sd  S(   Ni   i   (   R  (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   GeneralizedBinomialDegreef	  s    c         C   s   t  |   }  t |  |  r t d d | g } t d d | g } t d d | g } t d d | g } |  j | | | | | |  } | r t | | | |  r | | | | | | | | g Sn t Sd  S(   NR   R  R   R  R  (   R2  t   GeneralizedBinomialMatchQRG   Rv  R   R   (   R   R   R   R   R  R  Rw  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  k	  s    ##c         C   s)   t  |  |  } | r% | d | d Sd  S(   Ni   i   (   R  (   R   R   R}  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   GeneralizedTrinomialDegreex	  s    c         C   s  t  |   }  t |  |  r	t d d | d g } t d d | d g } t d d | g } t d d | d g } t d d | g } |  j | | | | | | | | d | |  } | r|  j r| | | | | | | | d | | | | g Sn t Sd  S(	   NR   R  i    R   R  R  R  i   (   R2  t   GeneralizedTrinomialMatchQRG   Rv  R   R   (   R   R   R   R   R  R  R  Rw  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  }	  s    76c            sx   t  |  t  r) t   f d   |  D  St d d   g } t d d   g } |  j |   |  } | rt t St S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t	   MonomialQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>	  s    R   R  R   (   R   R   R   RG   Rv  R   R   (   R   R   R   R   R@   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  	  s    c         C   sP   t  |   rL x9 |  j D]. } t t | |  p: t | |   r t Sq Wt Sd  S(   N(   R   R   R   R   R  R   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MonomialSumQ	  s
    $t   modulesc         C   sX   t  t |   |  } x< |  j D]1 } t | t  | |   r t  | |  } q q W| S(   s  
    u is sum whose terms are monomials.  MinimumMonomialExponent(u, x) returns the exponent of the term having the smallest exponent

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import MinimumMonomialExponent
    >>> from sympy.abc import  x
    >>> MinimumMonomialExponent(x**2 + 5*x**2 + 3*x**5, x)
    2
    >>> MinimumMonomialExponent(x**2 + 5*x**2 + 1, x)
    0
    (   t   MonomialExponentR   R   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MinimumMonomialExponent	  s
    c         C   sS   t  d d | g } t  d d | g } |  j | | |  } | rO | | Sd  S(   NR   R  R   (   RG   Rv  (   R   R   R   R   R@   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  	  s
    c            sx   t  |  t  r) t   f d   |  D  St d d   g } t d d   g } |  j | |    } | rt t St S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t   LinearMatchQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>	  s    R   R  R   (   R   R   R   RG   Rv  R   R   (   R   R   R   R   R@   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR!  	  s    c         C   s   t  |  t  r7 x! |  D] } t | |  s t Sq Wt St d d | g } t d d | d g } t d d | d g } |  j | | | |  } | r t St Sd  S(   NR   R  R   i    R  (   R   R   t   PowerOfLinearMatchQR   R   RG   Rv  (   R   R   R   R   R   R  Rw  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR"  	  s    c            s   t  |   r& t   f d   |  D  St t t d t d d  t t d d  t d d  t  t d     } t t t d t d d  t d d  t  t d	     } t |     } t | |  p t | |  S(
   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t   QuadraticMatchQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>	  s    i   R  i   R   R   i    c         S   s   t  |  | | g |  S(   N(   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   <lambda>	  t    c         S   s   t  |  | g |  S(   N(   R   (   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  (   R[  R   R   R   R  R   R   R   (   R   R   R  R  R  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR#  	  s    P?c            s  t  |  t  r) t   f d   |  D  St t t d t d d  t d t d d  t t d d  t d d	  t  t d
     } t t t d t d d  t t d d  t d d	  t  t d     } t t t d t d d  t d t d d  t d d	  t  t d     } t t t d t d d  t d d	  t  t d     } t |     } t | |  st | |  st | |  st | |  rt	 St
 Sd  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t   CubicMatchQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>	  s    i   R   i   i   R  R   R   i    c         S   s   t  |  | | | g |  S(   N(   R   (   R   R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  c         S   s   t  |  | | g |  S(   N(   R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  c         S   s   t  |  | | g |  S(   N(   R   (   R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  c         S   s   t  |  | g |  S(   N(   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  (   R   R   R   R   R   R  R   R   R   R   R   (   R   R   R  R  t   pattern3t   pattern4R  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR&  	  s    ePT?<c            s   t  |  t  r) t   f d   |  D  St t t t d t d   t d t d   t d t d   t  t d     } t |     }  t	 |  |  Sd  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t   BinomialMatchQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>	  s    R  i   R   R   i    c         S   s   t  |  | | g |  S(   N(   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  (
   R   R   R   R   R   R  R   RL   R   R   (   R   R   R  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR)  	  s
    Zc            s   t  |  t  r) t   f d   |  D  St t t t d t d   t d t d   t t d t d   t d t d   t d t d   t  t d	    t d
     } t |     }  t	 |  |  Sd  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t   TrinomialMatchQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>	  s    t   ji   R  R  R   R   i    c         S   s   t  |  | | | g |  S(   N(   R   (   R   R   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  c         S   s   t  |  d |  S(   Ni   (   R   (   R+  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  (
   R   R   R   R   R   R  R   RL   R   R   (   R   R   R  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR*  	  s
    c            s   t  |  t  r) t   f d   |  D  St d d   d g } t d d   d g } t d d   d g } t d d   d g } |  j |   | |   |  } | r t |  d k r | | d k r | | d k r t St Sd  S(	   Nc         3   s   |  ] } t  |    Vq d  S(   N(   R  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>
  s    R   R  i    R   R  R  i   (   R   R   R   RG   Rv  R   R   R   (   R   R   R   R   R  R  Rw  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   
  s    #8c            s(  t  |  t  r) t   f d   |  D  St d d   d g } t d d   d g } t d d   d g } t d d   d g } t d d   d g } |  j |   | |   | |   d	 | |  } | r t |  d
 k r d	 | | | | d k r | | d k r t St Sd  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   R  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>
  s    R   R  i    R   R  R  R  i   i   (   R   R   R   RG   Rv  R   R   R   (   R   R   R   R   R  R  R  Rw  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  
  s    7Dc            s   t  |  t  r) t   f d   |  D  St d d   g } t d d   g } t d d   g } t d d   g } t d  } |  j | | |   | |    } | r t |  d k r t St Sd  S(	   Nc         3   s   |  ] } t  |    Vq d  S(   N(   t   QuotientOfLinearsMatchQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>
  s    R   R  R   R   R  Rx  i   (   R   R   R   RG   Rv  R   R   R   (   R   R   R   R   R   R  Rx  Rw  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR,  
  s    'c         C   s|   t  d d | g } t  d d | g } |  j | | |  } | rt t | |  rt t | | t d   rt t St Sd  S(   NR   R  R  i    (   RG   Rv  R   R/  RL   R   R   (   R   R   R   R  Rw  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialTermQ,
  s    /c         C   s:   d } x- |  j  D]" } t | |  r | | } q q W| S(   Ni    (   R   R-  (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialTerms5
  s
    c         C   s:   d } x- |  j  D]" } t | |  s | | } q q W| S(   Ni    (   R   R-  (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NonpolynomialTerms<
  s
    c         C   s   t  |  |  r t t |  |  t d   r t |  |  } t t |  | |  |  } | | t d  t |  | | t d   | } t |  | | | |  } t |  r t | |  r | t d  | | | g St	 Sn t	 Sd  S(   Ni   i   i(
   Rk  R/  R  RL   R  R  R   R   R   R   (   R   R   R  R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PseudoBinomialPartsC
  s    -3c         C   sE   t  |  |  } | rA | d | d | d | d | | d Sd  S(   Ni    i   i   i   i   (   R0  (   R   R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NormalizePseudoBinomialP
  s    c         C   s^   t  |  |  } t |  r t St  | |  } t |  r> t St | d  t | d  k Sd  S(   Ni   (   R0  R;  R   t   Drop(   R   Rg  R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PseudoBinomialPairQU
  s    c         C   s!   t  |  |  } | r t St Sd  S(   N(   R0  R   R   (   R   R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PseudoBinomialQ`
  s    c         C   s   t  |  |  S(   N(   RJ   (   R   t   g(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialGCDg
  s    c         C   s   t  t |  |  |  S(   N(   R  R6  (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolyGCDj
  s    c         C   sc   t  |   rI d } x0 |  j D]% } t | | |  r | | 9} q q W| St |  | |  r_ |  Sd S(   Ni   (   R   R   R  (   R   R   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   AlgebraicFunctionFactorso
  s    c         C   s]   t  |   rF d } x- |  j D]" } t | |  s | | 9} q q W| St |  |  rY d S|  S(   s  
    NonalgebraicFunctionFactors[u,x] returns the product of the factors of u that are not algebraic functions of x.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import NonalgebraicFunctionFactors
    >>> from sympy.abc import  x
    >>> from sympy import sin
    >>> NonalgebraicFunctionFactors(sin(x), x)
    sin(x)
    >>> NonalgebraicFunctionFactors(x, x)
    1

    i   (   R   R   R  (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NonalgebraicFunctionFactors{
  s    c         C   s   t  |  |  r t St |   rK t |  j d |  r t t |   |  Sn t  t |   |  ry t  t |   |  ry t St	 |   r t t
 |   |  r t t |   |  Sn1 t |   d k r t |   r t t |   |  S|  | k p t |  |  S(   Ni    i   (   R  R   R   R   R   t   QuotientOfLinearsPR   R  R  R   R   R  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR:  
  s    *c         C   s8  t  |  |  r7 t |  | d  t |  | d  d d g St |   r t |   d k r(t |   }  t |  |  } | d | d | d | d g Snt |   rt |   } t | |  r(t	 |   }  t |  |  } | d | | d | d | | d | d | d g Snt
 |   rt |   } t | |  rtt t	 |   |  } | | d | | d | d | d g St |   } t |   } t  | |  r(t  | |  r(t | | d  t | | d  t | | d  t | | d  g Sn; |  | k r	d d d d g St |  |  r(|  d d d g S|  d d d g S(   Ni    i   i   i   (   R  R  R  R  R  t   QuotientOfLinearsPartsR   R   R   R   R   (   R   R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR;  
  s6    (#;(Cc         C   sp   t  |   r4 x! |  D] } t | |  s t Sq Wt St |  |  } t |  |  oo t | d  oo t | d  S(   Ni   i   (   R[  t   QuotientOfLinearsQR   R   R;  R:  R   (   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR<  
  s    c         C   s
   t  |   S(   N(   Rz   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Flatten
  s    c         C   s   t  |  d d   d | S(   Nt   keyc         S   s
   |  j    S(   N(   t   sort_key(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  
  R%  t   reverse(   t   sorted(   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   
  s    c         C   sm   t  |   r@ |  j } |  j }  t |   o? |  d k o? t |  St |   rc t d   |  j D  St |   S(   Ni    c         s   s   |  ] } t  |  Vq d  S(   N(   t   AbsurdNumberQ(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>
  s    (   R  Rp   R  R   R   R   R   R   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRB  
  s    		"c         C   sc   t  |   r |  St |   rY t d  } x* |  j D] } t  |  r2 | | 9} q2 q2 W| St |   S(   Ni   (   RB  R   RL   R   R  (   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   AbsurdNumberFactors
  s    c         C   sZ   t  |   r t d  St |   rP d } x! |  j D] } | t |  9} q2 W| St |   S(   Ni   (   RB  RL   R   R   t   NonabsurdNumberFactorsR  (   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRD  
  s    
c         C   s  t  |  rX t t |   s3 t |  t |   oW t t |   pW t |  t |   St  |   r t t |   |  p t t |   |  S| d k o t |   t |  k o t |   t |  d d k  p t |   t |  d d k o t |   d k  Sd  S(   Ni    ii   (   R   R   R   R  R   R  R  (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  
  s
    L(c         C   s"   t  | t  s | g |  S| |  S(   N(   R   R   (   t   l1t   l2(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Prepend
  s    c         C   s   t  |  t  rz t  | t  r? |  | d d  |  | d }  n7 | d k rX |  | }  n | d k  rr |  |  }  n |  S|  S|  j g  t t |  j  |  D] } | ^ q   S(   Ni    i   (   R   R   R   R2  R   (   R|  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR2    s    !c         C   s   t  |   d k  r |  S|  d d |  d d k rp t t t |  d  |  d d |  d d |  d d g   St t t |    t |    S(   Ni   i    i   (   RZ  t   CombineExponentsRG  R2  R   R   (   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRH    s
    >c         C   sQ   t  |  t t f  r1 t t |  d | j    St t |  d | j    Sd  S(   Nt   limit(   R   R   RO   RA  RZ   t   itemsR[   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FactorInteger  s    c         C   s]   t  |   r t |   St |   rJ t |  j  } | d | d |  j g St |  j   f  S(   Ni    i   (   R   RK  R  R  Rp   R   t   as_base_exp(   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FactorAbsurdNumber  s    
c          G   s\  t  |   d k r |  d |  d |  d } } } t | | t | j d | d  t t |   |  t | j d | d  |  St  |   d k rX|  d |  d |  d |  d f \ } } } } t |  r | | k r | S| St |  t |  k r t | j d | j d  r | Sg  | j D] } t | | | |  ^ q*} | j |   Sd S(   s  
    SubstForInverseFunction(u, v, w, x) returns u with subexpressions equal to v replaced by x and x replaced by w.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import SubstForInverseFunction
    >>> from sympy.abc import  x, a, b
    >>> SubstForInverseFunction(a, a, b, x)
    a
    >>> SubstForInverseFunction(x**a, x**a, b, x)
    x
    >>> SubstForInverseFunction(a*x**a, a, b, x)
    a*b**a

    i   i    i   i   i   N(	   R   t   SubstForInverseFunctionR  R   t   InverseFunctionR<  R;  R   R   (   R   R   Rg  R   Ru  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRN  (  s     T.6+c         C   s   t  |   r  |  | k r | S|  St |   rQ t |  j |  rQ | | |  j Sn  g  |  j D] } t | | | | |  ^ q[ } |  j |   S(   N(   R;  R9  R   R  Rp   R   t   SubstForFractionalPowerR   (   R   Rg  R  Ru  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRP  G  s    .c   	      C   s#  t  |  d t |  } t |  s1 t | d  r5 t S| d } | d } t | |  } | d | d | d | d f \ } } } } t |  r t St | | d t |  | | | | | | | | | | |  | | | | d  } t | |  | | t | |  | | | | g S(   Ni   i    i   i   (	   t"   FractionalPowerOfQuotientOfLinearsR   R;  R;  R   R   RP  R  R  (	   R   R   R|  R  R  R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt*   SubstForFractionalPowerOfQuotientOfLinearsT  s    

.[c         C   s   t  |   s t |  |  r% | | g St |   r5 t St |   r t |  j |  r t t |  j |   r t	 |  s t
 |  j |  r t t |  j  |  |  j g Sn  | | g } x> |  j D]3 } t | | d | d |  } t  |  r t Sq W| S(   Ni    i   (   R;  R   R`  R   R9  R<  R  R   R  R   R   t   LCMR  Rp   R   RQ  (   R   R  Rg  R   R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRQ  d  s    
I"c            s[   t  |   s t |    r t St |   r; t |      St    f d   |  j D  S(   Nc         3   s!   |  ] } t  |     Vq d  S(   N(   t   SubstForFractionalPowerQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>|  s    (   R;  R   R   R9  t   SubstForFractionalPowerAuxQR   R   (   R   Rg  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRT  u  s
    c            sV   t  |   r t St |   r6 t |  j    r6 t Sn  t    f d   |  j D  S(   Nc         3   s!   |  ] } t  |     Vq d  S(   N(   RU  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R   R9  R   R  R   R   R   (   R   Rg  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRU  ~  s    c   
         s2  t  |   r t St |   r t d d d g } t d d d g } t d d d g } |  j j | | | t d       r | | | g } t |  t    k r t   f d   | D  \ } } } t	 |  r | | t d  Sq q n  x3 |  j
 D]( } t |  }	 t t |	   r|	 SqWt S(   NR   R  i    R   R  i   c         3   s   |  ] }   | Vq d  S(   N(    (   R   R   (   Rv  (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R   R9  RG   R  Rv  RL   R   R  R   R   t   FractionalPowerOfSquareQR   R   (
   R   R  R  R  R   R   R   R  R   R  (    (   Rv  sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRV    s$    $%c         C   s   t  |   r t St |   ra t |  j |  ra t |  j | k  o] t |  d t |  k  Sn  x' |  j D] } t | | |  rk t	 Sqk Wt S(   Ni   (
   R;  R   R9  R   R  R   RW  R   t   FractionalPowerSubexpressionQR   (   R   Rg  Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRW    s    2c         C   s
   |  |   S(   N(    (   R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Apply  s    c         C   s   t  |   r2 t |  j  r t |  j  |  j Sn t |   rj g  |  j D] } t |  ^ qH } t |   St |   r t	 g  |  j D] } t
 |  ^ q  } t g  |  j D] } | | ^ q   } | | S|  S(   N(   R  R   Rp   t   FactorNumericGcdR  R   R   RN   R   R  R  RT   (   R   R   R   R5  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRY    s    "
(&c         C   sp  |  | k rH t  | t d   oG | d d k pG t  |  oG | d k St |  r |  | j k r t  | | j  o | | j d k p t  |  o | d k St | j  o t | j  o t t |  p t | | j   o t |  | | j | j  St	 |  r6t |  | t
 |   p5t |  | t |   St |  oot |  | t
 |   oot |  | t |   S(   Ni   i    (   R   RL   R  R  Rp   R   R   R   t   MergeableFactorQR   R   R   (   t   basRp  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRZ    s    <<].c         C   s   |  | k r |  | d St  |  rc |  | j k rB |  | | j St |  | | j | j | j  St |  r t |  | t |   r t |  | t |   t |  St |  t |  | t |   St |  | t |   t |  | t |   S(   Ni   (   R  R  Rp   t   MergeFactorR   RZ  R   R   (   R[  Rp  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR\    s    !  c         C   s  t  |   r. t t |   t t |   |   St |   r t |  j |  j |  rh t |  j |  j |  St	 |  j  r |  j d k  r t |  j t
 d  |  r t |  j |  j d t |  j t
 d  |   S|  | St |  t
 d  |  r	t |  t
 d  |  S|  | S(   Nii   (   R   t   MergeFactorsR   R   R  RZ  R  Rp   R\  R   RL   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR]    s    ":1c         C   s   t  |   t |   k S(   N(   t   ActivateTrigt   TrigSimplify(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TrigSimplifyQ  s    c         C   s   t  t |    S(   N(   R^  t   TrigSimplifyRecur(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR_    s    c         C   s?   t  |   r |  St |  j g  |  j D] } t |  ^ q#    S(   N(   R;  t   TrigSimplifyAuxR   R   Ra  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRa    s    c         C   s0   |  | k r d S|  j    | j    k r, d Sd S(   Ni    ii   (   R?  (   t   expr1t   expr2(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Order  s
    c         C   s=   |  d k r  | d k r d Sd S| d k r0 d St  |  |  S(   Ni   i    i(   Re  (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FactorOrder  s    c         C   sS   | d  k rF |  } | d } x# t |  D] } t | |  } q) W| St |  |  S(   Ni    (   R   R   t   SmallestR\   (   t   num1t   num2R|  t   numR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRg     s    
c         C   s   |  t  |   k S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  	  s    c         C   s   t  |   r) t  |  r% t |  |  S|  St  |  r9 | St |  |  } t  |  ri | d k re | S|  St |  | g  r |  S| S(   Ni    (   R   R\   R   R  (   t   deg1t   deg2Rp  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   MinimumDegree  s    c         C   sz   t  |   r t d  St |   r, t |   St |   r< |  St |   rv d } x! |  j D] } | t |  9} qX W| Sd S(   Ni   (   R   RL   R   RA   R   R   R   t   PositiveFactors(   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRn    s    

c         C   s
   t  |   S(   N(   R]   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Sign-  s    c         C   s   t  |   r |  St |   r& t |   St |   r< t d  St |   r| t d  } x! |  j D] } | t |  9} q^ W| S|  S(   Ni   (   R   R   Ro  R   RL   R   R   t   NonpositiveFactors(   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRp  0  s    

c         C   s   |  | k r t  St |   r& |  | k St |   r t |  rg |  j | j k rg t |  j | j  Sn  t |  j  o t |  j | |  St |   s t |   r x- |  j	 D]" } t
 t | | |   r t Sq Wt  St S(   N(   R   R;  R  R  R   Rp   t   PolynomialInAuxQR   R   R   R   R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRq  ?  s    
"c         C   s"   t  |  t t | |  |  |  S(   s  
    If u is a polynomial in v(x), PolynomialInQ(u, v, x) returns True, else it returns False.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import PolynomialInQ
    >>> from sympy.abc import  x
    >>> from sympy import log, S
    >>> PolynomialInQ(S(1), log(x), x)
    True
    >>> PolynomialInQ(log(x), log(x), x)
    True
    >>> PolynomialInQ(1 + log(x)**2, log(x), x)
    True

    (   Rq  R  R  (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialInQP  s    c         C   s   |  | k r t  d  St |   r, t  d  St |   r t |  rg |  j | j k rg |  j | j Sn  |  j t |  j | |  St |   r t g  |  j D] } t | | |  ^ q   St	 g  |  j D] } t | | |  ^ q   S(   Ni   i    (
   RL   R;  R  R  Rp   t   ExponentInAuxR   RT   R   RY   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRs  d  s    

,c         C   s"   t  |  t t | |  |  |  S(   N(   Rs  R  R  (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   ExponentInr  s    c         C   s   |  | k r | St  |   r  |  St |   ry t |  r_ |  j | j k r_ | |  j | j Sn  t |  j | |  |  j S|  j g  |  j D] } t | | |  ^ q   S(   N(   R;  R  R  Rp   t   PolynomialInSubstAuxR   R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRu  u  s    c         C   sR   t  | |  } t t |  t | |  |  i | t | |  t | |  | 6 S(   N(   R  R  Ru  R  R  R  (   R   Rg  R   Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolynomialInSubst  s    c         C   s8   t  |  r0 t g  | j D] } |  | ^ q   S|  | S(   N(   R   RT   R   (   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Distrib  s    $c         C   so   t  |   r |  | St |   r2 |  j |  j | St |   rg t g  |  j D] } t | |  ^ qK   S|  | S(   N(   R;  R  R  Rp   R   RN   R   t   DistributeDegree(   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRx    s    )c          G   s   t  |   d k r* t |  d d |  d  S|  \ } } } t | |  rL | S| | k rb t d  St |  r | j | k r t | j  r | d k r | j St	 | | j  Sn  | } x# | j
 D] } t | | |  } q W| S(   s#  
    FunctionOfPower[u,x] returns the gcd of the integer degrees of x in u.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import FunctionOfPower
    >>> from sympy.abc import  x
    >>> FunctionOfPower(x, x)
    1
    >>> FunctionOfPower(x**3, x)
    3

    i   i    i   N(   R   t   FunctionOfPowerR   R   RL   R  R  R   Rp   R  R   (   R   R   R  R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRy    s     
c         C   sX   t  |   r@ t g  |  j D]  } t |  t |  | ^ q   St |   t |   | S(   sp  
    DivideDegreesOfFactors[u,n] returns the product of the base of the factors of u raised to the degree of the factors divided by n.

    Examples
    ========

    >>> from sympy import S
    >>> from sympy.integrals.rubi.utility_function import DivideDegreesOfFactors
    >>> from sympy.abc import a, b
    >>> DivideDegreesOfFactors(a**b, S(3))
    a**(b/3)

    (   R   RN   R   R  R  (   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   DivideDegreesOfFactors  s    4c         C   s  t  |   r> |  | k r. t d  t d  g St d  |  g St |   r t |  j  r t |  j |  } | d |  j | d |  j g S|  j | k r t |  j |  r |  j t d  g St d  |  g St |   r't t	 |   |  } t t
 |   |  } | d | d | d | d g St |   rg  |  j D] } t | |  ^ q=} | d d } x' t
 |  D] } t | | d  } qsWt |  st |  r| d k  rt d  |  g S| t g  | D]  } | | d | | d ^ q  g St d  |  g S(   Ni   i    (   R;  RL   R  R   Rp   t   MonomialFactorR  R   R   R   R   R   R   Rm  R   R   RT   (   R   R   R|  R  R  R   Rp  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR{    s0     !"%$7c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FullSimplify  s    c         C   s  t  |  |  r |  St |  |  r t |  | d  } | | k rO t d  } n
 | | } t |  | t d   | | | | St |   r t  |  j |  r t t t t	 |  j  |  j
 | | |   Sn  t |  |  } t |   rt | d  rt t | d   rVt | d  d k  rVt t | d | d  | | | |  | d St t | d | d  | | | |  | d S|  j g  |  j D] } t | | | |  ^ q  S(   Ni   i    (   R   R  R  RL   R  R  RD   R|  t   FunctionOfLinearSubstR=  Rp   R{  R   R   R   R  Rz  R   R   (   R   R   R   R   R  R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR}    s"    
&0,20c          G   sI  t  |   d k r |  \ } } t | t t | t  } t |  sr t | d  sr | d d k rv | d d k rv t St | | d | d |  | d | d g S|  \ } } } } } t | |  r | | g St |  r t St | |  rt |  rt	 | | d  t	 | | d  g St
 | t	 | | d  g  } t t	 | | d   rmt |  rmd | d g St | t	 | | d  | t	 | | d   r| | d | d g Sd d g St |  rt | j |  rt t | j  | j | | | t  Sn  t | |  } t |  rt | d  rt rt | d  r| d d k rt | d |  rt t | d   rt | d  d k  rt t | d | d  | | | | t  St t | d | d  | | | | t  St S| | g } xG | j D]< } t | | d | d | t |   } t |  rt SqW| S(   Ni   i    i   i(   R   t   FunctionOfLinearR   R;  R   R}  R   R`  R  R  t   CommonFactorsR   R   R  R  R=  Rp   R{  R   R   R   R   R  Rz  R   R   (   R   R   R   R|  R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR~    sH    <,
"$0
)9,,+&c         C   s3   t  t |  |   } | t  |   k r+ |  S| Sd  S(   N(   t   NormalizeLeadTermSignst   NormalizeIntegrandAux(   R   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NormalizeIntegrand$  s    c         C   s   t  |   r= d } x$ |  j D] } | t | |  7} q W| St t |  |   r d } x- t |  |  j D] } | t | |  9} qk W| St t |  |  |  Sd  S(   Ni    i   (   R   R   R  R   R  t   NormalizeIntegrandFactor(   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  +  s    c   	         s  t  |   r t |  j    r t |  j    } |  j } t |  r t |  r t   f d   | j D  r t	 |    } d } x) | j D] } | t
 |   |  7} q W  | | | | S| | Sq | | Sq n  t  |   rt |  j    r|  j t |  j    Sn  t |     } t |  rt   f d   | j D  rt	 |    } d } x# | j D] } | |   | 7} qoW  | | S| Sn | Sd  S(   Nc         3   s   |  ] } t  |    Vq d  S(   N(   R  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>?  s    i    c         3   s   |  ] } t  |    Vq d  S(   N(   R  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>N  s    (   R  R   Rp   t   NormalizeIntegrandFactorBaseR  R   R   R   R   R   R   (	   R   R   R[  Rp  t   miR  R   R   R+  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  9  s4    	c   	      C   s  t  d d | g } t  d  } |  j | | |  } | r t |  r d } x, | j D]! } | t | | | |  7} qZ W| St |  |  r t |  |  r |  St |  |  SnEt |  |  r t	 |  |  r |  St |  |  Snt
 |   r$d } x$ |  j D] } | t | |  9} qW| St |  |  rUt |  |  d k rUt |  |  St |   rt  d  } t  d d | g } t |   } t |  s| j | | |  rt |  st |  t |   d k rt |  |  St | |  Sn |  Sd  S(	   NR  R  R   i    i   i   Ru  i   (   RG   Rv  R   R   R  R  R)  R  R  R*  R   R  Rk  Rn  R  RW  R  (	   R   R   R  R   Rv  R   R   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  Y  s>    $Kc         C   s   t  t |    S(   N(   R  R  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NormalizeTogether~  s    c         C   s   t  |   rk d } xR |  j D]G } t |  } | d d k rO | | d 9} q | t | d  9} q W| St |   } | d d k r | d St | d  Sd  S(   Ni   i    (   R   R   t   SignOfFactort   AbsorbMinusSign(   R   R}  R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         G   s   t  d d | g } t  d  } t  d  } |  j | | |  } | r t |  d k r t | |  r t | |  r | | | | | | Sq n  |  S(   NR  R  R   Rg  i   (   RG   Rv  R   R   R  (   R   R   R  R   Rg  Rv  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s     c         C   s   t  |   r |  St |   rb d } x! |  j D] } | t |  9} q, Wt |  d t |  d St |   r d } x! |  j D] } | t |  7} q~ W| S|  Sd  S(   Ni   i    (   R;  R   R   t   NormalizeSumFactorsR  R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s  t  |   r |  d k  s< t |   rG t t |    d k  rG d |  g St |   r t |  j  r t t |  j   d k  r d |  j |  j |  j g Sn^ t |   r d } d } x9 |  j D]. } | t	 |  d 9} | t	 |  d 9} q W| | g Sd |  g S(   Ni    ii   (
   R   R   R  R   R7  R  Rp   R   R   R  (   R   R   R{  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    <*
c         C   sc   t  |   } t |  rV t | j |  rV t | j |  rV t | j |  | j Sn  t | |  S(   N(   Rt  R  R  R  R   Rp   R  (   R   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NormalizePowerOfLinear  s
    $c         C   s]   t  t t |   |   } t |  d d t |   k  r? | S| t  |   k rU | S|  Sd  S(   Ni   i   (   R  R  R   RW  (   R   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SimplifyIntegrand  s     c         C   sN   t  |   } t |  } t |  t |  k  r= t | |  St | |  Sd  S(   N(   R   R  RW  R  (   R   R   Rg  Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s
    c         C   s"   t  t t  |     } t |  S(   N(   R  R   t   FixSimplify(   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  |   } t |  } t |  t |  k  r9 | } n  t t | t |  k   r t |  | t |   r t | | t |   } n t	 |  } t
 |  S(   N(   R   RI   RW  R   R   RV  RW  R2  t   SubstForExpnRY  R  (   R   Rg  Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SmartSimplify  s    	6c         C   sX   |  | k r | St  |   r  |  Sd } x' |  j D] } | t | | |  7} q0 W| Sd  S(   Ni    (   R;  R   R  (   R   Rg  Ru  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c   	      G   s  t  |  d k r| d } d } t t |   |  rv x8 t |  | t  D]$ } | t |  | |  | | 7} qJ W| St |  |  r t |  |  } | | d | d | | d 7} | St |  |  rt	 |  |  } | | d | d | | d | d | d | d 7} | St
 |  |  rft |  |  } | | d | | d | d | | d 7} | St |  |  rt |  |  } | | d | | d | d | | d | d | d | d | d 7} | St |   Sn | d } | d } t | |  } t | |  } t |  rc|  t | |  } x( | j D] } | t |  | |  7} q>W| S|  t | |  t |  | |  Sd  S(   Ni   i    i   i   i   (   R   R~  RL   Rn  R   R  R  R  R  R  R  R  R  R  R2  R  R  R   R  R   R  (	   R   R   R   R}  R   Rg  Ru  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    sD    
"":.N

c         C   sr   t  |   ra d } g  } x |  j D] } | | g 7} q" Wx! t | |  D] } | | 7} qI W| St |  |  Sd  S(   Ni    (   R   R   t
   UnifyTermsR  (   R   R   R}  R|  R   R+  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s9   |  g  k r |  St  t |   t t |   |  |  Sd  S(   N(   t	   UnifyTermR   R  R   (   R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  #  s    c         C   s   | g  k r |  g St  t |  |   } t | |  rV t t |  d | |  g  St t |  t |  |  t |  g  Sd  S(   Ni   (   R   R   R   RG  R   R  (   t   termR|  R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  )  s    c         C   s   t  S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR`  2  s    c          G   s+  t  |   d k r. |  \ } } t | d  |  S|  \ } } } t | |  rP | S| | k r` t St | |  r t t | |  d  } | d d k r t S| d  k r | St | d | d | d | d  r | St St	 |  r t S| } x3 | j
 D]( } t | | |  } t |  r t Sq W| S(   Ni   i   i    (   R   t   FunctionOfInverseLinearR   R   R   R<  R2  R;  R   R`  R   R;  (   R   R   R   R|  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  5  s2    (c         C   s   t  |   r |  | k St |   r& t St |   r_ t |  j d |  r_ t |   p^ t |   Sx- |  j D]" } t t	 | | |   ri t Sqi Wt
 S(   Ni    (   R;  R`  R   RM  R   R   RN  RS  R   t   PureFunctionOfSinhQR   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  S  s    
#c         C   s   t  |   r |  | k St |   r& t St |   r_ t |  j d |  r_ t |   p^ t |   Sx- |  j D]" } t t	 | | |   ri t Sqi Wt
 S(   Ni    (   R;  R`  R   RM  R   R   RP  RQ  R   t   PureFunctionOfTanhQR   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  a  s    
#c         C   s   t  |   r |  | k St |   r& t St |   r_ t |  j d |  r_ t |   p^ t |   Sx- |  j D]" } t t	 | | |   ri t Sqi Wt
 S(   Ni    (   R;  R`  R   RM  R   R   RO  RR  R   t   PureFunctionOfCoshQR   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  o  s    
#c         C   s   t  t |  |   S(   N(   R   R   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntegerQuotientQ}  s    c         C   s   t  t |  |   S(   N(   R  R   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   OddQuotientQ  s    c         C   s   t  t |  |   S(   N(   R  R   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   EvenQuotientQ  s    c         C   s   | d k r t  St t |   |  k s@ t t |   | k r t t |   r t t |  j d |  r | s t t |  j d |  r t | j d t |  g St	 |  | t |  | |  } t
 |  r t  S| d t |  | d g S(   Ni   i    (   R   R<  R  R  R  R  R   R   R  t   FindTrigFactorR;  R  (   t   func1t   func2R   Rg  R  R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c            s  t  |   r |   k St |   r& t St |   r t |  j d    r t |  j d    rt t |   ps t |   St	 |   p t
 |   St |   r t |  j  rt |  j j d    rt |  j  r t St |  j     Snt |   rt	 |  j d  rvt |  j d  rvt |  j d j d   d  rvt |  j d j d   d  rvt t |  d      St t t |    t  } t |  rt | d    rt t    | d     St t t |    t  } t |  r t | d    r t t    | d     St t t |    t  } t |  rbt t    | d     St    f d   |  j D  St    f d   |  j D  S(   Ni    i   i   c         3   s!   |  ] } t  |     Vq d  S(   N(   t   FunctionOfSinhQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   RM  R  R   R  RN  RS  RO  RR  R7  R  R  Rp   R   R  R   R   R2  R  R&  R*  R[  R  R(  R)  R'  R+  R   (   R   Rg  R   R|  (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s6    
"(j c            s  t  |   r |   k St |   r& t St |   r^ t |  j d    r^ t |   p] t |   St |   r t |  j	  rkt |  j	 j d    rkt
 |  j  r t St |  j	     Sn t |   rkt t t |    t  } t |  r	t t    | d     St t t |    t  } t |  rKt t    | d     St    f d   |  j D  St    f d   |  j D  S(   Ni    i   c         3   s!   |  ] } t  |     Vq d  S(   N(   t   FunctionOfCoshQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   RM  R  R   RO  RR  R7  R  R  Rp   R   R  R   R  R&  R*  R[  R'  R+  R   (   R   Rg  R   R|  (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s(    
"( c            s]  t  |   s0 t |   s0 t |   s0 t |   rD t |  j d    St |   rr t |  j  oq t	 |  j
     St |   r-t t t |    d   r t	 t |        Sg  } x9 |  j D]. } t t |      r | j |  q q W| g  k rt St |  d k o,t	 | d     St |   rYt    f d   |  j D  St S(   Ni    i   c         3   s!   |  ] } t  |     Vq d  S(   N(   t   OddHyperbolicPowerQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   RN  RO  RR  RS  R  R   R  R  Rp   R  R  R   R   Rh  R  R  t   FunctionOfTanhQR  R   RZ  R   R   R   (   R   Rg  R   R|  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s"    0"& c            s  t  |   r |   k St |   r& t St |   rt t |  j d    rt t |   ps t |   ps t |  j d    St	 |   rt
 |  j  r t |  j  r t |  j j d    r t St
 |  j d  rt |  j d  rt t |  j d d      Sn  t |   rg  } x9 |  j D]. } t t |      r!| j |  q!q!W| g  k rct St |  d k ot | d     ot | d     St    f d   |  j D  S(   Ni    i   i   c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   RM  R  R   RP  RQ  R  R  R  Rp   R  R   R   R  R2  R   R   R  RZ  R  R   (   R   Rg  R   R|  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s(    
",7&$<c            s  t  |   r t d  St |   r, t d  St |   r t |  j d    r t |   r{ t |  j d    r{ t d  St |   r t |  j d    r t d  St d  St	 |   r9t
 |  j  r9t |  j  r9t |  j j d    r9t |  j  s"t |  j  s"t |  j  r,t d  St d  Sn  t |   rt    f d   |  j D  rt g  |  j D] } t |     ^ qt  St d  St g  |  j D] } t |     ^ q  S(   sF  
    u is a function of the form f(tanh(v), coth(v)) where f is independent of x.
    FunctionOfTanhWeight(u, v, x) returns a nonnegative number if u is best considered a function of tanh(v), else it returns a negative number.

    Examples
    ========

    >>> from sympy import sinh, log, tanh
    >>> from sympy.abc import x
    >>> from sympy.integrals.rubi.utility_function import FunctionOfTanhWeight
    >>> FunctionOfTanhWeight(x, log(x), x)
    0
    >>> FunctionOfTanhWeight(sinh(log(x)), log(x), x)
    0
    >>> FunctionOfTanhWeight(tanh(log(x)), log(x), x)
    1

    i    i   ic         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>$  s    (   R;  RL   R`  RM  R  R   RP  R   RQ  R  R  Rp   R  RO  RR  R   R   RT   t   FunctionOfTanhWeight(   R   Rg  R   R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s(    

"#
#

7-
",
c            sl   t  |   r |   k St |   r& t St |   rL t |  j d    rL t St    f d   |  j D  S(   Ni    c         3   s!   |  ] } t  |     Vq d  S(   N(   t   FunctionOfHyperbolicQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>2  s    (   R;  R`  R   RM  R  R   R   R   (   R   Rg  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  )  s    
"c         C   s   t  |   rH |  j } |  j } t |  rz | d k  rz t | |  Sn2 t |   rz t g  |  j D] } t |  ^ qa   St	 |   S(   Ni    (
   R  Rp   R  R   t   SmartDenominatorR   RN   R   t   SmartNumeratorR  (   R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  4  s    		&c         C   s   t  |   rH |  j } |  j } t |  rz | d k  rz t | |  Sn2 t |   rz t g  |  j D] } t |  ^ qa   St	 |   S(   Ni    (
   R  R  Rp   R   R  R   RN   R   R  R  (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  >  s    		&c         C   s   |  S(   N(    (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR^  H  s    c          G   s   t  |   d k r1 |  \ } } t t | |   S|  \ } } } t | |  } t |  } t |  r | j g  | j D] } | | ^ qw   S| | S(   Ni   (   R   R^  R  t
   ExpandTrigR   R   R   (   R   R   R   Rg  Ru  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  K  s    'c         C   s
   t  |   S(   N(   Rb   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   TrigExpandV  s    c      	   C   s
  t  |   r |  St |   r2t |  j d |  r2|  j d | k s\ t |  j d |  r t |   rl | St |   r| | St |   r | | St |   r | | St	 |   r d | Sd | St
 t t |   t |  j d | |    i | | 6 } | j g  | j D] } t | | | | |  ^ q  St |   rt |  j d  rt |  j d  rt |  j d j d | d  rt |  j d j d | d  rt |  d t t |  d  | | | |  S|  j g  |  j D] } t | | | | |  ^ q  S(   Ni    i   i   (   R;  R@  R  R   R   RA  RB  RC  RD  RE  R  R  R<  R   R   t   SubstForTrigR   R   R2  (   R   t   sin_t   cos_Rg  R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  p  s(    "*=5v-c      	   C   s
  t  |   r |  St |   r2t |  j d |  r2|  j d | k s\ t |  j d |  r t |   rl | St |   r| | St |   r | | St |   r | | St	 |   r d | Sd | St
 t t |   t |  j d |  |   i | | 6 } | j g  | j D] } t | | | | |  ^ q  St |   rt |  j d  rt |  j d  rt |  j d j d | d  rt |  j d j d | d  rt |  d t t |  d  | | | |  S|  j g  |  j D] } t | | | | |  ^ q  S(   Ni    i   i   (   R;  RM  R  R   R   RN  RO  RP  RQ  RR  R  R  R<  R   R   t   SubstForHyperbolicR   R   R2  (   R   t   sinh_t   cosh_Rg  R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s(    "*=5v-c         C   sX   t  |  t  oW t  |  t  oW t  |  t  oW t  |  t  oW t  |  t  oW t  |  t  S(   N(   R   R   R   R   R	   R   R
   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   InertTrigFreeQ  s    c         C   s   t  |  |  S(   N(   Rf   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRS    s    c      	   C   s   t  |  t d  t |  } t |  s7 t | d  r; t S| d } t | d | d  } t | d | d  } t | | d t |  | d | | | | | | |   } t | |  | | d t	 | |  | g S(   Ni   i    (
   t   FractionalPowerOfLinearRL   R   R;  R   R  R   RP  R  R  (   R   R   R|  R  R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SubstForFractionalPowerOfLinear  s    
?c         C   s   t  |   s t |  |  r% | | g St |   r5 t St |   r t |  j |  r t |  sr t |  j |  r t	 t
 |  j  |  |  j g Sn  | | g } x> |  j D]3 } t | | d | d |  } t  |  r t Sq W| S(   Ni    i   (   R;  R   R`  R   R9  R  R  R   R   RS  R  Rp   R   R  (   R   R  Rg  R   R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
1"c         C   s   t  |   s' t |   s' t |  |  r+ t St |   rQ t |  j d |  rQ |  Sx6 |  j D]+ } t | |  } t t  |   r[ | Sq[ Wt S(   Ni    (	   R;  R`  R   R   R_  R  R   t   InverseFunctionOfLinearR   (   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    '"c             s   t  |   d k rN |  d   t t t t t t g } t   f d   | D  St  |   d k r |  \   }   | k r t    St	   |  p t	 |    S|  \   } } t |    o t | |  Sd  S(   Ni   i    c         3   s!   |  ] } t     | k Vq d  S(   N(   R<  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    i   (
   R   R   R   R   R	   R   R
   R   t
   InertTrigQt   InertReciprocalQ(   R   R   R5  R{  (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    

c         C   sX   |  j  t k r | j  t k pW |  j  t k r< | j  t k pW |  j  t k oW | j  t k S(   N(   R   R   R
   R   R   R   R	   (   R   R5  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  t |  |  |  S(   N(   t   FixInertTrigFunctiont   DeactivateTrigAux(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   DeactivateTrig  s    c         C   s   |  S(   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s  t  |   r |  St |   r t |  j d |  r t |  j d |  } t |   r^ t |  St |   rt t |  St	 |   r t
 |   St |   r t |  St |   r t |  St |  St |   rt |  j d |  rt t |  j d |  } t |   rt t |  St |   r-t |  St |   rHt t
 |  St |   ret t |  n t |   r{t |  St t |  S|  j g  |  j D] } t | |  ^ q  S(   Ni    (   R;  R@  R  R   R  RA  R   RB  R   RC  R   RD  R	   RE  R   R
   RM  RM   RN  RO  RP  RQ  RR  R   R  (   R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s:    "





"

c         C   s  t  d d | g } t  d d | g } t  d d | g } t  d d | g } t  d d | g } t  d d | g } t  d d | g }	 t  d	  }
 | | | | |
  | |	 } |  j |  } | r| | | |	 | |
 g } t |  t |  k rt Sn  | | | | |
  | | | | |
  | |	 } |  j |  } | r| | | | |	 | | |
 g } t |  t |  k rt Sn  t S(
   NRq  R  R  R   R   R  R   R  Ru  (   RG   Rv  R   R   R   (   R   R   R   R  t   q_R  R  R  R  R  t   w_R  Rv  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PowerOfInertTrigSumQ
  s*     6c    
   
   G   s  t  |   d k r= |  \ } } } t | |  o< t | |  S|  \ } } t | |  r\ t St d d | g } t d d | g } t d  } | j t | | |   } | r t  |  d k r t | | |  r t Sq n  y t |  } t | j d  }	 | j d j d } t | |  rt	 t
 t g t
 t g t t g t t g t t g t t g t t g t t g g | |	 g  rt Sn  Wn n Xt S(   Ni   R  R  R   Rg  i    (   R   t   PiecewiseLinearQR  R   RG   Rv  R=  t   typeR   R?  R   R   R   R   R"   R   R	   R%   R   (
   R   R   Rg  R   R  R  R  Rv  R   t   G(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  #  s0    
]c         C   s  | d k r t  St d d | g } t d d | d g } t d  } t d d | g } t d d | g } t d	 d | d g } t d
 d | d g }	 | j | | | |  }
 |
 r |
 | } t | j d |  r t |  | j  r t  Sn  | j | | | | | | |  }
 |
 rc|
 | } t | j d |  rct |  | j  rct  Sn  | j | |	 | d  }
 |
 r|
 | } t | j d |  rt |  | j  rt  Sn  | j | | | |	 | d  }
 |
 r|
 | } t | j d |  rt |  | j  rt  Sn  | j | | | | | |	 | d  }
 |
 r|
 | } t | j d |  rt |  | j  rt  Sn  | j | | | | | | | |	 | d  }
 |
 r|
 | } t | j d |  rt |  | j  rt  Sn  t S(   Ni   R   R  R   i    R   R  t   At   Bt   Ci   (	   R   RG   RH   Rv  R  R   R?  R   R   (   R|  R   R   R  R  t   func_R  t   A_t   B_t   C_Rv  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   KnownTrigIntegrandQA  sP    
('
(
(#
(+
(3
(c         C   s   t  t t g |  |  S(   N(   R  R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   KnownSineIntegrandQr  s    c         C   s   t  t g |  |  S(   N(   R  R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   KnownTangentIntegrandQu  s    c         C   s   t  t g |  |  S(   N(   R  R	   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   KnownCotangentIntegrandQx  s    c         C   s   t  t t g |  |  S(   N(   R  R   R
   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   KnownSecantIntegrandQ{  s    c   	      C   s	  t  d d | g } t  d d | g } t  d d | g } t  d  } |  j } y t t t t t g |  r |  j d j | | | |  } | r t	 |  d k r | | } t t
 t t t g | j  r t | j d |  r t Sq q q n  Wn n Xt S(   NR   R  R   R  R  i    i   (   RG   R   R?  R"   R%   R   R   R   Rv  R   R   R	   R   R   R  R   R   (	   R   R   R  R  R  t   G_R   Rv  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TryPureTanSubst~  s"    	"
c         C   s	  t  |   r t St t |  |   s) t St d d | g } t d d | g } t d d | g } t t d  \ } } } } }	 }
 } |  j | | | |  } | rt |  d k rg  | | | | g D] } | | ^ q \ } } } } t |  rt	 |  rt Sqn  |  j d | |	 |
 |  } | rt |  d k rg  | |	 |
 | g D] } | | ^ q`\ } } } } t
 |  rt |  r| d k rt Sqn  |  j |
 |  } | r:t |  d k r:| |
 | | } } t
 |  r7t
 |  r7t | j d	 | | j d	 |  r4t Sq7q:n  |  j | | | | |  } | rt |  d
 k rg  | | | | | g D] } | | ^ q\ } } } } } t | d k o| t |  k p| t |  k  rt Sqn  |  t |  |  k rt St S(   NR   R  R  Rq  t   rstnbfgi   i   i   i    i   (   R>  R   R   R~  RG   t   mapRv  R   R   R   RV  R   R   R   R)  R*  R  R   (   R   R   R  R  R  t   r_t   s_t   t_R  R  R  t   g_Rv  R   R  R  R}  R  R   R   R   R5  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TryTanhSubst  sH    $5
5$
%;6
c         C   s   |  j  } t d d | g } t d  } | t k r: t S|  j d j | |  } | r t |  d k r | | j  } t t t	 g |  r t t
 t g |  r t Sn  |  t |  |  k r t St S(   NR   R  R  i    i   (   R   RG   R   R   R   Rv  R   R?  R   R   R   R   R  R   (   R   R   R   R  R  Rv  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TryPureTanhSubst  s    	*c          G   sS   t  |   } t |  d k r( t |  St t t |   t t t |      S(   Ni   (   R   RZ  R   t   AbsurdNumberGCDListRM  t   AbsurdNumberGCDR   (   t   seqR|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
c         C   s  |  g  k r> t  g  | D]! } | d t | d d  ^ q   S| g  k r| t  g  |  D]! } | d t | d d  ^ qT   S|  d d | d d k r|  d d | d d k r |  d d |  d d t t |   t |   S|  d d | d d t t |   t |   S|  d d | d d k  r|  d d d k  rq|  d d |  d d t t |   |  St t |   |  S| d d d k  r| d d | d d t |  t |   St |  t |   S(   Ni    i   (   RN   R\   R  R   (   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    2211++c   	      C   s~   t  t | j i | | | 6  |  j i | | 6 } t |  rr d } x | j D] } | |  | 7} qV W| S|  | Sd  S(   Ni    (   R2  R  R   R   R   (	   R   R   Rg  R  R  R   Ru  R}  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ExpandTrigExpand  s    :c          G   s   t  |   d k r |  d } |  d } |  d } t | |  } t |  rw d } x | j D] } | | | 7} q[ W| S| | Sn! |  d } |  d } t | |  Sd  S(   Ni   i    i   i   (   R   t   ExpandTrigReduceR   R   t   ExpandTrigReduceAux(   R   R   Rg  R   Ru  R}  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    




c         C   s\   t  |   j   } t |  rO d } x$ | j D] } | t | |  7} q. W| St | |  S(   Ni    (   t
   TrigReduceRc   R   R   t   NormalizeTrig(   R   R   Rg  R}  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  	  s    c         C   s   t  d d | g } t  d d | d g } t  d  } | | | } |  j |  } | r t | | j  d k r t | | j d |  r t | | j d |  d k r | | j d } | | | | j i t | |  | 6 | | S|  Sd  S(   NR   R  R  i    R   i   (   RG   Rv  R   R   Rk  Rn  R   R  (   Rg  R   R   R  R   R   t   MR   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    Y1c         C   s^   |  j  t t  j  t t  j  t t  j  t t  j  t t  j  t t  } | j t t	  S(   N(
   t   rewriteR   R6  R   R   R   R
   R	   R   R   (   R   t   ex(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   TrigToExp  s    Nc         G   s   t  |  d k r, | d } t d |  |  S| d } | d } t |  } d } t |  r x( | j D] } | t |  | |  7} qh W| } n t |  | |  } t t | |  t | |  |  Sd  S(   Ni   i    (	   R   t   ExpandTrigToExpR  R   R   R  R  R  R  (   R   R   R   Rg  Ru  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  "  s    


	c         C   s'  t  |   r: d } x! |  j D] } | t |  7} q W| St |   rt d   |  j D  r'|  j t t f t  j t	 t
 f t  j   j t t  j t t
 t  r |  j t t f t  j t	 t
 f t  j   j t t  j   S|  j t t f t  j t	 t
 f t  j   j t t  Sqt d  } t d  } t d  } |  j | t |  t	 |   } | r| | } | | } | | } |  j | t |  t	 |  | t d  d t | |  t | |   S|  j | t |  t |   } | ru| | } | | } | | } |  j | t |  t |  | t d  d t	 | |  t	 | |   S|  j | t	 |  t	 |   } | r
| | } | | } | | } |  j | t	 |  t	 |  | t d  d t	 | |  t	 | |   S|  j | t |  t
 |   } | r| | } | | } | | } |  j | t |  t
 |  | t d  d t | |  t | |   S|  j | t |  t |   } | r4| | } | | } | | } |  j | t |  t |  | t d  d t
 | |  t
 | |   S|  j | t
 |  t
 |   } | r| | } | | } | | } |  j | t
 |  t
 |  | t d  d t
 | |  t
 | |   Sn  t |   r#|  j t t  r||  j t t f t  j   j t t  j t t
 t  rQ|  j t t f t  j   j t t  j   S|  j t t f t  j   j t t  Sn  |  j t	 t
  r#|  j t	 t
 f t  j   j t t	  j t t
 t  r|  j t	 t
 f t  j   j t t	  j   S|  j t	 t
 f t  j   j t t	  Sq#n  |  S(   s  
    TrigReduce(expr) rewrites products and powers of trigonometric functions in expr in terms of trigonometric functions with combined arguments.

    Examples
    ========

    >>> from sympy import sin, cos
    >>> from sympy.integrals.rubi.utility_function import TrigReduce
    >>> from sympy.abc import x
    >>> TrigReduce(cos(x)**2)
    cos(2*x)/2 + 1/2
    >>> TrigReduce(cos(x)**2*sin(x))
    sin(x)/4 + sin(3*x)/4
    >>> TrigReduce(cos(x)**2+sin(x))
    sin(x) + cos(2*x)/2 + 1/2

    i    c         s   s   |  ] } t  |  Vq d  S(   N(   R  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>K  s    R   R   Rg  i   i   (   R   R   R  R   R   R  R   R   R6  R   R   Rc   R   RM   R/   RG   Rv  R   RL   R  (   R   R}  R   R   R   Rg  Rw  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  3  sv    K@=#


N#


N#


N#


N#


N#


Q9.+9..c   
      G   s  t  |  d k r? | d } t |  d  |  } | r8 | St SnW| \ } } t |   rn |  | k rg t S| Sn  t |   rTt |  j d |  rT| d  k r |  j d St | | d  } t | | d  } t |  j d | d  } t |  j d | d  } t	 | | | |  rMt
 | |  rM| t | |  | | t | |  St Sn  t |   rFt |  j d |  rF| d  k rt |  j d St | | d  } t | | d  } t t |  j d | d  } t t |  j d | d  } t	 | | | |  r?t
 | |  r?| t | |  | | t | |  St Sn  t |   rVt S| } x3 |  j D]( }	 t |	 | |  } t |  rft SqfW| Sd  S(   Ni   i    (   R   t   FunctionOfTrigR   R   R;  R@  R  R   R  R   R   R  RM  RM   R`  R   (
   R   R   R   Rg  R   R   R  R   Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    sN    
"(("((c         C   s   t  |   r t St |   r6 t |  j d |  r6 t St |   r\ t |  j d |  r\ t St |   r t |  j |  r t	 |  j
 |  SnC t |   s t |   r x$ |  j D] } t	 | |  s t Sq Wt St S(   Ni    (   R;  R   R@  R  R   RM  R  R   Rp   t   AlgebraicTrigFunctionQR  R   R   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    ""c   	      G   s  t  |  d k rE | d } t |  d  |  } | d  k r> t S| Snd| d } | d } t |   ry |  | k ru t S| St |   r_t |  j d |  r_| d  k r |  j d St | | d  } t | | d  } t |  j d | d  } t |  j d | d  } t	 | | | |  rXt
 | |  rX| t | |  | | t | |  St Sn  t |   rot S| } x- |  j D]" } | t | | |  k rt SqW| Sd  S(   Ni   i    (   R   t   FunctionOfHyperbolicR   R   R;  RM  R  R   R  R   R   R  R`  (	   R   R   Rg  R   R   R  R   Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s:    


"((c         C   s  t  | |  r t St |   r# t St |   ri t t t |  |  d   ri t t	 |  |  | | |  S| rt
 |   s t |   r t | |  j d |  St |   s t |   r t | |  j d |  St |   r t | |  j d |  St |   rt | |  j d |  St |   s+t |   rBt | |  j d |  St |   sZt |   rqt | |  j d |  St |   rt | |  j d |  St |   rt | |  j d |  St | |  |  t k Snt
 |   st |   rt  | |  j d |  St |   st |   r.t! | |  j d |  St |   sFt |   r`t" | |  j d |  n t |   sxt |   rt# | |  j d |  St |   st |   rt$ | |  j d |  St |   st |   rt% | |  j d |  St | |  |  t k S(   Ni   i    (&   R   R   R;  R   R   R   Rh  R  t   FunctionOfQR  RA  RF  t   PureFunctionOfSinQR   RB  RE  t   PureFunctionOfCosQRC  t   PureFunctionOfTanQRD  t   PureFunctionOfCotQRN  RS  R  RO  RR  R  RP  R  RQ  t   PureFunctionOfCothQt   FunctionOfExpnQt   FunctionOfSinQt   FunctionOfCosQt   FunctionOfTanQR  R  R  (   Rg  R   R   t   PureFlag(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    sJ    *c         C   s  |  | k r d St  |   r3 |  | k r, t Sd Sn  t |   rC t St |   r|t |  j |  r|t |  j |  r t |  j  r |  j Sd Sn  t |  rft | j |  rft |  j | j  rft	 | j  r,t	 |  j  r%t |  j | j  r%| j d k s|  j d k  r%|  j | j St Sn  t t
 |  j | j   r\t
 |  j | j  St Sqfn  t |  j | |  Sn  t |   rt t t |  |  d   rt t |  |  | |  St |   rWt |  rWt t |   t |  |  } | t k rt St t |   t |  |  } | | k rPt t
 |  | | A |  rP| St Sn  g  } xF |  j D]; } t | | |  t k rt S| j t | | |   qgWt t |  S(   Ni   i    (   R;  R   R`  R  R   Rp   R   R  R   R   R   R  R   R   Rh  R  R  R   R   R   R  RX  R  (   R   Rg  R   Rk  Rl  R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    sP    (C
*)c         C   s   t  |   r |  | k St |   r& t St |   r_ t |  j d |  r_ t |   p^ t |   Sx- |  j D]" } t t	 | | |   ri t Sqi Wt
 S(   Ni    (   R;  R`  R   R@  R   R   RA  RF  R   R  R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  I  s    
#c         C   s   t  |   r |  | k St |   r& t St |   r_ t |  j d |  r_ t |   p^ t |   Sx- |  j D]" } t t	 | | |   ri t Sqi Wt
 S(   Ni    (   R;  R`  R   R@  R   R   RB  RE  R   R  R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  V  s    
#c         C   s   t  |   r |  | k St |   r& t St |   r_ t |  j d |  r_ t |   p^ t |   Sx- |  j D]" } t t	 | | |   ri t Sqi Wt
 S(   Ni    (   R;  R`  R   R@  R   R   RC  RD  R   R  R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  c  s    
#c         C   s   t  |   r |  | k St |   r& t St |   rS t |  j d |  rS t |   Sx- |  j D]" } t t | | |   r] t Sq] Wt	 S(   Ni    (
   R;  R`  R   R@  R   R   RD  R   R  R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  p  s    
#
c            s  t  |   r |   k St |   r& t St |   r^ t |  j d    r^ t |   p] t |   St |   r t |  j	  rkt |  j	 j d    rkt
 |  j  r t St |  j	     Sn t |   rkt t t |    t  } t |  r	t t    | d     St t t |    t  } t |  rKt t    | d     St    f d   |  j D  St    f d   |  j D  S(   Ni    i   c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   R@  R  R   RB  RE  R7  R  R  Rp   R   R  R   R  R   R
   R[  RG  R   R	   R   (   R   Rg  R   R|  (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  }  s(    
"( c            s  t  |   r |   k St |   r& t St |   r t |  j d    r t |  j d    rt t |   ps t |   St	 |   p t
 |   St |   r t |  j  rt |  j j d    rt |  j  r t St |  j     Snt |   rt	 |  j d  rvt |  j d  rvt |  j d j d   d  rvt |  j d j d   d  rvt t |  d      St t t |    t  } t |  rt | d    rt t    | d     St t t |    t  } t |  r t | d    r t t    | d     St t t |    t  } t |  rbt t    | d     St    f d   |  j D  St    f d   |  j D  S(   Ni    i   i   c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   R@  R  R   R  RA  RF  RB  RE  R7  R  R  Rp   R   R  R   R   R2  R  R   R!   R[  R  RH  R   R   R   R	   R   (   R   Rg  R   R|  (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s6    
"(j c            sT  t  |   s0 t |   s0 t |   s0 t |   rD t |  j d    St |   rr t |  j  oq t	 |  j
     St |   r$t |    d k s t	 t |        Sg  } x9 |  j D]. } t t |      r | j |  q q W| g  k r t St |  d k o#t	 | d     St |   rPt    f d   |  j D  St S(   Ni    i   c         3   s!   |  ] } t  |     Vq d  S(   N(   t   OddTrigPowerQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   RA  RB  RE  RF  R  R   R  R  Rp   R  R  R   R  R  R   R  R  R   RZ  R   R   R   (   R   Rg  R   R|  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s"    0"& c            s  t  |   r |   k St |   r& t St |   rt t |  j d    rt t |   ps t |   ps t |  j d    St	 |   r t
 |  j  r t |  j  r t |  j j d    r t St
 |  j  r t |  j  r t t |  j d      Sn  t |   rg  } x9 |  j D]. } t t |      r| j |  qqW| g  k rWt St |  d k ot | d     ot | d     St    f d   |  j D  S(   Ni    i   i   c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   R@  R  R   RC  RD  R  R  R  Rp   R  R   R   R  R2  R   R   R  RZ  R  R   (   R   Rg  R   R|  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s(    
",7 <c            s  t  |   r t d  St |   r, t d  St |   r t |  j d    r t |   r{ t |  j d    r{ t d  St |   r t |  j d    r t d  St d  St	 |   r9t
 |  j  r9t |  j  r9t |  j j d    r9t |  j  s"t |  j  s"t |  j  r,t d  St d  Sn  t |   rt    f d   |  j D  rt g  |  j D] } t |     ^ qt  St d  St g  |  j D] } t |     ^ q  S(   Ni    i   ic         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  RL   R`  R@  R  R   RC  R   RD  R  R  Rp   R  RB  RE  R   R   RT   t   FunctionOfTanWeight(   R   Rg  R   R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s(    

"#
#

7-
",
c            sl   t  |   r |   k St |   r& t St |   rL t |  j d    rL t St    f d   |  j D  S(   Ni    c         3   s!   |  ] } t  |     Vq d  S(   N(   t   FunctionOfTrigQ(   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   R@  R  R   R   R   (   R   Rg  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    
"c            s[   t  |     r t St |     r> t t |    t   d k St   f d   |  j D  S(   Ni   c         3   s   |  ] } t  |    Vq d  S(   N(   t   FunctionOfDensePolynomialsQ(   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R   R   Rk  RZ  Rn  R   R   R   (   R   R   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  
  s
    c         G   s  t  |  d k rh | d } t |  t t |  } t |  s] t | d  s] t | t  ra t S| Sn[| d } | d } | d } t |   r |  | k r t S|  | | g Sn  t |   r t St |  j	 d |  } t
 |   r>t |  r>t | d  r>t |  s|  j	 d | k r7| |  j	 d | d g St Sn  d | | g } g  } xO |  j	 D]D } t | | d | d |  } t |  rt S| j | d  q]W|  j |   | d | d g Sd  S(   Ni   i    i   (   R   t   FunctionOfLogR   R;  R   R   RR   R`  R  R   R>  R[  R   R  R   (   R   R   R   R|  Rg  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s8    
,


(c         C   sk   t  |  rc t |  | d |  } | s+ t S| | | d t |  | d |  | d | d g Sn t Sd  S(   Ni   i    (   R   t   PowerVariableDegreeR   t   PowerVariableSubst(   R   R  R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PowerVariableExpn8  s    8c         C   su  t  |  |  r | | g St |   s1 t |   r5 t St |   r t  |  j | |  r t |  s | |  j k r | |  j | k r |  j |  j | g St |  j  r t |  r t	 | |  j  d k r | |  j | k r t	 | |  j  | g St Sq n  | | g } xU |  j
 D]J } t | | d | d |  t k rBt St | | d | d |  } qW| smt S| Sd  S(   Ni   i    (   R   R;  R`  R   R  R  R   Rp   R   R  R   R  (   R   R  R  R   R|  R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  D  s&    
.F
#!c         C   s   t  |  |  s' t |   s' t |   r+ |  St |   r_ t  |  j | |  r_ | |  j | Sn  t |   r d } x' |  j D] } | t | | |  9} q{ W| St	 |   r d } x' |  j D] } | t | | |  7} q W| S|  S(   Ni   i    (
   R   R;  R`  R  R  Rp   R   R   R  R   (   R   R  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  [  s     'c   
      C   s  t  d d | g } t  d d | g } t  d d | d g } t  d d | d g } t  d d | d g } t  d  } t  d	  } |  j | | | | | |  }	 |	 rSt |	  d
 k r#t |	 | |	 | g |  r#t |	 | d d  r#t |	 | |  r#t t |	 |   sLt |	 |  rSt t	 |	 | |   rSt
 Sn  |  j | | | | | | | |  }	 |	 rGt |	  d k rt |	 | |	 | g |  rt |	 | |	 |  rt d |	 | |	 | d d  rt |	 | |  rt t |	 |   s@t |	 |  rGt t	 |	 | |   rGt
 Sn  |  j | | | |  }	 |	 rt |	  d k rt |	 |  rt |	 | d d  rt |	 | |  rt |	 | |  rt t	 |	 | |   rt
 Sn t Sd  S(   NR   R  R   R  i    R  Rq  R   Rg  i   i   i   i   i   (   RG   Rv  R   R   R   R  R   R   R   R  R   R   R   R   (
   R   R   R   R   R  R  Rq  R   Rg  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   EulerIntegrandQm  s(    #+yc      	   G   s  t  |  d k rJ| d } t t t t d d  t | t d d  t d d  t |  t d     } t t |  | d  |  } | r t	 St
 |  t	 |  } t |  s t | d  r t	 S| d } t | | d  } t | | d  } t | | d  } t |  r t |  s<t | d d | |  r@t	 St |  rt | t d   }	 | |	 | | |	 | d }
 | d |	 | } t t |  |
 | | | d | |  |
 | d  t |	 | t |   d g St |  rt | t d   }	 | |	 | | |	 | d }
 | | d } t t |  |
 | | d |	 | | |  |
 | d  t |	 t |  |  d g St | d d | | t d   }	 | | d } t |	 t |  |	 | | | | | |	 | |	 | d d | | |  | | d  t d | t |  | |	 d | |  d	 g S| d } | d } t |   syt |  |  r| g St |   r.t |  j |  r.t |  j  rt |  j  d k rt |  j |  rt |  j |  d k rt |  s|  j | k r|  j g St	 Sn  t
 |  j | |  Sn  t |   sFt |   r| g } g  } xG |  j  D]< } t
 | | d |  t	 k rt	 St
 | | d |  } q_W| St	 Sd  S(
   Ni   i    R  R  R   c         S   s   t  |  | | | | g |  S(   N(   R   (   R   R   R  R  Rq  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  i   i   i   (!   R   R   R   R  R   R  R  R   R   R   t   FunctionOfSquareRootOfQuadraticR;  R   R  R   R   R  RL   R   t   SquareRootOfQuadraticSubstR	  R|  R   R  Rp   R   R  Rk  R  Rn  R   R   R   (   R   R   R   R  R  R  R   R   R  R   R  R  Rg  R|  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s`    
T
4SX%

N
	c         C   sV  t  |   s t |  |  r/ |  | k r+ | S|  St |   r t |  j |  rRt |  j  r t |  j  d k r t |  j |  r t |  j |  d k r | t	 |  j  St
 |  j | | |  |  j Sn t |   rd } x* |  j D] } | t
 | | | |  7} q W| St |   rRd } x* |  j D] } | t
 | | | |  9} q+W| Sd  S(   Ni   i    i   (   R;  R   R  Rp   R   R  Rk  R  Rn  R  R  R   R   R   (   R   t   vvt   xxR   R}  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s&    N c         C   s+   t  | |   } t | |  r# | St Sd  S(   N(   R   R   R   (   R   R   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Divides  s    c         C   s   d d l  m } t t t t  t d     } d   } | |  |  rM t S| |  | |  r t |  |  } t	 | d  r t St
 | |  } t | |  r | St Sn t Sd S(   s   
    If y not equal to x, y is easy to differentiate wrt x, and u divided by the derivative of y
    is free of x, DerivativeDivides[y,u,x] returns the quotient; else it returns False.
    i(   R   c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sO   t  |  |  r> t  | |  o= t | |  t |  |  d k St |  |  Sd  S(   Ni   (   Rk  Rn  t   EasyDQ(   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   f1  s    /i    N(   R   R   R   RN   R   R  R   R   t   DRh  R   R   (   R   R   R   R   t   pattern0R  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   DerivativeDivides  s    !	c         C   s  t  d d d g } t  d d | d g } |  j | | |  } | r[ t | | |  St |   s t |  |  s t |   d k r t St |   r t St |   d k r t |  j	 d |  St
 |  |  s t |  |  r t St |  |  rt |  |  d d g k rt St |   rut t |   |  rFt t |   |  St t |   |  rnt t |   |  St Sn t |   rt t |   |  ot t |   |  St |   d k rt |  j	 d |  rt |  j	 d |  qt |  j	 d |  rt |  j	 d |  St Sn  t S(   NR   R  i   R  i    i   (   RG   Rv  R  R;  R   RZ  R   R`  R   R   R  t   ProductOfLinearPowersQR  R  R   R   R   R   (   R   R   R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s<    -*(c         C   s   t  d  } t  d d | g } |  j | |  } t |  |  p | r\ t | | |  p t |   o t t |   |  o t t |   |  S(   NRg  R  R  (   RG   Rv  R   R  R   R  R   R   (   R   R   Rg  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  t |   |  S(   N(   t   RtAuxR  (   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  "  s    c         C   s   t  |  d |  S(   Ni   (   Ra   (   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   NthRoot%  s    c         C   s<   t  |   p; t |   o; t |  j d  o; t |  j d  S(   Ni   i    (   R;  R  R  R   t	   AtomBaseQ(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  (  s    c         C   s<   t  |   p; t |   o; t |  j d  o; t |  j d  S(   Ni   i    (   R   R  R  R   t   SumBaseQ(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  ,  s    c         C   sN   t  |   r t t |    pM t |   oM t |  j d  oM t |  j d  S(   Ni   i    (   R   R   R   R  R  R   t   NegSumBaseQ(   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  0  s    c         C   sc   t  |   r+ t |  j  r+ t |  j  Sn  t |   rY t t |    oX t t |    St |   S(   N(	   R  R  Rp   t   AllNegTermQR  R   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  4  s    "c         C   sc   t  |   r+ t |  j  r+ t |  j  Sn  t |   rY t t |    pX t t |    St |   S(   N(	   R  R  Rp   t   SomeNegTermQR  R   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  =  s    "c         C   sB   t  |   oA t |  j d d  oA t t t g t |  j d   S(   Ni   i   i    (   R  Rh  R   R?  R   R   R<  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   TrigSquareQF  s    c         C   s  t  |   r |  j |  j | St |   r t |   } t |   } t t |  oZ t |   r t | | d | d  r t | | d | d  r t d  t	 | | d | d | | d | d t
 |  St |  |  Sn  t |   rEt t |   } t |  r0t	 | d |  t	 | d |  St t |   } t |  rit | d d  rB| d } t  |  rt | j  rd t	 | j | j |  Sn  t |  rt t t |   rt t |  } t |  rt	 | d |  t	 | d |  St t |  } t |  r@t	 | d |  t	 | d |  St t |  } t |  r~t	 | d |  t	 | d |  St t |  } t	 | d |  t	 | d |  St t |  } t |  rt	 | d |  t	 | d |  St	 t |  |  t	 t |  |  Sn  t |  r2t	 | |  St |  |  Sqit	 | d |  t	 | d |  Sn  t t |   } t |  rt t t | d   rt	 | d |  t	 | d |  St t |   } t |  rt t t | d   rt	 | d |  t	 | d |  S|  j g  |  j D] } t	 | |  ^ q)  St |   } t t |   rpt	 | |  St |  rt |   rt	 |  |  St |  rt |   rt |   rt	 |  |  St |  |  Sd  S(   Ni   i   i    i(    R  R  Rp   R   R]  R\  R   R   RL   R   RM   R  R   t   SplitProductR   R[  R   Rh  R  R  R  R  R  R   R   R  R   R   t
   TrigSquareR;  R   R   (   R   R  R   R   R|  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   J  sn    V?"
 #####*'%$%$,%c         C   s  t  |   r xZ |  j D]O } t t |  } | t k sL t | |   t k rP t St t t |   } q W| r t | d d | d  r t | d d j d  t k r | d t	 | d d d d  d S| d t | d d d d  d St Sn t Sd  S(   Ni   i   i    (
   R   R   R  R  R   t   SplitSumR   R<  R   R   (   R   R   Rg  R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR	    s    !"!&&c         C   sY   t  g  |  j D] } t | |  ^ q   St t |  |  | |  t t |  |  |  S(   N(   RT   R   Rl   R  R  t   IntTermR  (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntSum  s    )c   	      C   s  t  d d | g } t  d d | d g } t  d  } |  j | |  } | r t |  d k r t | | |  r t | | |  r t | | t t | | |   t | | | d  |  S|  j | | |  } | rat |  d k rat	 | | d  rat | | |  rat | | | | | | d t | | | d  | | d |  St
 |   rd } x$ |  j D] } | t | |  7} q}W| S|  } t t | |  t t | |  |  |  Sd  S(	   NR  R  R  i    Rg  i   i   i   (   RG   Rv  R   R   R  R  R=  R  R  R   R   R   R  t   DistR  Rl   R  (	   R   R   R  R  Rg  R  R}  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s     ><?Ec         C   sH   g  } x; t  d t |   D]$ } | j |  | | | |   q W| S(   Ni    (   R,  R   R  (   R   R  R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Map2  s    "c      	   C   sa  t  |  |  r |  t d  g St |   r; t d  |  g St |   r t  |  j |  rQt |  j |  } t |  j  r | d |  j | d |  j g St | d  } | d k r t d  |  g S| |  j t	 | d  | d |  j g Sn^t
 |   rjg  |  j D] } t | |  ^ q	} t g  | D] } t |  ^ q.  t g  | D] } | d ^ qP  g St |   rQg  |  j D] } t | |  ^ q} t g  | D] } | d ^ q  rt g  | D] } | d ^ q  | d d g St g  | D] } t |  ^ q } t |  t t t t |  g  | D] } | d ^ q4   g St d  |  g S(   Ni   i    (   R   RL   R;  R  Rp   t   ConstantFactorR  R   Rn  Rp  R   R   RN   R   R   t   SameQRT   R  R  R   (   R   R   R|  R  R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s.     -%F%#/%?c          G   sD   x= t  d t |   d  D]" } |  | |  | d k r t Sq Wt S(   Ni    i   (   R,  R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s     c         C   s   | |  | <|  S(   N(    (   R|  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ReplacePart  s    
c   
      C   sa  g  |  D] } t  |  ^ q } g  |  D] } t |  ^ q& } t |   } | } g  | D] } | | ^ qW } xt r\g  | D] } t |  ^ q} } t |   r | | d } g  | D] } t |  ^ q } n t d   | D  rt d   g  | D] } t | t	 |   ^ q D  rg  | D] } t | t	 |   ^ q'} t
 |   } | t t	 |  d |  } g  t d t |   D] } | | | | | ^ q} g  | D] } t |  ^ q} n  g  | D] } t |  ^ q} t g  | D] } t |  ^ q  rt |   rt |  } t | d  }	 | d k rV| |	 | } n  g  t d t |   D]  } | | |	 | | | ^ ql} g  | D] } t |  ^ q} nt |  d k rt t | d  t | d   rt | d d  rt | d  rt | d  rt |  } t | d  }	 | d k rW| |	 | } n  | d d | d | d g } g  t d t |   D]  } | | |	 | | | ^ q} g  | D] } t |  ^ q} nat |  d k rt | d t | d   rt | d d  rt | d  rt | d  rt |  } t | d  }	 | d k rr| |	 | } n  | d | d d | d g } g  t d t |   D]  } | | |	 | | | ^ q} g  | D] } t |  ^ q} nF t |  } t | | | | | |  } t | t | |  |  } t d   | D  rp t | |  Sqp Wd  S(   Ni    c         s   s?   |  ]5 } t  |  o6 t t |   o6 t |  d  k Vq d S(   i    N(   R>  R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    i   i   ic         s   s   |  ] } | d  k Vq d S(   i   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   RD  RC  R  R   R  R  R  R   R|  R   R  R=  R,  R   R  R  R   Rg  RZ  R   R   R   R   R\   t   MostMainFactorPositionR  RG  (
   R|  R   R  R  Rj  t   commonR  R+  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s`    	"9)8"1<"64 <"04 <"c         C   sb   t  d  } d } xI t d t |    D]2 } t |  | |  d k r( |  | } | } q( q( W| S(   Ni   i    (   RL   R,  RZ  Rf  (   R|  RI   Rj  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
c         C   s+   d \ a a t a t |  |  } | o* t S(   N(   NN(   R   t   SbaseSt   SexponSR   t   SexponFlagSt   FunctionOfExponentialTest(   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FunctionOfExponentialQ#  s    c         C   s'   d \ a a t a t |  |  t t S(   N(   NN(   R   R  R  R   R  R  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FunctionOfExponential,  s    c         C   s5   d \ a a t a t |  |  t t |  |  |  S(   N(   NN(   R   R  R  R   R  R  R  t    FunctionOfExponentialFunctionAux(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FunctionOfExponentialFunction4  s    c      	   C   s  t  |   r |  St |   r t |  j |  rt |  j |  rt t t | d   r |  j t |  j | d  | t	 t
 |  j  t |  j | d  t
 t  t t | d   S| t	 t
 |  j  t |  j | d  t
 t  t t | d   Snt |   rt |  j d |  r| t	 t |  j d | d  t
 t  t t | d   } t |   r|| d d d | St |   r| d d d | St |   r| d | | d | St |   r| d | | d | St |   r d | d | Sd | d | St |   rzt |  j |  rzt |  j  rzt |  j t |  j  |  t |  j t |  j  |  Sn  |  j g  |  j D] } t | |  ^ q  S(   Ni    i   i   (   R;  R  R   R  R  Rp   R   R  R  R|  R=  R  RM  R   RN  RO  RP  RQ  RR  R   R  R   R   R   (   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  <  s0    $^G"=!=c            s@  t  |     r t S|    k s+ t |   r/ t St |   r~ t  |  j    r t |  j    r t a t	 |  j |  j    Sn9 t
 |   r t |  j d    r t	 t |  j d    St |   r#t  |  j    r#t |  j  r#t |  j t |  j     ot |  j t |  j     Sn  t   f d   |  j D  S(   Ni    c         3   s   |  ] } t  |    Vq d  S(   N(   R  (   R   R   (   R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>l  s    (   R   R   R`  R   R  R  R  Rp   R  t   FunctionOfExponentialTestAuxRM  R   RD   R   R  R   R   R   (   R   R   (    (   R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  Y  s    $"!?c      	   C   s  t  d  k r |  a  | a t St t |   t | | d  t t   t t | d   } t t |   rn t	 St
 t t | d   s t | t t |   t | | d  t t   t t | d    rt |  t   r |  t  k  r |  a  | a d | } n  t t | d  | t |  a | d k  rOt t t | d   rOt a t St St |  t   r|  t  k  r|  a  | a d | } qn  t t |  a | d k  rt t t | d   rt a t St S(   Ni   i    (   R  R   R  R   R|  R=  R  R   R   R   R   R   R   R  R   (   R  t   exponR   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  n  s4    <^ $$c   
      C   s|   t  |   } t |   | } g  |  D] } | | ^ q# } g  | D] } | d ^ q@ } t |  } | | } t |  }	 |	 S(   s8   Calculates the standard deviation for a list of numbers.i   (   R   t   sumR   (
   R|  t	   num_itemst   meanR   t   differencesR   t   sq_differencest   ssdt   variancet   sd(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   stdev  s    
c            s  d d l  m } |  j t t t t t t  s= t	 |  } n  |  | k rM t
 St |   t |  k ri t
 S| |   | |  k r t
 S|  j t  r t t |   d t
 }  t |   t t | d t
  k r t
 Sn  |  | } | r| j }	 g  }
 y xj t d d  D]Y } t d d    t   f d   |	 D  } |
 j t t | j |  j      q	Wt |
  t d	 d
  k  rt
 SWqqXn  | j |  } | rT| j }	 g  }
 y xj t d d  D]Y } t d d    t   f d   |	 D  } |
 j t t | j |  j      qWt |
  t d	 d
  k  rFt
 SWqTqTXn  t | |   } | d k s| j |  rt
 S| r| d k rt
 St |  d k rt
 Sn  | r| j   } t |  d k s| j |  rt
 Sn  t S(   Ni(   Ra   t   forcei    i   i   i(   c         3   s   |  ] } |   f Vq d  S(   N(    (   R   R  (   t   rand_x(    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    i
   ic         3   s   |  ] } |   f Vq d  S(   N(    (   R   R  (   R(  (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   t   sympyRa   R   R
   R   R	   R!   R    R   t   process_trigR   R/   R6  R1   Rq   Ro  R,  R{   R   R  R   t   absR   R  R&  Rh   t   diffR   Rc   R   (   R   R   t   optimal_outputRc   t   _hyper_checkt   _difft
   _numericalRa   R   R   t   rand_valR   t   substitutionst   dresR  Rx  (    (   R(  sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   rubi_test  sh    $
	,	,"c         C   s   |  r
 | S| S(   N(    (   t   condR}  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  |  p t |  p t d | d |  p t | d |  p t | | t d  d  o t | d | d | | | | | d | d d |  | | d  p t | d | d | | | | d | d | d d |  | | d  S(   Ni   i   i   i   i	   (   R   R   R   RL   R   (   R   R   R  R   Rx  R  Rq  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntQuadraticQ  s    c       
   G   s  t  |   d k r |  \ } } } } } } } } t | |  pt |  pt |  pt | d  sw t | d  r t | d |  pt d | |  pt | d  ot d | d |  pt d | |  r t | | d | |  pt | d |  ot d | | | |  St  |   d k r|  \ } } } } }	 } } t d |  pt |	 d | |  pt | d  st | d  rt d |	 d |  pt | d  ot d |  ot |	  pt |	 |  St  |   d k r|  \
 } } } } }
 }	 } } } } t | |  pt |  pt |  pt | d  rvt |	  rvt d | d |  pt | d  ot |	 | d |  pt |	 d | |  Sd  S(	   Ni   i   i   i   i   i   i   i
   (   R   R   R   R   R   (   R   R   R   R  R   R  Rq  R  R   R  Rx  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntBinomialQ  s    $c       
   G   sZ  t  |   d k r|  \ } } } } } t |  } t |  } t |  pm t |  om t d   | j D  o t |  p t |  o t d   | j D  r/| t } | t }	 t |	  r t | | | | |  Sn  t	 t | |	 |   }
 | |
 } |	 |
 }	 t
 t t t |     r.t | t t t | |
 d |	 d  t | |
 d |	 d  t d |  t d | |
 |	  t d |  |   d t | t t t | |
 d |	 d  t | |
 d |	 d  t d |  t d | |
 |	  t d |  |   d Sn  t | t t t | |
 d  t d | |
 |	  t |  t |  t | |
 d |	 d  t |  d |   d t | t t t | |
 d  t d | |
 |	  t |  t |  t | |
 d |	 d  t |  d |   d Sn t |  rWt | | | | |  Sn t
 t t t |     r%| t | |  | t t d | | t d |  d | d | d t d |  | d d | d d | d | d t d |  d | | t d |    Sn  | t | |  | t t t | | d | | t |  d d | d | d t |  t |  | d | d | d | d t |  d d | | t |  t |     Sn  |  \ } } } } t |  } t |  p3t |  o3t d   | j D  ri| t } t |  rdt | | | |  Sn  t | d  rt
 t t t |     rt | t t d |   d Sn  t | t d t |  t |   d Sn  t	 |  }
 | |
 } t | t t |
 t |  | t |  |   d t | t t |
 t |  | t |  |   d Snvt |  rt | | | |  SnRt | d  r| t | |  Sn.t
 t t t |     rNt d | d |  } t |  } t	 |  } | t | |  | t t | t d |  | | t d |    f Sn t | d  rt d | d  } t |  } t	 |  } | t | |  | t t | t |  t |  | | t |  d   f Sn  t | d |  } t |  } t	 |  } | t | |  | t t | t |  t |  | | t |  d   S(   Ni   c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>   s    i   i   i   c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R   R  R   R   R   R   RM   R   t   RectifyTangentR  R  R  R  R=  R  R   RH  RG  t   SimplifyAntiderivativeR  R^  R   R   R   R  R  R  R   (   R   R   R   R   R  R   R  R  R  R   Rx  R}  t   numrt   denr(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR8    sj    b



  1
#-
qOUc       
   G   s  t  |   d k r|  \ } } } } } t |  } t |  } t |  pm t |  om t d   | j D  o t |  p t |  o t d   | j D  r/| t } | t }	 t |	  r t | | | | |  Sn  t	 t | |	 |   }
 | |
 } |	 |
 }	 t
 t t t |     r.t | t t t | |
 d |	 d  t | |
 d |	 d  t d |  t d | |
 |	  t d |  |   d t | t t t | |
 d |	 d  t | |
 d |	 d  t d |  t d | |
 |	  t d |  |   d Sn  t | t t t | |
 d  t | |
 d |	 d  t |  d t d | |
 |	  t |  t |  |   d t | t t t | |
 d  t | |
 d |	 d  t |  d t d | |
 |	  t |  t |  |   d Sn t |  rWt | | | | |  Sn t
 t t t |     r&| t | |  | t t d | | t d |  d | d | d t d |  | d d | d d | d | d t d |  d | | t d |    Sn  | t | |  | t t t | | d | | t |  d d | d | d t |  t |  | d | d | d | d t |  d d | | t |  t |     Sn  |  \ } } } } t |  } t |  p5t |  o5t d   | j D  rn| t } t |  rft | | | |  Sn t | d  rt
 t t t |     rt | t t d |   d Sn  t | t d t |  t |   d Sn  t	 |  }
 | |
 } t | t t | t |  |
 t |  |   d t | t t | t |  |
 t |  |   d Sn t |  rt | | | |  Sn t | d  r| t | |  Sn t
 t t t |     rNt | d  } t |  } t	 |  } | t | |  | t t | t |  t |  | | t |  d   Sn  t | d |  } t |  } t	 |  } | t | |  | t t | t |  t |  | | t |  d   S(   Ni   c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>7  s    i   i   i   c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>J  s    (   R   R  R   R   R   R   RM   R   R8  R  R  R  R  R=  R  R   RH  RG  t   RectifyCotangentR9  R  R^  R   R   R   R  R  R  (   R   R   R   R   R  R   R  R  R  R   Rx  R}  R:  R;  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR<  1  s`    b



  1
$.
rRc          G   s|   |  d d  d  } |  d d  d  } g  } xC t  d t |   D], } | j | | | | | | d   qB Wt |  S(   Ni   i   i    (   R,  R   R  R   (   R   R   Rx  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   Inequalityc  s    *c         C   s   | r
 |  St  d   d  S(   Ns   In Condition()(   t   NotImplementedError(   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   Conditionk  s    c         C   s   t  |   }  t t |  |   S(   N(   R   R  t   SimpHelp(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  r  s    c         C   se  t  |   r |  St |  |  rK t |   } t |  t |   k rG | S|  St |   r>t |  |  } t |  |  } t |  t t |  | d  | d } t |  r t	 g  | j
 D] } t | |  ^ q   } n t | |  } t |  } t | |  } t |  r:t	 g  | j
 D] } t | |  ^ q  S| St |   r9t } t d d | g } t d d | d g } t d d | d d g } | | | | | }	 |  j |	  }
 t } |
 rt |
 | d t d  d	  rt } qn  | r |  St |  |  r=t |  |  d k r=t t |  | d  |  St |  |  rt |  |  d k rt |  | d  d k rt t |  | d  |  | Sd } d } x7 |  j
 D], } t | |  r| | } q| | } qWt |  } t |  r"t g  | j
 D] } t | |  ^ q  } n t | |  } | | S|  j g  |  j
 D] } t | |  ^ qI  S(
   Ni   R   R  R   i    R  i   i   i   (   R;  R   R  RW  R   R  R  R  R  RN   R   R@  RY  R]  t   SimpFixFactorR   Ri   RG   Rv  R   Rh  RL   R   Rk  Rn  R  RT   R   (   R   R   Rg  Ru  R   t   PiR  R  R  R  Rv  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR@  v  s`    ,.)!$<.c         C   s   t  |  ru |  t |   r4 t |  t |  g St |  t |   } t |  rY t S| d t |  | d g S|  |  r | d g St S(   Ni    i   (   R   R   R   R  R;  R   (   R   R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
c         C   s   t  |  r t t |  t |     rF |  t |   t |  g St |  t |   } t |  rk t S| d t |  | d g St t |  |    r |  |  d g St S(   Ni    i   (   R   R   R;  R   R   R
  R   (   R   R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR
    s    c          G   s  t  |   d k rA |  \ } } } } t | t | | |  |  S|  \ } } } t |  rl t | | |  St t t | |  d   r t t | |  | | t | |   St	 |  r t
 | | t d | d  | j d |  St |  rt
 | t d | d  | | j d |  St |  rkt
 | | t d | d  d t d | d  | j d |  St |  rt
 | d t d | d  | t d | d  | j d |  St |  rt
 | d t d | d  d | | j d |  St |  r6t
 | d | d t d | d  | j d |  St |  rmt | | t d | d  | j d |  St |  rt | t d | d  | | j d |  St |  rt | | t d | d  d t d | d  | j d |  St |  r>t | d t d | d  | t d | d  | j d |  St |  r}t | d t d | d  d | | j d |  St |  rt | d | d t d | d  | j d |  St | | |  Sd  S(   Ni   i   i   i    i(   R   R  t   SubstForR;  R   R   Rh  R  R  RA  R  R	  R   RB  RC  RD  RE  RF  RN  R  RO  RP  RQ  RR  RS  t   SubstForAux(   R   Ru  Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRC    sB    &++AA33++AA33c         C   s  |  | k r | St  |   ri t |  re t | j |  re t |  | j  re | t d | j  Sn  |  St |   rt |  j |  rt |  j |  r | |  j St |  r t | j |  r t |  j | j  r | t |  j | j  Sn  t |  j | |  |  j Sn t |   rat	 t
 t |  |  d   rat |  |  t t |  |  | |  St |   rt |  rt t |   t |  |  S|  j g  |  j D] } t | | |  ^ q  S(   Ni   (   R;  R  R   Rp   R   R  R   RD  R   R   Rh  R  R  R   R   R   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRD    s(    %(*&c         C   s
   t  |   S(   N(   R5   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FresnelS  s    c         C   s
   t  |   S(   N(   R4   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FresnelC  s    c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Erf  s    c         C   s
   t  |   S(   N(   R6   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Erfc  s    c         C   s
   t  |   S(   N(   R7   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Erfi  s    t   Gammac           B   s   e  Z e d     Z RS(   c         G   se   | d } t  |  d k r& t |  S| d } t |  rH t |  sT | d k ra t | |  Sd  S(   Ni    i   (   R   R   R  R   (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    


$(   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRJ    s   c         C   sH   t  |  d  |  r@ t |  |  r@ t t  |  d  |  |  r@ t St Sd  S(   N(   R  R   R  R~  R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   FunctionOfTrigOfLinearQ(  s    <c         C   s   t  |   r t St |   sX t |   sX t |   sX t |   sX t |   sX t |   r x! |  j D] } t	 |  sb t
 Sqb Wt St
 S(   N(   R;  R   R   R   R  R@  RM  R_  R   Rb  R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRb  0  s    Hc         C   s   |  t  | S(   N(   RM   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Complex=  s    c         C   s
   |  | k S(   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  @  s    c          C   s  t    }  t t t t t t t d  t  t	 d t d    t t t d  t
  t	 d t d     t	 d t d    t  t d     } t | d    } |  j |  t t t t t t t d  t
  t	 d t d    t t t d  t  t	 d t d    t t t d  t  t	 d t d     t	 d t d    t  t d	     } t | d
    } |  j |  t t t t t t	 d t d   t t t   t t	 d t d   t t t	 d t d      t	 d t d    t  t d    t d    t d    t d    t d    t d    t d     } t | d    } |  j |  t t t t t	 d t d   t t	 d t d   t t t  t t t	 d t d      t	 d t d    t  t d    t d    t d    t d    t d    t d    t d     } t | d    } |  j |  t t t t t t	 d t d   t t t	 d t d     t t	 d t d   t t t	 d t d    t t t	 d t d      t	 d t d    t  t d    t d    t d     t d!    t d"    t d#    t d$     }	 t |	 d%    }
 |  j |
  t t t t t t	 d t d   t t t	 d t d     t t	 d t d   t t t	 d t d    t t t	 d t d      t	 d t d    t  t d&    t d'    t d(    t d)    t d*    t d+    t d,     } t | d-    } |  j |  |  S(.   Ni    R   i   R   Rq  c         S   s
   t  |   S(   N(   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  G  R%  c      	   S   sC   t  t t |  t t t t  | |  t  |  |   |  |   S(   N(   RN   Rh   RM   RA  RT   (   R   R  R   R   Rq  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  H  R%  R  c         S   s
   t  |   S(   N(   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  K  R%  c      
   S   sO   t  t t |  t t t t  | |  t  |  |  t  | |   |  |   S(   N(   RN   Rh   RM   RA  RT   (   R   R  R   R   R   Rq  Rx  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  L  R%  R  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s
   t  |   S(   N(   R;  (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s   t  |  t d   S(   Ni    (   R.  RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   sm   t  t | t  | |   t t t | t  t  |  t t | |  t d    t | |    |  |   S(   Ni(   RN   Rh   RA  RT   RL   (   R   R  R  R  R   R   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  P  R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s
   t  |   S(   N(   R;  (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s   t  |  t d   S(   Ni    (   R.  RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   sm   t  t | t  | |   t t t t  | t t | |  t d    t  |  t | |    |  |   S(   Ni(   RN   Rh   RA  RT   RL   (   R   R  R  R  R   R   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  T  R%  R  R  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   s   t  t d  t | t |   S(   Ni    (   R=  RL   R.  R-  (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   s%   t  t | t | |    t d   S(   Ni(   R  Rh   RN   RL   (   Rq  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  W  R%  c         S   sp   t  t | t  | |   t t t | t  |  t | t | t  t d  |    t | |    |  |   S(   Ni(   RN   Rh   RA  RT   RL   (   R   R  R  R  R   R   Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  X  R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s   t  t d  | |   S(   Ni    (   R.  RL   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s%   t  t | t | |    t d   S(   Ni(   R  Rh   RN   RL   (   Rq  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   sv   t  t | t  | |   t t t t  | t | t | t  t d  |     t  |  t | |    |  |   S(   Ni(   RN   Rh   RA  RT   RL   (   R   R  R  R  R   R   Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  \  R%  (   R   R   R   Rh   RT   RN   RL  RL   R  R   R  R  R   R   t   addR  R  R  (   t   replacerR  R  R  R  R'  t   rule3R(  t   rule4t   pattern5t   rule5t   pattern6t   rule6(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _SimpFixFactorC  s,    	  c         C   s/   t  j t |  |   } t | t  r+ |  S| S(   N(   t   SimpFixFactor_replacerR   R   R   (   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRA  a  s    c             s  t    d   }  t |   } d   } t |  } d   } t |  } d   } t |  } d   } t |  }	 d   }
 t |
  } d   } t |  } d   } t |  } d	   } t |  } d
   } t |  } d   } t |  } d   } t |  } d   } t |  } d   } t |  } d   } t |  } d   } t |  } d   }  t |   }! d   }" t |"  }# d   }$ t |$  }% d   }& t |&  }' d   }( t |(  }) d   }* t |*  }+ d   }, t |,  }- d   }. t |.  }/ d   }0 t |0  }1 d   }2 t |2  }3 d   }4 t |4  }5 d   }6 t |6  }7 d   }8 t |8  }9 d   }: t |:  }; d   }< t |<  }= d    }> t |>  }? d!   }@ t |@  }A d"   }B t |B  }C d#   }D t |D  }E d$   }F t |F  }G t t t t t d%  t  t d& t d'   t d( t d'   t t d%  t	  t d) t d'    |  }H d*   }I t
 |H |I  }J d+   }K t t t t d, t d'   t t t d- t d'    | | | |	 | | t |K   }L d.   }M t
 |L |M  }N d/   }O t t t t d, t d'   t t t d- t d'    | | | | | | t |O   }P d0   }Q t
 |P |Q  }R d1   }S t t t t d, t d'   t t t d- t d'    | | | |	 | | t |S   }T d2   }U t
 |T |U  }V d3   }W t t t t d, t d'   t t t d- t d'    | | | | | | t |W   }X d4   }Y t
 |X |Y  }Z d5   }[ t t t	 t t t t d& t d'   t t d6 t d'   t d- t d'    | | | | t |[   }\ d7   }] t
 |\ |]  }^ t t t	 t d, t d'   t	 t t d) t d'   t t d6 t d'   t d& t d'   t d- t d'    | | | | |!  }_ d8   }` t
 |_ |`  }a   f d9   }b t t t	 t t d, t d'   t t t t d- t d'    | |# |% t |b   }c d:   }d t
 |c |d  }e t t t	 t d, t d'   t d) t d'   t	 t d( t d'   t d& t d'   t d; t d'   t d- t d'    |' |) |+ |-  }f d<   }g t
 |f |g  }h t t t	 t d, t d'   t d) t d'   t	 t d( t d'   t d& t d'   t	 t d6 t d'   t d= t d'   t d; t d'   t d- t d'    |' |) |/ |1  }i d>   }j t
 |i |j  }k t t t	 t d, t d'   t d) t d'   t	 t d( t d'   t d& t d'   t	 t d6 t d'   t d= t d'   t	 t d? t d'   t d@ t d'   t d; t d'   t d- t d'    |' |) |/ |3  }l dA   }m t
 |l |m  }n t t t t  t dB t d'   t t  t dC t d'   t t  t dD t d'   t t  t dE t d'   t d) t d%   t d- t d'     }o dF   }p t
 |o |p  }q t t t t  t dB t d'   t t  t dC t d'   t t  t dE t d'   t d) t d%   t d- t d'     }r dG   }s t
 |r |s  }t t t t t  t dB t d'   t t  t dE t d'   t d) t d%   t d- t d'     }u dH   }v t
 |u |v  }w t t t t t t t d) t d'    | |5 | |7 |9  }x dI   }y t
 |x |y  }z t t t t t t d( t d'   t d) t d'    | |5 |; |=  }{ dJ   }| t
 |{ ||  }} t t t t d( t d'   t t d6 t d'   t t d) t d'    | |5 |? |A  }~ dK   } t
 |~ |  } t t t t d( t d'   t t d6 t d'   t t d) t d'    | |5 |C |=  } dL   } t
 | |  } t t t	 t t d, t d'   t	 t t d, t d'   t d) t d'    | |E |G  } dM   } t
 | |  } t t t dN  t t t dO  t t dP  t d, t d'   t d) t d'    |  } dQ   } t
 | |  } t t t dN  t t t dO  t t dR  t d, t d'   t d) t d'    |  } dS   } t
 | |  } t t t   } dT   } t
 | |  } |J |N |R |V |Z |^ |a |e |h |k |n |q |t |w |z |} | | | | | | g S(U   Nc         S   s
   t  |   S(   N(   R  (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  k  s    c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  o  s    c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f3s  s    c         S   s
   t  |   S(   N(   R  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f4w  s    c         S   s
   t  |   S(   N(   R  (   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f5{  s    c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f6  s    c         S   s
   t  |   S(   N(   R   (   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f7  s    c         S   s   t  t d  |   S(   Ni   (   R  RL   (   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f8  s    c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f9  s    c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f10  s    c         S   s   t  | | | |   S(   N(   R   (   R  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f11  s    c         S   s   t  |  t d   S(   Ni    (   R/  RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f12  s    c         S   s   t  |  t d   S(   Ni    (   R/  RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f13  s    c         S   s
   t  |   S(   N(   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f14  s    c         S   s
   t  |   S(   N(   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f15  s    c         S   s   t  | |  t d   S(   Ni    (   R/  RL   (   Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f16  s    c         S   s   t  |  | t d   S(   Ni    (   R  RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f17  s    c         S   s   t  t |    S(   N(   R   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f18  s    c         S   s   t  | | | |   S(   N(   R   (   R  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f19  s    c         S   s   t  t |    S(   N(   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f20  s    c         S   s
   t  |   S(   N(   R   (   R}  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f21  s    c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f22  s    c         S   s   t  t d  t | t |   S(   Ni    (   R=  RL   R.  R-  (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f23  s    c         S   s   t  | | |   S(   N(   R   (   Rq  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f24  s    c         S   s"   t  t d  t | t | t |   S(   Ni    (   R=  RL   R.  R-  (   Rq  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f25  s    c      
   S   s(   t  t d  t | t | t |  t | 	 S(   Ni    (   R=  RL   R.  R-  (   Rq  R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f26  s    c         S   s   t  t |    S(   N(   R   R   (   Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f27  s    c         S   s   t  |  t d   S(   Ni    (   R.  RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f28  s    c         S   s   t  | | |   S(   N(   R   (   R  Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f29  s    c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f30  s    c         S   s   t  | |   S(   N(   R   (   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f31  s    c         S   s   t  | |   S(   N(   R   (   Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f32  s    c         S   s   t  | |   S(   N(   R   (   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f33  s    c         S   s   t  | | |   S(   N(   R   (   Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f34  s    c         S   s
   t  |   S(   N(   R;  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f35  s    c         S   s
   t  |   S(   N(   R;  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f36  s    i    Rg  i   R  R   c         S   s]   t  d  |  t  d  t  d  d | | t | | | t t  d  t  d   |   S(   Nii   i   i    (   RL   R  RL  (   R  R   Ru  Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement1  s    c         S   sO   | |  t  |  |  | | t  |  |  } t t |  t |   rK t St S(   N(   R  R|   RB  R  R   R   (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    ,R  Ru  c         S   sG   | |  t  |  |  | | t  |  |  } t | | t  |  |   S(   N(   R  R  (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement2  s    ,c         S   sQ   | |  t  |  |  | | t  |  |  } t t |  t |   rM t St S(   N(   R  R|   RB  R  R   R   (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With3	  s    .c         S   sJ   | |  t  |  |  | | t  |  |  } t | | t  |  |   S(   N(   R  R  (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement3  s    .c         S   sP   | | t  |  |  | |  t  |  |  } t t |  t |   rL t St S(   N(   R  R|   RB  R  R   R   (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With4  s    -c         S   sI   | | t  |  |  | |  t  |  |  } t | | t  |  |   S(   N(   R  R  (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement4  s    -c         S   sR   | | t  |  |  | |  t  |  |  } t t |  t |   rN t St S(   N(   R  R|   RB  R  R   R   (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With5  s    /c         S   sL   | | t  |  |  | |  t  |  |  } t | | t  |  |   S(   N(   R  R  (   R  R  R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement5#  s    /c   	      S   s*   | | |  | | } t  |  r& t St S(   N(   R   R   R   (	   Rq  R  R  R   Ru  Rg  R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With6'  s    Rq  c   	      S   s<   | | |  | | } t  | | | |  | | | |   S(   N(   R  (	   Rq  R  R  R   Ru  Rg  R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement6-  s    c         S   s9   t  | | | | t d  |  | | |  | |  S(   Ni(   R  RL   (   Rq  R  R  R   Ru  Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement72  s    c            s!   | | } t  |    r t St S(   N(   R   R   R   (   R  R   R  Ru  R  R   R   R  (   t   Plus(    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With85  s    
c         S   s,   | | } t  | |  | | | |  |  S(   N(   R  (   R  R   R  Ru  R  R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement8;  s    
R}  c         S   s/   t  | |  | | | |  | | | |  S(   N(   R  (   R  R  R   Ru  Rg  R   R}  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement9@  s    R   c	   	      S   s@   t  | | | | | | | | | | |  | | |  S(   N(   R  (	   Rq  R  R  R   Ru  Rg  R   R   R}  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement10D  s    R  R   c         S   sQ   t  | | |
 | | | | | | | |  | | | | |	 | |
  S(   N(   R  (   Rq  R  R  R   R  Ru  Rg  R   R   R   R}  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement11H  s    R   R  R   R   c         S   s.   t  | | t |  t  | | | |    S(   N(   R  R   (   R   R   Ru  Rg  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement12L  s    c         S   s*   t  | |  t |  t  | | |   S(   N(   R  R   (   R   Ru  Rg  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement13P  s    c         S   s&   t  | |  t |  t  | |   S(   N(   R  R   (   R   Ru  Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement14T  s    c         S   s   t  | | |  t d   S(   Ni(   R  RL   (   R  R  R   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement15X  s    c         S   s$   t  d  | t | | |  |  S(   Ni(   RL   R  (   R  R  R   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement16\  s    c         S   s1   t  d  | |  t | | |  | | |   S(   Ni(   RL   R  (   Rq  R  R  R   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement17`  s    c         S   s5   t  d  | | |  t | | |  | | |   S(   Ni(   RL   R  (   Rq  R  R  R   Ru  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement18d  s    c         S   s$   | | t  d  | t  d  |  S(   Ni   (   RL   (   R  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement19h  s    i  i   i  c         S   s8   | t  t t d  t t t t t t d  |  S(   Ni   (   R   Rx  RL   R   R   R  (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement20l  s    ic         S   s8   | t  t t d  t t t t t t d  |  S(   Ni   (   R   Rx  RL   R   R   R  (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement21p  s    c         S   s   |  S(   N(    (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement22t  s    (   RT   R   R   R   R  RL  RL   R  R   R  R   R  R  R  R  R  R  R   R  Rx  (   R  R  R  R  RW  t   cons3RX  t   cons4RY  t   cons5RZ  t   cons6R[  t   cons7R\  t   cons8R]  t   cons9R^  t   cons10R_  t   cons11R`  t   cons12Ra  t   cons13Rb  t   cons14Rc  t   cons15Rd  t   cons16Re  t   cons17Rf  t   cons18Rg  t   cons19Rh  t   cons20Ri  t   cons21Rj  t   cons22Rk  t   cons23Rl  t   cons24Rm  t   cons25Rn  t   cons26Ro  t   cons27Rp  t   cons28Rq  t   cons29Rr  t   cons30Rs  t   cons31Rt  t   cons32Ru  t   cons33Rv  t   cons34Rw  t   cons35Rx  t   cons36R  Ry  R  R  R  Rz  R  R{  R'  R|  RO  R}  R(  R~  RP  R  RQ  R  RR  R  RS  R  RT  t   pattern7R  t   rule7R  t   pattern8R  t   rule8t   pattern9R  t   rule9t	   pattern10R  t   rule10t	   pattern11R  t   rule11t	   pattern12R  t   rule12t	   pattern13R  t   rule13t	   pattern14R  t   rule14t	   pattern15R  t   rule15t	   pattern16R  t   rule16t	   pattern17R  t   rule17t	   pattern18R  t   rule18t	   pattern19R  t   rule19t	   pattern20R  t   rule20t	   pattern21R  t   rule21t	   pattern22R  t   rule22(    (   R  sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _FixSimplifyh  s$   																																				t		[		[		[		[		p		Z						n	@	L	`	`	`	b	a		c         C   sQ   t  |  t t t f  r> g  |  D] } t t |  t  ^ q St t |   t  S(   N(   R   R   R  Rv   R   R   t   FixSimplify_rules(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  y  s    &c          C   s  t    }  t t t t t t t t t d t d   t	 t
 t  t d t d       t d t d    t t t t   t d t d    t d t d    t  t d    t d	    t d
    t d    t d    t d     } t | d    } |  j |  t t t t t t t t	 t t  t d t d    t d t d    t   t d t d    t t t t   t d t d    t d t d    t  t d    t d    t d    t d    t d    t d     } t | d    } |  j |  t t t t t t t t t d t d   t	 t
 t  t d t d       t d t d    t t t t t t d t d   t	 t
 t  t d t d       t d t d    t d t d    t  t d    t d    t d    t d    t d    t d    t d    t d    	 } t | d    } |  j |  t t t t t t t t	 t t  t d t d    t d t d    t   t d t d    t t t t t	 t t  t d t d    t d t d    t   t d t d    t d t d    t  t d     t d!    t d"    t d#    t d$    t d%    t d&    t d'    	 } t | d(    } |  j |  t t t t t t t t t d t d   t	 t
 t  t d t d       t d t d    t t t t t t d t d   t	 t
 t  t d t d       t d t d    t t t t t t d) t d   t	 t
 t  t d t d       t d* t d    t d t d    t  t d+    t d,    t d-    t d.    t d/    t d0    t d1    t d2    t d3    t d4    t d5     }	 t |	 d6    }
 |  j |
  t t t t t t t t	 t t  t d t d    t d t d    t   t d t d    t t t t t	 t t  t d t d    t d t d    t   t d t d    t t t t t	 t t  t d t d    t d) t d    t   t d* t d    t d t d    t  t d7    t d8    t d9    t d:    t d;    t d<    t d=    t d>    t d?    t d@    t dA     } t | dB    } |  j |  |  S(C   NR   i   R  R  R  Rg  i    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s+   t  t t | |  t t d  |     S(   Ni   (   R   RT   RN   RL   (   R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sg   t  t | |  t | t t t  t | t t |  |    t | t t |  |     |     S(   N(   RT   t   SimplifyAntiderivativeSumRN   R=  R  Rh   RH  RG  (   R  R   Rg  R   R  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s+   t  t t | |  t t d  |     S(   Ni   (   R   RT   RN   RL   (   R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sg   t  t | |  t | t t t  t | t t |  |    t | t t |  |     |     S(   N(   RT   R  RN   R=  R  Rh   RG  RH  (   R  R   Rg  R   R  R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  R   c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t | |    S(   N(   R   RT   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c
   
      S   s   t  t | |  t | t t t  t |	 t t |  |    t | t t |  |     |    t | t t t  t | t t |  |    t | t t |  |     |     S(   N(   RT   R  RN   R=  R  Rh   RH  RG  (
   R  R   Rg  R   R  R  R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t | |    S(   N(   R   RT   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c
   
      S   s   t  t | |  t | t t t  t | t t |	  |    t | t t |	  |     |    t | t t t  t | t t |	  |    t | t t |	  |     |     S(   N(   RT   R  RN   R=  R  Rh   RH  RG  (
   R  R   Rg  R   R  R  R  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  R   R  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   Rx  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t | |  |   S(   N(   R   RT   (   R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s  t  t | |  t | t t t  t | t t |  |    t | t t |  |     |    t | t t t  t | t t |  |    t |
 t t |  |     |    t | t t t  t | t t |  |    t |	 t t |  |     |     S(   N(   RT   R  RN   R=  R  Rh   RH  RG  (   R  Rx  R   Rg  R   R  R  R   R  R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   Rx  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t | |  |   S(   N(   R   RT   (   R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s  t  t | |  t | t t t  t | t t |  |    t | t t |  |     |    t | t t t  t |
 t t |  |    t | t t |  |     |    t | t t t  t |	 t t |  |    t | t t |  |     |     S(   N(   RT   R  RN   R=  R  Rh   RH  RG  (   R  Rx  R   Rg  R   R  R  R  R   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  (   R   R   R   RT   RN   R=  R  R   RL   Rh   RI  R  RH  R  R   R   RM  RJ  RG  R  R  (   RN  R  R  R  R  R'  RO  R(  RP  RQ  RR  RS  RT  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _SimplifyAntiderivativeSum  s0    	 K K  c         C   s/   t  j t |  |   } t | t  r+ |  S| S(   N(   t"   SimplifyAntiderivativeSum_replacerR   R   R   (   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c    9      C   s  t    }  t t t t t t   t  t d     } t	 | d    } |  j
 |  t t t t t t   t  t d     } t	 | d    } |  j
 |  t t t t t t   t  t d     } t	 | d    } |  j
 |  t t t t t t t d t d   t t     t  t d	    t d
    t d     } t	 | d    } |  j
 |  t t t t t t t  t d t d    t   t  t d    t d    t d     }	 t	 |	 d    }
 |  j
 |
  t t t t t d t d   t t    t  t d    t d    t d     } t	 | d    } |  j
 |  t t t t t d t d   t t    t  t d    t d    t d     } t	 | d    } |  j
 |  t t t t t d t d   t t    t  t d    t d     } t	 | d    } |  j
 |  t t t t t d t d   t t    t  t d    t d    t d     } t	 | d     } |  j
 |  t t t t t d t d   t t    t  t d!    t d"    t d#     } t	 | d$    } |  j
 |  t t t t t   t   } t	 | d%    } |  j
 |  t t t t t   t   } t	 | d&    } |  j
 |  t t t t t t  t d t d     t  t d'    t d(    t d)     } t	 | d*    } |  j
 |  t t t t t t  t d t d     t  t d+    t d,    t d-     } t	 | d.    } |  j
 |  t t t t t t  t d t d     t  t d/    t d0     } t	 | d1    } |  j
 |  t t t t t t  t d t d     t  t d2    t d3    t d4     } t	 | d5    }  |  j
 |   t t t t t t  t d t d     t  t d6    t d7    t d8     }! t	 |! d9    }" |  j
 |"  t t t t t   t   }# t	 |# d:    }$ |  j
 |$  t t t t t t  t d t d     t  t d;    t d<     }% t	 |% d=    }& |  j
 |&  t t t t t   t   }' t	 |' d>    }( |  j
 |(  t t t t t d? t d   t t t t d t d   t t      t  t d@    t dA    t dB    t dC    t dD    t dE     }) t	 |) dF    }* |  j
 |*  t t t t t d? t d   t t t t d t d   t t      t  t dG    t dH    t dI    t dJ    t dK    t dL     }+ t	 |+ dM    }, |  j
 |,  t t t t t d? t d   t t t t  t d t d    t    t  t dN    t dO    t dP    t dQ    t dR    t dS     }- t	 |- dT    }. |  j
 |.  t t t t t d? t d   t t t t  t d t d    t    t  t dU    t dV    t dW    t dX    t dY    t dZ     }/ t	 |/ d[    }0 |  j
 |0  t t t t t d t d\   t t d t d   t t   t t d? t d   t t t  t d]      t  t d^    t d_    t d`    t da     }1 t	 |1 db    }2 |  j
 |2  t t t t t d t d\   t t d t d   t t dc t d\   t t dd t d   t t     t t d? t d   t t t de t d\   t t df t d   t t    t d]      t  t dg    t dh    t di    t dj     }3 t	 |3 dk    }4 |  j
 |4  t t t t t d t d\   t t d? t d   t t t  t d]      t  t dl    t dm    t dn     }5 t	 |5 do    }6 |  j
 |6  t t t t t d t d\   t t d? t d   t t t de t d\   t t df t d   t t    t d]      t  t dp    t dq    t dr     }7 t	 |7 ds    }8 |  j
 |8  |  S(t   Nc         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  |   S(   N(   R9  R=  (   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | t t |  |    S(   N(   RN   R9  R=  (   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t | |    S(   N(   RN   R=  R9  (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  R   i   c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RT   Rh   RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s[   t  t t | t | t d    t | |    t t d  t t t |   |     S(   Ni   (   RT   RN   Rh   RL   R9  R=  RH  (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RT   Rh   RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sj   t  t t t t d  |  t | t d    t | |    t t d  t t t |   |     S(   Ni   (   RT   RN   RL   Rh   R9  R=  RG  (   R   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  R   c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | | t d  |   S(   Ni   (   R8  RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | | t d  |   S(   Ni   (   R8  RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t d  t t t  | t |    |    S(   Ni   (   RN   RL   R9  R  R'  (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s+   t  | t t |  t t d  t  |   S(   Ni   (   R8  RN   RM   RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s+   t  | t t |  t t d  t  |   S(   Ni   (   R8  RN   RM   RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |   S(   N(   R9  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |   S(   N(   R9  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | | t d  |   S(   Ni   (   R<  RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | | t d  |   S(   Ni   (   R<  RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c      
   S   s@   t  t d  t t t  t |  t | t d     |    S(   Ni   (   RN   RL   R9  R  R'  Rh   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | t t |  t |   S(   N(   R<  RN   RM   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t |  t d    S(   Ni   (   R   Rh   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | t t |  t |   S(   N(   R<  RN   RM   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |   S(   N(   R9  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t t |  t | t d     |   S(   Ni   (   R9  R  RN   R'  Rh   RL   (   R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |   S(   N(   R9  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  R  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s.   t  | t | |  t | |  t d  |   S(   Ni   (   R8  RN   RL   (   R   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s=   t  | t t | |  t t | |  t t d  t  |   S(   Ni   (   R8  RN   RM   RL   (   R   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$     R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$     R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$     R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$     R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$     R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$     R%  c         S   s.   t  | t | |  t | |  t d  |   S(   Ni   (   R<  RN   RL   (   R   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s1   t  t t | t d   t |  t d     S(   Ni   (   R   RN   Rh   RL   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s=   t  | t t | |  t t | |  t t d  t  |   S(   Ni   (   R<  RN   RM   RL   (   R   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  i    i   c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t t t t |     t t t t | | t	 d  t t | t t	 d  |  t	 d   t
 t t	 d  |    t | t t t	 d  |     t t | | t	 d  t t | t t	 d  |  t	 d   t
 t t	 d  |    t | t t t	 d  |     t	 d      t t t t | t t | t t	 d  |  t	 d   t t
 |  t	 d    t | t
 |  t |    t t | t t | t t	 d  |  t	 d   t t
 |  t	 d    t | t
 |  t |    t	 d       S(   Ni   i   (   R  R  R  R  R  R  R  RN   RT   RL   RH  RG  Rh   (   R   R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  	  R%  R   Rx  R   R5  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c	   	      S   s   t  t t | t | |  t | t | t d    t t t | |  t t d  | | |   t |   t | t | t d   t t |  t d      |   S(   Ni   (   R9  R  RT   RN   Rh   RL   RI  (	   R   R   R   Rx  R   R   R   R  R5  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s  t  t t t t |     t t t t | | t	 d  t t | t t	 d  |  t	 d   t
 t t	 d  |     t t | | t	 d  t t | t t	 d  |  t	 d   t
 t t	 d  |     t	 d      t t t t | t t | t t	 d  |  t	 d   t t
 |  t	 d     t t | t t | t t	 d  |  t	 d   t t
 |  t	 d     t	 d       S(   Ni   i   (   R  R  R  R  R  R  R  RN   RT   RL   RH  Rh   (   R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   Rj  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t t | t | t | t d    t t t d  | | |  t |   t | t | t d   t t |  t d      |   S(   Ni   (   R9  R  RT   RN   Rh   RL   RI  (   R   R   R   R   R  R5  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  (   R   R   R   R=  RN   R  R  R  R   R   RM  Rh   R  R  RT   R  R   RL   RI  RJ  R  R  R'  R  R  R+  (9   RN  R  R  R'  RO  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  t	   pattern23t   rule23t	   pattern24t   rule24t	   pattern25t   rule25t	   pattern26t   rule26t	   pattern27t   rule27t	   pattern28t   rule28t	   pattern29t   rule29t	   pattern30t   rule30t	   pattern31t   rule31t	   pattern32t   rule32(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _SimplifyAntiderivative  s    	000ff]]Q]]!!]]Q]]!Q! c   	      C   s  t  j t |  |   } t | t  rt |   r t d  t d  } } x7 |  j D], } t | |  rx | | 9} qV | | 9} qV Wt | |  rX| t d  k rXt | |  } t	 |  r t
 |  r t g  | j D] } | | ^ q   S| | Sn[ t |   rX|  j d } t t t t t t t g t |   rXt t d |  |  Sn  t t t t g t |    rt |   } |  j d } t t t t t t t g t |   rt | d |  |  Sn  t t t g t |    rFt |   } |  j d } t t t t t t t g t |   rFt | d |  |  Sn  |  } t | |  ret d  St |  rt t | j d |   St	 |  rt t g  | j D] } t | |  ^ q  |  S| S| Sd  S(   Ni   i    (   t   SimplifyAntiderivative_replacerR   R   R   R   RL   R   R   R9  R   R   RT   R>  R?  R	   R   R
   R   R    R!   R<  R=  R"   R%   R   R   R  R  (	   R   R   R  R   R  R   Rg  R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR9    sH    !$'''
2c    =      C   s  t    }  t t t t d t d   t t t t d t d   t t t d t d     t t d t d   t t t d t d      t	    t
 d    t
 d    t
 d	    t
 d
     } t | d    } |  j |  t t t t t t t  t d   t d t d    t d t d   t t d t d   t t t  t d      t
 d     } t | d    } |  j |  t t t t d t d   t t d t d   t t t  t d    t t d t d   t t t  t d      t
 d     } t | d    } |  j |  t t t t t t t  t d   t d t d    t t t t  t d   t d t d    t d t d     t
 d     } t | d    } |  j |  t t t t t t t t  t d   t d t d    t d t d   t t d t d   t t t  t d     t    }	 t |	 d    }
 |  j |
  t t t t d t d   t t t d t d   t t t  t d      t
 d     } t | d    } |  j |  t t t t t t t  t d   t d t d    t d t d   t   t
 d     } t | d    } |  j |  t t t t d t d   t t t d t d   t t t  t d      t
 d     } t | d    } |  j |  t t t t t t t  t d   t d t d    t d t d   t   t
 d     } t | d    } |  j |  t t t t d t d   t t t d t d   t t t  t d      t
 d     } t | d     } |  j |  t t t t t t t  t d   t d t d    t d t d   t   t
 d!     } t | d"    } |  j |  t t t t d t d   t t t t t  t d t d    t  t d#   t t t  t d     t
 d$     } t | d%    } |  j |  t t t t t t  t d   t d t d   t t t t t d t d   t t    t d#     t
 d&     } t | d'    } |  j |  t t t t d t d   t t t  t d t d    t t t t t d t d   t t t  t d t d      t d#     t
 d(    t
 d)     } t | d*    } |  j |  t t t t t t  t d t d    t d t d   t t t t t t  t d t d    t d t d    t  t d#     t
 d+    t
 d,     } t | d-    } |  j |  t t t t d t d   t t t  t d t d    t t t t t d t d   t t t  t d t d      t d#     t
 d.    t
 d/     } t | d0    }  |  j |   t t t t t t  t d t d    t d t d   t t t t t t  t d t d    t d t d    t  t d#     t
 d1    t
 d2     }! t |! d3    }" |  j |"  t t t t d t d   t t t t t d t d   t t t  t d t d      t d#   t t t  t d t d      t
 d4    t
 d5     }# t |# d6    }$ |  j |$  t t t t t t  t d t d    t d t d   t t t t t t  t d t d    t d t d    t  t d#     t
 d7    t
 d8     }% t |% d9    }& |  j |&  t t t t d t d   t t t t d t d   t t t  t d t d     t t d t d   t t t  t d t d      t d: t d      t
 d;     }' t |' d<    }( |  j |(  t t t t t t t t t  t d t d    t d t d    t t t t  t d t d    t d t d     t d: t d    t d t d     t
 d=     }) t |) d>    }* |  j |*  t t t t d t d   t t t t d t d   t t t  t d t d     t t d t d   t t t  t d t d      t d: t d      t
 d?     }+ t |+ d@    }, |  j |,  t t t t t t t t t  t d t d    t d t d    t t t t  t d t d    t d t d     t d: t d    t d t d     t
 dA     }- t |- dB    }. |  j |.  t t t t t t  t d t d    t d t d   t t t d t d   t t dC t d   t t t  t d t d     t t d t d   t t t  t d t d      t d: t d      t
 dD     }/ t |/ dE    }0 |  j |0  t t t t d t d   t t t  t d t d    t t t d t d   t t dC t d   t t t  t d t d     t t d t d   t t t  t d t d      t d: t d      t
 dF     }1 t |1 dG    }2 |  j |2  t t t t t t d t d   t t t t  t d t d    t d t d    t t t t  t d t d    t dC t d     t d: t d    t d t d   t t t  t d t d      t
 dH     }3 t |3 dI    }4 |  j |4  t t t t t t  t d t d    t t t d t d   t t t t  t d t d    t d t d    t t t t  t d t d    t dC t d     t d: t d    t d t d     t
 dJ     }5 t |5 dK    }6 |  j |6  t t t t d t d   t t t t t t  t d t d    t d t d    t t d t d   t t t  t d t d      t d: t d      t
 dL     }7 t |7 dM    }8 |  j |8  t t t t d t d   t t t t t t  t d t d    t d t d    t t d t d   t t t  t d t d      t d: t d      t
 dN     }9 t |9 dO    }: |  j |:  t t t   }; t |; dP    }< |  j |<  |  S(Q   NR   i   R   R  R   R  c         S   s
   t  |   S(   N(   R  (   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  G  R%  c         S   s
   t  |   S(   N(   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  G  R%  c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  G  R%  c         S   s   t  | |   S(   N(   R.  (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  G  R%  c         S   sd   t  | t | t  | |   t t t | t  | t | t |  t  t d  |       |   S(   Ni(   RN   Rh   Rb  RT   RL   (   R  R   Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  H  R%  t   2Rg  i    c         S   s   t  | |   S(   N(   R  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  K  R%  c         S   s   t  | |  S(   N(   RT   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  L  R%  c         S   s   t  | t t d  |    S(   Ni(   R  RN   RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  O  R%  c         S   s   t  | |  S(   N(   RT   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  P  R%  c         S   s   t  | t t d  |    S(   Ni(   R  RN   RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  S  R%  c         S   s   t  | |  S(   N(   RT   (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  T  R%  c         S   sO   t  t t t | t t d  |   t  t |  t d    | |  |   S(   NiR  (   Rh   RT   RN   RL   RG  (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  X  R%  Ru  c         S   s   t  |  t t d  |   S(   Ni(   R  RN   RL   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  [  R%  c         S   s+   t  t |  t t |  t d    |  S(   NR  (   RT   RN   Rh   RH  RL   (   R   Ru  R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  \  R%  c         S   s   t  |  t t d  |   S(   Ni(   R  RN   RL   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  _  R%  c         S   s+   t  t | t t |   t d    |  S(   NR  (   RT   RN   Rh   RG  RL   (   R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  `  R%  c         S   s   t  |  |  S(   N(   R  (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  c  R%  c         S   s+   t  t |  t t |  t d    |  S(   NR  (   RT   RN   Rh   RK  RL   (   R   Ru  R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  d  R%  c         S   s   t  |  |  S(   N(   R  (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  g  R%  c         S   s+   t  t | t t |   t d    |  S(   NR  (   RT   RN   Rh   RL  RL   (   R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  h  R%  c         S   s   t  |  t t d  |   S(   Ni(   R  RN   RL   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  k  R%  c         S   s+   t  t | t t |  t d    |  S(   NR  (   RT   RN   Rh   RI  RL   (   R   Ru  R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  l  R%  c         S   s   t  |  t t d  |   S(   Ni(   R  RN   RL   (   R   Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  o  R%  c         S   s+   t  t | t t |   t d    |  S(   NR  (   RT   RN   Rh   RJ  RL   (   R   Ru  Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  p  R%  ic      	   S   s@   t  t t | t d   t t d  t |  t d      S(   NR  i(   R   RT   Rh   RL   RN   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  s  R%  c         S   sa   t  |  t t  t d  t | t d    t  t d  t  t |  t | t d       S(   Ni   i(   RN   RT   RL   Rh   RH  (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  t  R%  c      	   S   s@   t  t t | t d   t t d  t |  t d      S(   NR  i(   R   RT   Rh   RL   RN   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  w  R%  c         S   sa   t  |  t t  t d  t | t d    t  t d  t  t |  t | t d       S(   Ni   i(   RN   RT   RL   Rh   RG  (   R   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  x  R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  {  R%  c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  {  R%  c      
   S   s=   t  | t t | t  | t t |  |     t d    S(   Ni(   RN   Rh   RT   RJ  RL   (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$  |  R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c      
   S   s=   t  | t t | t  | t t |  |     t d    S(   Ni(   RN   Rh   RT   RI  RL   (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c      
   S   s=   t  | t t | t  | t t |  |     t d    S(   Ni(   RN   Rh   RT   RH  RL   (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c      
   S   s=   t  | t t | t  | t t |  |     t d    S(   Ni(   RN   Rh   RT   RG  RL   (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sU   t  | t  t t |  |   t t | t  | t t |  |     t d     S(   Ni(   RN   Rh   RG  RT   RH  RL   (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sU   t  | t  t t |  |   t t | t  | t t |  |     t d     S(   Ni(   RN   Rh   RH  RT   RG  RL   (   R  R   R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  Rq  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sR   t  | t t |  t  |  |   t t | t  | t t |  |     |   S(   N(   RN   Rh   RK  RT   RG  (   R  R   Rq  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sR   t  | t t |  t  |  |   t t | t  | t t |  |     |   S(   N(   RN   Rh   RL  RT   RH  (   R  R   Rq  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sR   t  | t t |  t  |  |   t t | t  | t t |  |     |   S(   N(   RN   Rh   RI  RT   RH  (   R  R   Rq  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  |  S(   N(   R   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sR   t  | t t |  t  |  |   t t | t  | t t |  |     |   S(   N(   RN   Rh   RJ  RT   RG  (   R  R   Rq  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  R  c         S   s   t  | |  |  S(   N(   R   (   R  Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | t t |  t | t  t d  t  |  |     t t | t  | t t |  |    t  | t t |  |     |   S(   Ni(   RN   Rh   RH  RT   RL   RG  (   R  R   R  Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |  |  S(   N(   R   (   R  Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sv   t  | t t |  t | t  |  |    t t | t  | t t |  |    t  | t t |  |     |   S(   N(   RN   Rh   RK  RT   RG  RH  (   R  R   R  Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |  |  S(   N(   R   (   R  Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | t t |  t | t  t d  t  |  |     t t | t  | t t |  |    t  | t t |  |     |   S(   Ni(   RN   Rh   RG  RT   RL   RH  (   R  R   R  Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |  |  S(   N(   R   (   R  Rq  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   sv   t  | t t |  t | t  |  |    t t | t  | t t |  |    t  | t t |  |     |   S(   N(   RN   Rh   RL  RT   RH  RG  (   R  R   R  Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t t t | |  t d    t t | |    t | t t | t t t |  t d   t t t |  |  t d     |   t | t t t | t | t t |  t | |      t t t |  |  t d    |    S(   NiR  i(	   R  Rg   R   RT   RL   RN   Rh   RH  RG  (   R  R   Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  t t t | |  t d    t t | |    t | t t | t t t |  t d   t t t |  |  t d     |   t | t t t | t | t t |  t | |      t t t |  |  t d    |    S(   NiR  i(	   R  Rg   R   RT   RL   RN   Rh   RG  RH  (   R  R   Rq  R  R   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   |  S(   N(    (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  (   R   R   R   RN   R   RL   Rh   RT   R  R  R   R   RM  R   R  R   R   R   R
   R	   R  t   z_R  (=   RN  R  R  R  R  R'  RO  R(  RP  RQ  RR  RS  RT  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  R  R  R  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _TrigSimplifyAuxC  s    	ffffffc         C   s   t  j t |    S(   N(   t   TrigSimplifyAux_replacerR   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRb    s    c         C   s
   t  |   S(   N(   R0   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Cancel  s    t	   Util_Partc           B   s   e  Z d    Z RS(   c         C   s   t  |  j d  } t |  j  d k r> t |  j d  } n |  j d } t | t t f  r t | t  r{ | | d St |  r | S| j | d S|  Sd  S(   Ni    i   i   (   R   R   R   R   R   R   RO   R;  (   R   R   R|  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    (   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s   c         C   s5   t  |  t  r" t | |   j   St | |   j   S(   N(   R   R   R  R   (   R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Part  s    c         C   s   t  |  |  S(   N(   RE   (   R  Rq  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   PolyLog  s    c         C   s9   y |  j  |  SWn! t k
 r4 t d  |  |  SXd  S(   NR  (   R,  t
   ValueErrorR^   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   t  |  t  S(   N(   R   Rl   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   IntegralFreeQ  s    c         C   s]  t  |   }  t  |  } t |  | d |  | d } |  d k rG | S|  d k rW d St |   d k  r t |   d k r t |  | |  St |  r t g  | j D] } t |  | |  ^ q   St |  r t |  | |  S| |  k rHt | |  rH| t | |  k rH| t | | d |  | d k rHt | | |  St |  | |  Sd  S(   Ni   i   i    (	   R   R  R  R  R   RT   R   R  R   (   R   Rg  R   Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s     %,Uc            ss   t  |   r |   k St |   r& t St |   rS t |  j d    rS t |   St    f d   |  j D  S(   Ni    c         3   s!   |  ] } t  |     Vq d  S(   N(   R  (   R   R   (   Rg  R   (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pys	   <genexpr>  s    (   R;  R`  R   RM  R   R   RQ  R   (   R   Rg  R   (    (   Rg  R   sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    
#
c         C   s
   t  |   S(   N(   R:   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   LogIntegral  s    c         C   s
   t  |   S(   N(   R8   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ExpIntegralEi
  s    c         C   s   t  |  |  j   S(   N(   R9   t   evalf(   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   ExpIntegralE  s    c         C   s
   t  |   S(   N(   R;   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SinIntegral  s    c         C   s
   t  |   S(   N(   R<   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CosIntegral  s    c         C   s
   t  |   S(   N(   R=   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   SinhIntegral  s    c         C   s
   t  |   S(   N(   R>   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CoshIntegral  s    t	   PolyGammac           B   s   e  Z e d     Z RS(   c         G   s5   t  |  d k r' t | d | d  St | d  S(   Ni   i    i   (   R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR     s    (   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s   c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   LogGamma#  s    t
   ProductLogc           B   s   e  Z e d     Z RS(   c         G   sA   t  |  d k r- t | d | d  j   St | d  j   S(   Ni   i   i    (   R   R   R  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR   '  s    (   R   R   R   R   (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  &  s   c         C   s
   t  |   S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   Factorial-  s    c          G   s
   t  |    S(   N(   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Zeta0  s    c         C   s   t  |  | |  S(   N(   RU   (   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   HypergeometricPFQ3  s    c         C   sl   t  |   }  t | d t t f  sY | d | d t | d  g } t |  |  j   St |  |  j   S(   s   
    This function perform summation using sympy's `Sum`.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import Sum_doit
    >>> from sympy.abc import x
    >>> Sum_doit(2*x + 2, [x, 0, 1.7])
    6

    i   i    i   (   R   R   R   RO   t   FloorRK   R   (   Rp   R   t   new_args(    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Sum_doit6  s
    !c         C   s~   y" t  |  |  }  t  | |  } Wn t  |   }  t  |  } n Xy t |  |  j   SWn t t f k
 ry |  | SXd  S(   N(   Rd   R*   t   as_exprRr   Rt   (   Rq  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  J  s    c         C   s   y" t  |  |  }  t  | |  } Wn t  |   }  t  |  } n Xy t |  |  j   SWn t t f k
 r{ t d  SXd  S(   Ni    (   Rd   R+   R  Rr   Rt   RL   (   Rq  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  W  s    c         C   s(   | d  k r t |   S| t |  |  S(   N(   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR
  d  s    
c         C   s
   t  |   S(   N(   RI   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Factori  s    c         C   s   i | |  6S(   N(    (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Rulel  s    c         G   sv   t  |  d k r6 t |  | d  r) |  S|  j   Sn  t  |  d k rl t |  | d  re |  j   S|  Sn  |  j   S(   Ni   i    i   (   R   R   Rc   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt
   Distributeo  s    
c          G   s,   t  |   }  t |    } | d k r( t St S(   Ni   (   RL   RJ   R   R   (   R   R5  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   CoprimeQ|  s
    c         C   s9   y t  |  |  SWn! t k
 r4 t d  |  |  SXd  S(   Nt   Discriminant(   Rs   Rn   R^   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         C   s   |  t  d  k  S(   Ni    (   RL   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Negative  s    c         C   s   t  |  |  S(   N(   R
  (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   Quotient  s    c         C   s   |  j  d   d    }  |  j  d   d    }  |  j  d   d    }  |  j  d   d    }  |  j  d	   d
    }  |  j  d   d    }  |  S(   s  
    This function processes trigonometric expressions such that all `cot` is
    rewritten in terms of `tan`, `sec` in terms of `cos`, `csc` in terms of `sin` and
    similarly for `coth`, `sech` and `csch`.

    Examples
    ========

    >>> from sympy.integrals.rubi.utility_function import process_trig
    >>> from sympy.abc import x
    >>> from sympy import coth, cot, csc
    >>> process_trig(x*cot(x))
    x/tan(x)
    >>> process_trig(coth(x)*csc(x))
    1/(sin(x)*tanh(x))

    c         S   s   t  |  t  S(   N(   R   R	   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   d t  |  j d  S(   Ni   i    (   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  t  S(   N(   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   d t  |  j d  S(   Ni   i    (   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  t  S(   N(   R   R
   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   d t  |  j d  S(   Ni   i    (   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  t  S(   N(   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   d t  |  j d  S(   Ni   i    (   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  t  S(   N(   R   R    (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   d t  |  j d  S(   Ni   i    (   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   t  |  t  S(   N(   R   R!   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  c         S   s   d t  |  j d  S(   Ni   i    (   R   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR$    R%  (   R   (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR*    s    c              sc  t    t  d   }  t |   } d   } t |  } d   } t |  } d   } t |  } d   } t |  }	 d   }
 t |
  } d   } t |  } d   } t |  } d	   } t |  } d
   } t |  } d   } t |  } d   } t |  } d   } t |  } d   } t |  } d   } t |  } d   } t |  } d   }  t |   }! d   }" t |"  }# d   }$ t |$  }% d   }& t |&  }' d   }( t |(  }) d   }* t |*  }+ d   }, t |,  }- d   }. t |.  }/ d   }0 t |0  }1 d   }2 t |2  }3 d   }4 t |4  }5 d   }6 t |6  }7 d   }8 t |8  }9 d   }: t |:  }; d   }< t |<  }= d    }> t |>  }? d!   }@ t |@  }A d"   }B t |B  }C d#   }D t |D  }E d$   }F t |F  }G d%   }H t |H  }I d&   }J t |J  }K d'   }L t |L  }M d(   }N t |N  }O d)   }P t |P  }Q d*   }R t |R  }S d+   }T t |T  }U d,   }V t |V  }W d-   }X t |X  }Y d.   }Z t |Z  }[ d/   }\ t |\  }] d0   }^ t |^  }_ d1   }` t |`  }a d2   }b t |b  }c d3   }d t |d  }e d4   }f t t t t t d5 t d6   t d7 t d8   t d9 t d6   t d: t d6   t t d; t d6   t d< t d8   t d= t d6   t t d> t d6   t d? t d8   t  | | |	 | | | | | | |  }g t	 |g |f  }h t t t
 t t d5 t d6   t d7 t d8   t d9 t d6   t d; t d6   t t d= t d6   t t t d@ t d6   t dA t d6   t  | | |	 | | | | | | |  }i    f dB   }j t	 |i |j  }k t t t
 t t d5 t d6   t d7 t d8   t d9 t d6   t d; t d6   t d< t d8   t t d= t d6   t t t d@ t d6   t dA t d6   t  | | | |	 | | | | | | |  }l    f dC   }m t	 |l |m  }n dD   }o t t t
 t t d; t d6   t t d= t d6   t
 t t d5 t d6   t t t dE t d6   t  | | | |	 | |! |# t |o  	 }p dF   }q t	 |p |q  }r dG   }s t t t t t d5 t d6   t d7 t d8   t d9 t d6   t d: t d6   t t t d; t d6   t d< t d8   t d= t d6   t  | | |	 | | | | | |% t |s   }t    f dH   }u t	 |t |u  }v t t t t t d; t d6   t d< t d8   t d= t d6   t t t d9 t d6   t d: t d6   t d5 t d8   t dA t d6   t d7 t d6    t  | | |	 | | | | | |% 
 }w dI   }x t	 |w |x  }y t t t t t d5 t d6   t d7 t d8   t d9 t d6   t d: t d6   t t  |	 | | | | |%  }z dJ   }{ t	 |z |{  }| t t t t d< t d8   t d; t d6   t t t d@ t d6   t d: t d8   t dA t d6   t d5 t d6   t dK t d6   t d7 t d6    t t  | | |	 | | | | | |) |%  }} dL   }~ t	 |} |~  } t t t dE t d6   t t t d< t d6   t t t t t d5 t d6    t d; t d6   t  | | |	 | | |-  } dM   } t	 | |  } t t t t t d; t d6   t t t t d5 t d6   t  | | |	 | |  } dN   } t	 | |  } t t t t t dO t d6   t t t d; t d6   t d= t d6   t t t d5 t d6   t  | | |	 | |/ |1 |  } dP   } t	 | |  } dQ   } t t t t t t d; t d6   t t  | | | |% |3  } t	 | |  } t t t t t t t t d; t d6   t t  |5  } dR   } t	 | |  } t t t t t t t t d; t d6   t t  |7  } dS   } t	 | |  } dT   } t t t d6  t t t t d; t d6   t  | | |9  } t	 | |  } dU   } t t t d6  t t t t d; t d6   t  | | |; |=  } t	 | |  } dV   } t t t t d= t d6   t t t t d; t d6   t  | | |! |? |A |C  } t	 | |  } dW   } t t t t d= t d6   t t t t d; t d6   t  | | |! |?  } t	 | |  } dX   } t t t t t d= t d6   t d5 t d6   t t t t d; t d6   t  | | |	 | |! |?  } t	 | |  } dY   } t t t t t d: t d6   t t d= t d6   t d5 t d6   t d7 t d8   t t t t d; t d6   t  | | |	 | | |E |G  } t	 | |  } dZ   } t t t t t d: t d6   t t t d@ t d6   t t d= t d6   t d5 t d6   t d7 t d8   t t t t d; t d6   t  | | |	 | | | |I |K 	 } t	 | |  } d[   } t t t t t d9 t d6   t d7 t d6   t t  | |	 |M |O  } t	 | |  } d\   } t t t t d= t d6   t t d9 t d6   t d7 t d6   t d< t d8   t t  | |	 |Q |O |? |S  } t	 | |  } d]   } t t t t d^ t d6   t d7 t d6   t t d9 t d6   t d; t d6   t d< t d8   t t  | | |	 |; |- |O |U  } t	 | |  } d_   } t t t t d= t d6   t t d^ t d6   t d7 t d6   t t d9 t d6   t d; t d6   t d< t d8   t t  | | |	 |W |- |O |Y |[ |U 
 } t	 | |  } d`   } t t t t d9 t d6   t d5 t d6   t d7 t d8   t t t d^ t d6   t d; t d6   t  | | |	 | | |-  } t	 | |  } da   } t t t t d9 t d6   t d? t d6   t d@ t d8   t d: t d6   t d5 t d8   t t d^ t d6   t d7 t d6   t t d9 t d6   t d; t d6   t d< t d8   t  | | |	 | | | | | |- |U  } t	 | |  } db   } t t t t t  |% |] |_ |a  } t	 | |  } t t t t t  |% |] |c  } dc   } t	 | |  } t t t t t d< t d6   t t  |e |%  } dd   } t	 | |  } t t t t t dE t d6   t  |e  } de   } t	 | |  } t t t t   } df   } t	 | |  } |h |k |n |r |v |y || | | | | | | | | | | | | | | | | | | | | | | | | | g  S(g   Nc         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         S   s   t  | |  | |  S(   N(   R   (   R   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRW    s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRX    s    c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRY    s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRZ    s    c         S   s   t  |  |  S(   N(   R   (   Rx  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR[    s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR\    s    c         S   s   t  |  |  S(   N(   R   (   R5  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR]    s    c         S   s   t  |  |  S(   N(   R   (   R{  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR^    s    c
   
      S   s>   t  | t  s t St t | | | | |  | |	 | | 	 |  S(   N(   R   RR   R   R   R   (
   Rx  R   R  R   R  Rq  R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR_    s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR`    s    c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRa    s    c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRb    s    c         S   s   t  |  |  S(   N(   R   (   Rq  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRc    s    c         S   sA   t  | t  s t St t | | | | |	 |  | |
 | | 
 |  S(   N(   R   RR   R   R   R   (   Rx  R   R  R   R  R   Rq  R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRd    s    c         S   s   t  | |   S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRe    s    c         S   s   t  |  t d   S(   Ni    (   R.  RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRf    s    c         S   s    t  |  t  s t St | |   S(   N(   R   RR   R   Rk  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRg    s    c         S   s#   t  | |  |  |  t d   S(   Ni   (   R  RL   (   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRh    s    c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRi    s    c         S   s   t  t t t t t  |   S(   N(   R?  R   R  R!  R   R
  (   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRj    s    c         S   s   t  |  t d  |  S(   Ni   (   R   RL   (   R+  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRk  
  s    c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRl    s    c         S   s   t  |  |  S(   N(   R   (   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRm    s    c            s   t  | t  s t S  f d   } t |  } t t t t t d t	 d   t
 t d t	 d   t  |  } t t | |  |  } t t t    |   S(   Nc            s1   t  t t | |   |  t |  t |     S(   N(   Rg   R   R   R   R/  (   R   Ru  R  Rq  R   (   R  (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt	   _cons_f_u  s    R   i   Ru  (   R   RR   R   R   R   R   R  R  R   RL   R  R   R   Rg   R   (   R  R   R   R  R  R  R  (    (   R  sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRn    s    Fc         S   s   t  | t  s t St t t | |  |  |  t |  t t |   t	 | |  t	 | |  t
 |  t | d  t t | |  | t |  t | |    S(   Ni(   R   RR   R   Rg   R   R   R   R   R   Rk  R   R.  R0  Rn  R   (   R   Rg  R  R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRo  !  s    Kc         S   s   t  | t  s t St t t t t |  |  t |  t	 t
 |   t | |  t |  |  t t | |  | t |  |    S(   N(   R   RR   R   Rg   R   R   R   R   R   R   R   Rk  R0  Rn  (   Rg  R  R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRp  '  s    ?c         S   s   t  |  t d   S(   Ni   (   R   RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRq  -  s    c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRr  1  s    c         S   s   t  |  t d   S(   Ni   (   R/  RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRs  5  s    c         S   s   t  t d  | |   S(   Ni    (   R.  RL   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRt  9  s    c         S   s   t  |  t | |    S(   N(   R  R  (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRu  =  s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRv  A  s    c         S   s   t  | |  |  S(   N(   R   (   R  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRw  E  s    c         S   s   t  t d  | | |   S(   Ni    (   R.  RL   (   R  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRx  I  s    c         S   s   t  | | | |   S(   N(   R   (   R  R  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f37M  s    c         S   s   t  t d  | | | |   S(   Ni    (   R.  RL   (   R  R  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f38Q  s    c         S   s   t  |  t d   S(   Ni   (   R   RL   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f39U  s    c         S   s
   t  |   S(   N(   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f40Y  s    c         S   s   t  | |  t d   S(   Ni   (   R   RL   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f41]  s    c         S   s   t  | |  t d   S(   Ni   (   R   RL   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f42a  s    c         S   s'   t  t d  | |  | t d   S(   Ni   i   (   R   RL   (   R  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f43e  s    c         S   s   t  | | |   S(   N(   R   (   R+  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f44i  s    c         S   s    t  t d  | t d  |   S(   Ni    i   (   R.  RL   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f45m  s    c         S   s+   t  t t | |   t | t d     S(   Ni(   R   Rg   R   RL   (   R  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f46q  s    c         S   s    t  | t  s t St |  |  S(   N(   R   RR   R   Rk  (   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f47u  s    c         S   s    t  | t  s t St |  |  S(   N(   R   RR   R   R  (   Rg  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f48{  s    c         S   sK   t  | t  s t St t | |  t t |  |  t d  t t d   S(   Nii   (   R   RR   R   R=  Rn  R   RL   R0  (   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f49  s    c         S   s2   t  | t  s t St t | |  t |  |   S(   N(   R   RR   R   R0  Rn  (   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f50  s    c         S   s   t  t |    S(   N(   R   R   (   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   cons_f51  s    c         S   s   | | | | } t  d  } | |  | |	 | | t | |
 | |
 |  | | | t | |  | |	 | | | | | | |
 t | | | | | d |  t | d |
   S(   NR   i   (   RR   R  R  R   (   Rx  R   R  R   R  R   R5  R{  R   R   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    R   i   R  i    R  Rx  R   R   R  R{  R5  R   Rq  c
   
         s  t  t t |	 |  t |	 |  t t | t d   t | | | |     t | | | | | | |  | | | | |	 |  | |  t  t |  t	 | | | | | | | |	 |  | | |     t
 | | | | | | | |	 |  | | | |    S(   Ni   (   R  Rg   R   R-  R|   Rh  RL   R   R  R  R  (
   Rx  R   R  R   R  Rq  R   R   R   R  (   R  t   Times(    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR|    s    c            s  t  t t |
 |  t |
 |  t t | t d   t | | |	 |     t | | | | |	 | | |  | | | | |
 |  | |  t  t |  t	 | | | | |	 | | | |
 |  | | |     t
 | | | | |	 | | | |
 |  | | | |    S(   Ni   (   R  Rg   R   R-  R|   Rh  RL   R   R  R  R  (   Rx  R   R  R   R  R   Rq  R   R   R   R  (   R  R%  (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR~    s    c
         S   s   t  | t  sJ t | | |  | | g |  oF t |	 |  oF | d k  rN t St | |  | |	 | | | | |  }
 t |
 t | | |   }
 t |
  r t	 St S(   Ni    (
   R   RR   R   R   R   R  R  R  R   R   (   R   Rg  R  R  R   R   R   R   R   R  Ru  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    J+R   c
         S   sh   t  t | |  | |	 | | | | |  t | | |   }
 |
 j g  |
 j D] } | | ^ qQ   S(   N(   R  R  R  R   R   (   R   Rg  R  R  R   R   R   R   R   R  Ru  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    Ac
      	   S   s~   t  | t  sG t | | | | |  | |	 | g |  oC t | |  rK t St | | | | |	 |  }
 t |
  rz t St S(   N(   R   RR   R   Rk  R   R  R   R   (   Rx  R   R  R   R  R   R   R   R   R  Rg  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    Gc
            sG   t  | | | | |	 |  }
 t | |  | | | | |
     S(   N(   R  R  (   Rx  R   R  R   R  R   R   R   R   R  Rg  (   R  R%  (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c
   
      S   s:   t  t | | |  | | |  | | | | |	 |  S(   N(   R  R=  (
   Rx  R   R  R  R   Rq  R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c      	   S   se   t  t | t d   t | |  | | | | | |  t | |  | | | | | | | |   S(   Ni   (   R  Rh  RL   R  R  (   Rx  R  R   R  R   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    R  c      	   S   s@   t  | | t | |	 |  | | | |
  | | |  | |  S(   N(   R  R=  (   Rx  R   R  R   R  R   Rq  R   R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c      
   S   s   t  | | | | |  t | | | t d  |  |  t d  | | t d  | | t d  |  t d  | |  S(   Ni   (   R  R   RL   (   R   R  R  R   R   R   R   R+  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c         S   s   t  | |  | |  r: t | |  | | | | | |  S| | |  | } t d  } t | |  | | | t |  | | | | t d  |  t | t d  |   t | | | | |  | | | Sd  S(   NR   ii   (   R   R  RR   R  R  RL   R   (   R   R  R   R   R   R  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s
    %R  c         S   s  t  | |  | | | |  rL t | | | | |  | | | | | |  S| | | | | } t | |  | | | | | |  }	 t t |	  |	 j g  |	 j D] }
 t | |
 |  ^ q   t | |	 |   }	 t | | |  | |  | | |	 Sd  S(   N(   R   R  R  R  R   R   R   R  (   R   R  R  R  R   R   R   R  t   tmp1t   tmp2R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    1'Qc         S   s   t  d  } t  d  } t | |  | | | | |  |  } t |  sL | St | | |  | | |  } t |  r t t |  t |  t d   r | S| Sd  S(   NR&  R'  i   (   RR   R  R   R  R   R-  RW  RL   (   R   R   R   R   R  R&  R'  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With15  s    $1c         S   s~   t  | | | | |  | t |  |  } t | |  | t |  | d |  t | | | |  | | | d |  S(   Ni    i   (   R  R   R  R   (   R   Rg  R  R   R   R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    .c         S   sa   t  | | | |  } t | |  | | | d |  t | | | |  | | | d |  S(   Ni    i   (   R  R  (   R   Rg  R  R   R   R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR    s    c      	   S   s   t  t | |  t d    } t t | |  t d    } | t d  | | | | | t d  | t d  | | | | | t d  S(   Ni   (   R  R  RL   R  (   R   R  R   R   R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With18   s      c         S   s~   t  d  } t t | |  |   } t t | |  |   } t | | | d d | | | | | t | d |   S(   NR   ii   i   (   RR   R  R  R  R  R   (   R   R  R   R   R   R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With19  s    c   
   
   S   s\  t  d  } t | |  } t t | |  | t | |    } t t | |  | t | |    }	 t t | | |  t d d | | | | | |	 | | | | d d | | | |	 | | | t | d | |   t d d | | | | | | |	 | | | | d d | | | | |	 | | t | d | |    S(   NR   iii   i   (	   RR   R  R  R  R  R  R  R  R   (
   R   R  R   R   R   R  R   R5  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With20  s
    &&c   
      S   s  t  d  } t | |  } t t | |  | t | |    } t t | |  | t | |    }	 t t | | t d   |	 t d  |  | |	 | | |	 t d  |  | |	 | | t t | | |  t	 t d  t d  | | | | | |	 | | | | t d  t d  | | | |	 | | | t
 | t d  | |   t	 t d  t d  | | | | | | |	 | | | | t d  t d  | | | | |	 | | t
 | t d  | |     S(   NR   i   ii   (   RR   R  R  R  R  R  R   RL   R  R  R   (
   R   R  R   R   R   R  R   R5  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With21  s
    ''c         S   s   t  d  } t t | |  |   }	 t t | |  |   }
 t | |	 d d | | | | |	 |	 |
 | | | d d | | |
 | |	 t | d |   S(   NR   iii   i   (   RR   R  R  R  R  R   (   R   R  R  R   R   R   R   R  R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With22  s    c
         S   s   t  d  }
 t t | | |   } t t | | |   } t | | d d |
 | | |  | | | | d d |
 |	 | | | | | |	 | | d d |
 | | | | t |
 d |   S(   NR   iii   i   (   RR   R  R  R  R  R   (   Rx  R   R  R  R   Rq  R   R   R   R  R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With23$  s    c         S   s   t  d  } t t | | |   } t t | | |   } t | | d d | |
 | | | | | |
 d d | | | |  | | | | d d | | | |	 | | | | | | d d | | | | | t | d |   S(   NR   iii   i   (   RR   R  R  R  R  R   (   Rx  R   R  R   R  R   Rq  R   R   R   R  R  R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With24+  s    c      
   S   s   t  d  } t t |  | |  | | | |  | | | |  t t | t | |  t d    t | | | t d     S(   NR  i   (   RR   R  R  R   R  R  RL   (   R  R  R   Rq  R   R   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With252  s    c      	   S   s   t  d  } t t |  | | | |  | | t d  | | |  | | t d  | | |  t t | t | |  t d    t | |    S(   NR  i   (   RR   R  R  RL   R   R  R  (   R  R  R   Rq  R   R   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With267  s    c   	   
   S   s   t  d  } t t t d  | | | |  t d  | | | | |  t d  | | | | |  t t | t t d  | | |  t d  t d    t | | |    S(   NR  i   i   (   RR   R  R  RL   R   R  R  (	   R   R  R  R   Rq  R   R   R+  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With27<  s    R+  c	   
   
   S   s   t  d  }	 t t t d  | | | | | |  t d  | | | |	 | |  t d  | | | |	 | |  t t |	 t t d  | | |  t d  t d    t | |    S(   NR  i   i   (   RR   R  R  RL   R   R  R  (
   R   R  R  R   Rq  R   R   R+  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With28A  s    c   	      S   so   t  | |  t d   } | | | t d  |  | | | | | | | t d  |  | | | | S(   Ni   (   R  RL   (	   R   R  R  R   R   R   R   R+  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With29F  s    c         S   s   t  t d  | | | t d  t d   } t | |  | t d  | |	 |  | |  } |  | | | d | | | | |  | | | d | | | | S(   Ni   i   (   R  RL   R  (   Rx  R   R  R   R  R   R5  R   R   R   R+  R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With30K  s    23c      	   S   ss   t  | |  } t d  } | t | |  | d |  t | | d t | |  t | d t | |    |  S(   NR   ii   (   R  RR   Rn  R  R  R   (   Rg  R   R   R|  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   With31Q  s    c         S   s   t  | |  |  S(   N(   R  (   Rg  R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement32X  s    c         S   s   t  | |  | | |   S(   N(   R  (   R   R   R   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement33\  s    c         S   s   t  t |  | |  | |  S(   N(   R  R  (   Rg  R   R   Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement34`  s    c         S   s   t  | |   S(   N(   R  (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   replacement35d  s    (   RT   RN   R   R   R   R  R  R   RL   R   R  R  R  R  R  R  R  R=  R   t   j_R  R  R  R  (   R  R  R  R  RW  R  RX  R  RY  R  RZ  R  R[  R  R\  R  R]  R  R^  R  R_  R  R`  R  Ra  R  Rb  R  Rc  R  Rd  R  Re  R  Rf  R  Rg  R  Rh  R  Ri  R  Rj  R  Rk  R  Rl  R  Rm  R  Rn  R  Ro  R  Rp  R  Rq  R  Rr  R  Rs  R  Rt  R  Ru  R  Rv  R  Rw  R  Rx  R  R  t   cons37R  t   cons38R  t   cons39R  t   cons40R  t   cons41R  t   cons42R  t   cons43R  t   cons44R  t   cons45R  t   cons46R   t   cons47R!  t   cons48R"  t   cons49R#  t   cons50R$  t   cons51R  R  R  R'  R|  RO  R(  R~  RP  R  RQ  R  RR  R  RS  R  RT  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.  R  R  R/  R  R  R0  R  R  R1  R  R  R2  R  R  R3  R  R  R4  R  R  R5  R  R  R6  R  R  R  R7  R  t	   pattern33R8  t   rule33t	   pattern34R9  t   rule34t	   pattern35R:  t   rule35(    (   R  R%  sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _ExpandIntegrand  s   																										
																														{			Z			C?	?		C	F	Y	S	p			O	{					%"	6	/		c          C   s  d   }  t  |   } d   } t  |  } d   } t  |  } d   } t  |  } d   } t  |  }	 d   }
 t  |
  } d   } t  |  } d   } t  |  } t t t t t d	 t d
   t t d t d
   t  | | |  } d   } t	 | |  } t t t t d t d
   t d	 t d
   t t d t d
   t d t d
   t  | | |	  } d   } t	 | |  } t t t t d t d
   t d	 t d
   t t d t d
   t d t d
   t t d t d
   t d t d
   t  | | |	 |  } d   } t	 | |  } t t t
 t   } d   } t	 | |  } | | | | g S(   Nc         S   s   t  | |   S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  j  s    c         S   s   t  | |  t d   S(   Ni    (   R   RL   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR  o  s    c         S   s
   t  |   S(   N(   R   (   R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRW  t  s    c         S   s   t  |  |  S(   N(   R   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRX  y  s    c         S   s   t  |  | t d   S(   Ni    (   R0  RL   (   R  R  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRY  ~  s    c         S   s   t  |  |  S(   N(   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRZ    s    c         S   s   t  |  | |  S(   N(   R   (   R  R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR[    s    c         S   s   t  |  | t d   S(   Ni    (   R0  RL   (   R  Rq  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR\    s    R   i   Rg  c         S   s_   t  t | t d   t | | t d  | |  |  t | | t d  |  | |   S(   Ni   i(   R  R/  RL   R  (   Rg  R   R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRy    s    R  R  c         S   s   t  | | |  | | |  S(   N(   R  (   R  Rg  R   R   R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyRz    s    Rq  Ru  c         S   s/   t  | | |  | | | | | | |  S(   N(   R  (   R  Rg  R   Rq  R   Ru  R  R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR|    s    c         S   s,   t  t t |   t t |     |  |   S(   N(   R  Rg   R   R   R   (   R   R   (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyR~    s    (   R   R   R   R  R  R   RL   R  R  R   R  (   R  R  R  R  RW  R  RX  R  RY  R  RZ  R  R[  R  R\  R  R  Ry  R  R  Rz  R  R'  R|  RO  R(  R~  RP  (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   _RemoveContentAuxi  s:    								L	n			N(  R   t   sympy.externalR    R   t   sympy.utilities.decoratorR   t#   sympy.functions.elementary.integersR   R   t   sympy.functionsR   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   t%   sympy.functions.elementary.hyperbolicR   R   R   R   R   R   R   R   R   R   R    R!   t(   sympy.functions.elementary.trigonometricR"   R#   R$   R%   R&   R'   R(   t   sympy.polys.polytoolsR)   R*   R+   R,   R-   t   sympy.simplify.simplifyR.   R/   R0   R1   t   sympy.core.sympifyR2   t   sympy.utilities.iterablesR3   t'   sympy.functions.special.error_functionsR4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   t$   sympy.functions.elementary.complexesR?   R@   RA   t   sympy.core.exprtoolsRB   R)  RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   Rp   R6  Rq   Rr   Rs   Rt   Ru   t   sympy.functions.special.hyperRv   t*   sympy.functions.special.elliptic_integralsRw   Rx   Ry   Rz   t   randomR{   t   sympy.logic.boolalgR|   R}   R   R   R   R   R   R   R   R   R   R   R   R   t   matchpy.expressions.functionsR   R   R   t   sympy.integrals.rubi.symbolR   R   R   t!   sympy.utilities.matchpy_connectorR   t   registerR   R  R  R  R  R  R  R  R  R  R  R  R  t   h_t   i_R;  t   k_t   l_R  R  R  R  R  R  R  R  R  R  R  R  R   R   R  R   Rx  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  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/  R0  R   R1  t   DeferR2  R3  R  R7  R8  R9  R;  R5  R>  R<  R?  R@  RA  RB  RC  RD  RE  RF  RG  RH  RI  RJ  RK  RL  RM  RN  RO  RP  RQ  RR  RS  RT  RU  RV  RW  R  RY  R  RZ  R[  R\  R]  R^  R_  Ra  Rc  Rd  Rh  Ri  Rj  Rk  Rt  Ry  Rn  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  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)  R*  R  R  R,  R-  R.  R/  R0  R1  R3  R4  R6  R7  R8  R9  R:  R;  R<  R=  R   RB  RC  RD  R  RG  R2  RH  RK  RM  RN  RP  RR  RQ  RT  RU  RV  RW  RX  RY  RZ  R\  R]  R`  R_  Ra  Re  Rf  Rg  R  Rm  Rn  Ro  Rp  Rq  Rr  Rs  Rt  Ru  Rv  Rw  Rx  Ry  Rz  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  R  R  R  RS  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  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&  R4  R  R6  R7  R8  R<  R=  R?  R  R@  R  R
  RC  RD  RE  RF  RG  RH  RI  RJ  RK  Rb  RL  R  RU  RA  R  R  R  R  R  R9  R  Rb  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*  RQ  RR  t   IntHideR=  t   NullR  R  R  R  R  R  RV  (    (    (    sD   lib/python2.7/site-packages/sympy/integrals/rubi/utility_function.pyt   <module>   s   pR4("L C
@v				
				
		
						
																																																																																																																	)		%	
		T	e							 								#											
			"														&							
					&	*+	;	$				 																															
		
																																									
	"					(			 	%													'														$				(		
	
																		1						-				
							S	2		$+	/						$				
		&					5				#												?								7										L				7	2				@			&										 v)~						
																							 	;					