
    gt                        d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZ d dlm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 d dl 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-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl m9Z9 d dl:m;Z;m<Z<m=Z= d dl>m?Z? d dlm@Z@ d dlAmBZBmCZCmDZD eDd             ZEeDd             ZFeDd             ZGeDd             ZHeDd             ZIeDd             ZJeDd             ZKd  ZLd! ZMeDd"             ZNeDd#             ZOeDd$             ZPeDd%             ZQd& ZRd' ZSd( ZTd) ZUd* ZVd+ ZWd, ZXd- ZYeDd.             ZZeDd/             Z[d0 Z\d1 Z]d2 Z^d3 Z_d4 Z`d5 Zad6 Zbd7 Zcd8 ZdeCd9             Zed: Zfd; ZgeDd<             Zhd= Zid> Zjd? Zkd@ ZleDdA             ZmeDdB             ZndC ZodD ZpeCdE             ZqdF ZrdG ZsdH ZtdI ZudJS )K    )refine)AccumBounds)Product)Sum)
expand_log)EFloatIRationalnanoopizoo)Pow)S)Symbolsymbols)adjoint	conjugateresign	transpose)LambertWexp	exp_polarlog)coshsinhtanh)sqrt)cossintan)MatrixSymbol)gcd)O)simplify)global_parameters)match_real_imagxyz)	unchanged)ArgumentIndexError)raisesXFAIL_both_exp_powc            
         t           j        r+t          t          t                              t
          u sJ n*t          t          t                              t          u sJ t          dd          } t          t                    t          u sJ t          t                    t          u sJ t          t                     dk    sJ t          d          dk    sJ t          d          t          k    sJ t          dt          z             
                                t          j        t          dz
  fk    sJ t          dt          z             
                                t          j        t          dz   fk    sJ t          t          t          z  dz            t          k    sJ t          t          t          z            dk    sJ t          t          t          z  t          dd          z            t           k    sJ t          dt          z  t          z            dk    sJ t!          t          t          t          z  dz  | z                      dk    sJ t!          t          t          t          z  dz  | t          j        z   z                      dk    sJ t!          t          t          t          z  dz  | t          dd	          z   z                      t          k    sJ t!          t          t          t          z  dz  | t          dd	          z   z                      t           k    sJ t          t%          t                              t          k    sJ t          dt%          t                    z            t          dz  k    sJ t          t          t%          t                    z            t          t          z  k    sJ t          d
t%          t                    z  t          t%          t&                    z  z             t          d
z  t&          t          z  z  k    sJ t          t          t%          t                    z            t          t          z  k    sJ t          t)          t                    t%          t                    z            t          k    sJ t          dt%          t                    z  t          t          z  z             t          t          t          z            t          dz  z  k    sJ t          d	t%          t                    z  t%          t&                    z  dt%          t                    z  z             t          dz  t          d	t%          t                    z  t%          t&                    z            z  k    sJ t          t           d          j        du sJ t          t          d          j        du sJ d S )NkTintegerr                  Fevaluate)r(   
exp_is_powtyper   r+   r   r   r   r   r   as_base_expr   Exp1r   r
   r   r   Halfr   r,   r"   	is_finite)r4   s    m/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/functions/elementary/tests/test_exponential.pytest_exp_valuesrF      sS   # #CFF||s"""""CFF||s""""sD!!!As88s????r77b====s88q====q66Q;;;;q66Q;;;;rAv;;""$$Q7777q1u::!!##A6666r!tAv;;!r!t99????r!tHQNN"##r))))qtAv;;!#bd1fQh--  A%%%%#bd1fa!&j)**++r1111#bd1fa(1a..012233q8888#bd1fa(1a..012233r9999s1vv;;!qQx==AqD    r#a&&y>>QU""""r#a&&y1SVV8#$$214444qQx==AqD    s1vvc!ff}""""qQx"Q$3r!t99q!t#33333qQxA3q66)**adS3q66#a&&5I5I.IIIIIsU###-5555rE""",555555    c            	         t          t          t          z  t          dd          z            t          t          t          z  dz            k    sJ t          t          t          z  t          dd          z            t          t          t          z  t          dd          z            k    sJ t          t          t          z  t          dd          z            t          t          t          z  t          dd          z            k    sJ t          t          t          z  t          d	d
          z            t          t           t          z  d
z            k    sJ t          t          t          z  t          dd          z            t          t          t          z  t          dd          z            z
  dk    sJ t          t          t          z  t          dd
          z            t          t          t          z  t          dd          z            z  t          t          t          z  t          dd          z            z  dk    sJ t          dt          t          z  t          dd          z  z
            t          dt          t          z  t          d
d          z  z             k    sJ t          t	          d
          t          t          z  t          dd          z  z             d
t          t          t          z  t          dd          z            z  k    sJ t          dd          } t          dd          }t          |t          z  t          z            dk    sJ t          |dz   t          z  t          z            dk    sJ t          dd| z  z   t          z  t          z  dz            t          k    sJ t          dd| z  z   t          z  t          z  dz            t           k    sJ d S )N	   r;   .               ir:   %      ir            r7   r9   r<      inTr5   e)evenr8   )r   r
   r   r   r   r   )rW   rX   s     rE   test_exp_periodrZ   H   s   qtHQNN"##s1R46{{2222qtHR$$$%%QrT(1a..-@)A)AAAAAqtHROO#$$AbD"a,@(A(AAAAAqtHS!$$$%%aRU1W5555qtHROO#$$s1R4a0@0@+@'A'AAQFFFFqtHROO#$$s1R4Q+?'@'@@3qtHUXZ\L]L]G]C^C^^bcccccq1R4Q''((CAbD!Q4G0G,H,HHHHHs1vv"Xb!__,,--S2hr1oo9M5N5N1NNNNNsD!!!AsAqs2v;;!Aqy|""""AaC{2~a  A%%%%QqS!|Bq !!aR''''''rG   c                  6   t          dd          } t          t          |                     | k    sJ t          t          |                     | k    sJ t          j        sXt          |                                           t          k    sJ t          |                                           t          k    sJ t          dd          }t          t          t                              t          k    sJ t          t          |                    |k    sJ d S )Nr+   Trealr,   polar)r   r   r   r(   r?   inverser   r-   r+   r,   s     rE   test_exp_logrb   \   s    sAs1vv;;!s1vv;;!' '1vv~~3&&&&1vv~~3&&&&s$Ay||!!!!s1vv;;!rG   c                  4   t          t          t          d                    dt          z   z  t          t          d                    t          z  z
            } |                                 dk    sJ t          t          t
          z             t          t                    t          t
                    z  k    sJ t          t          t
          z                                             t          t                    t          t
                    z  k    sJ d S Nr9   r7   )r   r   r   r+   expandr,   rX   s    rE   test_exp_expandrg   k   s    Ca!e$s8A;;'7'7'99::A88::????q1u::QA&&&&q1u::#a&&Q-//////rG   c                     t          t                                                    t          t          fk    sJ t          dt          z                                            t          dt          z  fk    sJ t          t          t          z                                            t          t          t          z  fk    sJ t          t                                                     t          t           fk    sJ t          t          z  t          t                    k    sJ t          dt          z  z  t          dt          z            k    sJ t          t          t          z  z  t          t          t          z            k    sJ t          t                    j        t          j        u sJ t          t                    j         t          k    sJ d S Nr9   )r   r+   rA   r   r,   baser   rB    rG   rE   test_exp__as_base_exprl   s   sE   q66Aq6))))qs88!!a1X----qs88!!a1X----r77  QG++++ a43q66>>>>qs8s1Q3xxqs8s1Q3xxq66;!&    q66:??????rG   c                     t          t          t          z            t          k    sJ t	          t          t          t
          z                      t          u sJ t	          t          t           t
          z                      t          u sJ t          t          t          z  t
          z            t          k    sJ t          t                    t          u sJ t          ddd          } t          |           j        J d S )Nr+   TF)extended_realfinite)	r   r
   r,   r   r   r   r   r   
is_complexr+   s    rE   test_exp_infinityrr      s    qs88s????#ad))#####qbe**$$$$qs2v;;#s88s????s$u555Aq66$$$$$rG   c                     t          d          } t          dt          |           z  d          }|                    | dz  t          dz            |k    sJ |                    | dz  d          |k    sJ | dz                      | dz  t                    t          t          dd          z  k    sJ t          t          |           t          | dz            z                                 t          t          |                     t                    t          t          t          | dz                      z  k    sJ t          |                               t          t                    t          | z  k    sJ t          dd          } t          d| z                                t          d	| z            t                    t          t          dd	          z  k    sJ t          d| z  d	z                                 t          d| z            t                    t          t          dd          z  t          d	          z  k    sJ t          dd
          } t          dt          |           z                                | dz  t                    t          t          dd          z  k    sJ t          t          | t          z                                           t          d          dd| t          z   z  z  k    sJ t          t          | t          z                                           t          t                    t          t          | t          z                       k    sJ t          t          | t          z                                           t          d          dd| dz   z  z  k    sJ t          d                              t          t                    t          d          k    sJ d S )Nr+   r:   Fr=   r9   rL   Tr\   rN   positive)	r   r   r   subsr,   r   r   r   r"   )r+   rX   s     rE   test_exp_subsrw      s   sA	Qs1vvX	&	&	&A66!Q$1""""66!Q$??aqD;;q!tQ1hq!nn#44444s1vvAqD		!""''CFFQ771s3q!t99~~;MMMMMq66;;q!1$$$$$Aqs88==QqS1%%HQNN):::::qsQw<<S1XXq))QA->Q-GGGGGd###AqQx==adA&&!Xa^^*;;;;;s1q5zz??Q''1q1q5z?::::s1q5zz??S))SQU__<<<<s1q5zz??1%%QQZ8888q66;;q##a&&((((((rG   c                      t          t          t                              t          t          t                              k    sJ d S N)r   r   r+   rk   rG   rE   test_exp_adjointrz      s1    3q66??c'!**oo------rG   c                      t          t          t                              t          t          t                              k    sJ d S ry   )r   r   r+   rk   rG   rE   test_exp_conjugater|      s5    SVVIaLL 1 1111111rG   c                      t          t          t                              t          t          t                              k    sJ d S ry   )r   r   r+   rk   rG   rE   test_exp_transposer~      s5    SVVIaLL 1 1111111rG   c                     t          t                                        t                    t	          t                    t          t                    z   k    sJ t          t          t          z                                t                    t          t                    t          t          t                    z  z   k    sJ t          d                              t                    t	          d          t          d          z   k    sJ t          d                              t                    t	          d          t          d          z   k    sJ t          d                              t                    t	          d          t          d          z   k    sJ t          t                                        t                    dt          t          dz            z   dt          t          dz            z
  z  k    sJ t          t          t          z  dz                                t                    t          d          dz  t          d          t          z  dz  z   k    sJ t          t          t          z  dz                                t                    t          j        t          d          t          z  dz  z   k    sJ t          j        sJt          t          t          t                     z                                t"                    t           t          z  k    sJ t          t          t                    t          t                     z                                t"                    t          t          t                     z  t           t          t                    z  fv sJ t          t          t          t                              t           z                                t"                    t          t                    t           z  k    sJ t%          dd          } t'          t          t          t          z  dz            dz  | z  | dt(          f                              t                                                    t-          dd	          t          dz  d	z  z   k    sJ t'          t          t          t          z  dz            dz  | z  | dt(          f                              t                                                    ddt          d          dt          z   z  dz  z
  z  k    sJ t'          t          t          t          z  dz            dz  | z  | dt(          f                              t                                                                                    dt          z  t          d          dt          z  z   z  k    sJ d S )
Nr7   r9   r;   r:   rW   Tr5   r   rL   )r   r+   rewriter"   r   r   r
   r!   r   r   r    r   rC   r(   r?   r   r,   r   r   r   r   doitr   cancelrW   s    rE   test_exp_rewriter      s+   q66>>#$q''DGG"33333qs88C  CFFQs1vvX$55555q66>>#$q''DGG"33333q66>>#$q''DGG"33333q66>>#$q''DGG"33333q66>>$AQqS		MAQqS		M#BBBBBr!tAv;;t$$Q	DGGAIaK(?????r!tAv;;t$$a1(<<<<<' <1SVV8}}$$S))QT11113q66#a&&=!!))#..1c!ff9aQi2HHHHH3s1vv;;q=!!))#..#a&&!);;;;sD!!!ABqDFA!Aq":..66t<<AACCxPQST~~XYZ[X[\]X]G]]]]]BqDFA!Aq":..66t<<AACCq!dSTggWX[\W\o^_N_J_G`````RT!VQ"Q2J//77==BBDDKKMMsDGGacM"# # # # # #rG   c                     t          t                                        t                    dk    sJ t          dt          z                                 t                    t          d          k    sJ t          dt          z  dz   t          dz   z                                t                    t          d          k    sJ d S )Nr7   r9   r:   )r   r+   as_leading_termrk   rG   rE   test_exp_leading_termr      s    q66!!!$$))))q1u::%%a((CFF2222!aAaC !!11!44A>>>>>>rG   c                     t          d          } t          |                               d|           | k    sJ t          |                               d|           | dz  dz  k    sJ t          |                               d|           | dz  dz  k    sJ t          |                               d|           t          j        u sJ d S )Nr+   r7   r:      r;      r8   )r   r   taylor_termr   Zerorq   s    rE   test_exp_taylor_termr      s    Aq66a##q((((q66a##q!tAv----q66a##q!tBw....q66b!$$......rG   c                  z    t          ddd          } t          |                               t                    sJ d S )NAr9   )r$   r   has)r   s    rE   test_exp_MatrixSymbolr      s5    S!QAq66::c??rG   c                  V     t          d           t          t           fd           d S )Nr+   c                  H    t                                         d          S ri   )r   fdiffrq   s   rE   <lambda>z test_exp_fdiff.<locals>.<lambda>       s1vv||A rG   r   r0   r/   rq   s   @rE   test_exp_fdiffr      /    sA
666677777rG   c                     t          t                    t          u sJ t          t                    t          u sJ t          t                     t          u sJ t          t                    t          u sJ t          t                     t          u sJ t          d          t          u sJ t          d          dk    sJ t          d          t          t
          z  k    sJ t          t                    dk    sJ t          t                                                     dt          t
          z  z   k    sJ t          t           t
                    sJ t          t
                                                     t          t
                    t          t
          z  z   k    sJ t          t           d          sJ t          d          t          d          t          t
          z  z   k    sJ t          t                    t          t
          z  dz  k    sJ t          t                     t           t
          z  dz  k    sJ t          dt          z            t          t
          z  dz  t          d          z   k    sJ t          dt          z                                            t           t
          z  dz  t          d          z   k    sJ t          t          t          z            t          u sJ t          t           t          z            t          u sJ t          dd          t          u sJ t          dd          t          u sJ t          t          d                     dz  dk    sJ t          t          j                  t          d           k    sJ t          d	          j        t           u sJ t          d
          j        t           u sJ d S )Nr   r7   r8   r<   ir9   rL   r:   r   rK   )r   r   r   r   r
   r   r   re   r.   r   r   rC   funcrk   rG   rE   test_log_valuesr      s   s88s????r77b====s88r>>>>s88s????t99q66S====q66Q;;;;r77ad????q66Q;;;;r77>>q1R4x''''S"s88??B!B$....S"s88s2ww2~%%%%q66QrT!Vr77qbeAgr!t99"QR(((((s1u::1"R%'CGG"33333r!t99????s1u::q!99q!99Aw<<"""""qv;;3q66'!!!!s88=Cv;;s""""""rG   c                     t          dd          \  } }t          dd          }t          t          j                  dk    sJ t          t
                    dk    sJ t          dd	t
          z  z
            d
k    sJ t          t          d           t          j        t
          z  z             t          d           t          j        fk    sJ t          | |t
          z  z             | |fk    sJ t          | t
          z  |t
          z  z             d| |z   fk    sJ t          | |z   t
          z            d| |z   fk    sJ t          t          dd          |z  t
          z            dk    sJ t          dd|z  z
            dk    sJ t          t          d          dd	t
          z  z
  z            dk    sJ d S )Nx,yTr\   i	imaginary)r7   r   )r   r7   r:   rL   )r:   rR   r   )NNr7   r9   )	r   r   r)   r   Oner
   r    rC   r   )r+   r,   r   s      rE   test_match_real_imagr     s   5t$$$DAqsd###A15!!V++++1''''1qs7##w....DGG8afQh.//T!WWHaf3EEEEE1qs7##1v----1Q319%%!QU3333AE19%%!QU33338B??1,Q.//<????1qs7##|3333477A!G,--======rG   c                  H   t          dd          D ]} t          | d          dk    r`t          t          | t          z  t
          z  dz                                t                              | t          z  t
          z  dz  k    sJ t          dd          D ]b} t          t          | t          z  t
          z  dz                                t                              | t          z  t
          z  dz  k    sJ ct          t          j	        t          t          d          z  dz  z
            t           t
          z  dz  k    sJ t          t          dd          t          t          d          z  dz  z             t          t
          z  t          dd          z  k    sJ t          t          d           dz  t          t          d          z  dz  z
            t           t
          z  t          dd	          z  k    sJ t          t          d           dz  t          t          j	        z  z
            t           t
          z  t          d
d          z  k    sJ t          t          dd	          t          d
          d	z  z   t          t          t          d
          dz  t          d
d          z             z  z
            t           t
          z  t          dd
          z  k    sJ t          t          t          d
d          t          d
          dz  z
            t          t          dd	          t          d
          d	z  z   z  z             t          t
          z  t          dd          z  k    sJ t          t          t          d          d	z  t          j	        z              t          t          t          j	        t          d          d	z  z
            z  z             t          t
          z  t          dd          z  k    sJ t          t          d           d	z  t          d          d	z  z
  t          t          d           d	z  t          d          d	z  z   z  z             t           t
          z  t          dd          z  k    sJ t          dt          t          d          z  z             t          d          t          t
          z  t          dd          z  z   k    sJ t          d
d
t          z  z             t          d
t          d          z            t          t
          z  d	z  z   k    sJ t          t          d                    t          dt          d          z            t          t
          z  dz  z   k    sJ t          t          d           t          d          z   t          t          d          z  z
  t          t          d          z  z
            t          d	          t          t
          z  t          dd          z  z
  k    sJ t          t          ddt          d          z  z
             t          t          ddt          d          z  z             z  z
            t          dt          d          z            t          t
          z  t          d
d          z  z
  k    sJ t          dt          t          dt          d          z
            z  t          dt          d          z             z  z             t          dt          t          d          dz             z            t          t
          z  dz  z   k    sJ t          t          t
          t          dd          z            t          t          t
          t          dd          z            z  z             t          t
          z  t          dd          z  k    sJ t          t          t
          t          dd
          z            t          t          t
          t          dd
          z            z  z             t          t
          z  t          dd
          z  k    sJ t          d
dt          z   z  t          d          z            t          d
          t          t
          z  d	z  z   k    sJ t          t          d          t          d           dz   t          d          t          z  z
  t          z
  z            t          d	          t          t
          z  t          dd          z  z
  k    sJ t          t          d           dt          t          d          z  z
  z            t          dt          d          z            t          t
          z  t          dd          z  z   k    sJ t          t          d          t          z  t          ddt          d          z  z
             t          t          dt          d          z  dz             z  z
  z            t          d          t          t
          z  dz  z
  k    sJ dt          d          z   dz  dz
  dt          d          z  z
  }t          |t          t          d          z  z
            t          t          d                    t          t
          z  dz  z
  k    sJ t          t          |t          |z  z             s#t          ||t          z  z             t          u sJ t          t          t          d          dt          t          d          t          z             z  z
  dz            sJ t          t          t          dt          d
          z
            dt          z   z            sJ d S )Nir   r7   i
   r:   r9   r8   r;   rL   r   rQ   rN   rS      ii  )ranger%   r   r   r
   r   r   r    r   rC   r   r!   r"   r.   r   )rW   zeros     rE   test_log_exactr      s	   3^^ B Bq"::??s1Q3r6"9~~--d3344!Br	AAAAr2 	B 	BAs1Q3r6"9~~--d3344!Br	AAAAA	B qv$q''	!#$$2a////xA4771,--2hq!nn1DDDDDQxzAd1ggIaK'((QBrE(1a..,@@@@@QxzAafH$%%!Bx1~~)=====xAa*QtDGGAIA4N/O/O-OOPPUVTVWYTYZbcdfgZhZhThhhhhtHQNNT!WWQY.//!Xa^^d1ggai5O2PPQQUVWYUYZbcdfhZiZiUiiiiiT!WWQY'(((1T!&477192D-E-E+EEFF!B$xXY[\~~J]]]]]QxzDGGAI%DGG8A:Q	+A(BBCCr"uXVXZ\M]M]G]]]]]rAd1ggI~#a&&1R4A+>">>>>>q1Q3w<<3qay>>AbDF22222tCyy>>S477^^ad1f44444Qx$q''!Ad1ggI-$q''	9::c!ffqtHUVXZOOG[>[[[[[Qqay[!!!Ad1QtAwwY;&7&7$7788C$q''	NNQrTRZ[\^_R`R`M`<`````q1T!DGG)__$T!DGG)__4455QtDGGaK?P?P=P9Q9QTUVXTXYZTZ9ZZZZZs2hq"oo%&&3r(1b///A+B+B)BBCCqtHUVXZOOG[[[[[s2hq!nn$%%#b!Q.?*@*@(@@AAQrT(SUWX//EYYYYYq!a%ya !!SVVad1f_4444tAwwa1tAwwqy014566#a&&1R4QRTVCW:WWWWWQxQtAwwY'((C$q''	NNQrT(1a..=P,PPPPPtAwwqy4Ad1ggI...4$q''	A3F3F1FFGHHCPQFFUVWYUYZ[U[O[[[[QK!a!DGG)+DtaQi  CQLL1R46$99999S$4-((ECtAv,>,>#,E,E,E,E S4771T$q''!)__#44t;<<<<<S$qay//1q512222222rG   c                     t          dd          dk    sJ t          dd          dk    sJ t          dd          t          d          t          d          z  k    sJ t          dd          dt          d          t          d          z  z   k    sJ t          dd          dt          d          t          d          z  z   k    sJ t          dd          dk    sJ t          dd          dk    sJ t          dd          t          u sJ t          dd          t          u sJ t          t          dd          d	          t          t          dd                    t          d	          z  k    sJ t          t          dd          t          dd                    t          d           t          d          z  dz   k    sJ t          t          dd          t          dd                    t          t          dd                    t          t          dd                    z  k    sJ t          t          dd          d          t          d           t          d          z  dz   k    sJ d S )
Nr7   r9   r   r:   r   rQ      rL   r   )r   r   r   r   rk   rG   rE   test_log_baser   J  s0   q!99>>>>q!99>>>>q!99As1vv%%%%q!99CFF3q66M)))))q!99CFF3q66M)))))tQ<<1tQ<<1q!99q!99x1~~r""c(1a..&9&9#b''&AAAAAx1~~x1~~..3q66'#a&&.12DDDDDx1~~x1~~..HQNNCA///0 0 0 0 x1~~q!!c!ffWSVV^a%7777777rG   c                  @   t          t          t          d                    t          t                    k    sJ t          t          t                              t          k    sJ t          t          t          d                    t          t                    k    sJ t          t          t          z            t          t                    t          t                    z   k    sJ t          t          t          z                                            t          t                    t          t                    z
  k    sJ t          t          t          z                                d          t          t                    t          t                    z
  k    sJ t          t          t          z                                            t          t          t                    z  k    sJ t          t          t          z                                d          t          t          t                    z  k    sJ t          t          d          t          t                    t          d          z  k    sJ t          t
          d          dt          d          z  k    sJ t          dd          \  } }t          dd          }t          | dz            dt          |           z  k    sJ t          | dz                                            dt          |           z  k    sJ t          t          dz                                            dt          t                    z  k    sJ t          | |z            |t          |           z  k    sJ t          t          |                     | k    sJ t          | |z            t          |           t          |          z   k    sJ t          | |z                                            t          |           t          |          z   k    sJ t          t          d	                     t          t          d	                    t          t          z  z   k    sJ t          t          |                      | t          t          z  z   k    sJ t          t          t                                                               t          t          t          z  z   k    sJ t          t          |                                                     |t          t          z  z   k    sJ t          t          t          z            t          t          t                    z  k    sJ t          t          d
z            dz                                  dt          t                    z  dz  k    sJ t          | d
z            dz                                  dt          |           z  dz  k    sJ t          t                     j        t           u r*t          t                     j        d         t           k    sJ t          |            j        t           u r t          |            j        d         |  k    sJ d S )Nr7   Tforcer9   zp,qrt   rr\   r:   rR   r8   rL   r   )r   r+   r   r,   re   r   r   r   r    r
   r   r   args)pqr   s      rE   test_log_symbolicr   \  s   q#a&&>>SVV####s1vv;;!q#a&&>>SVV####qs88s1vvA&&&&qs88??AQ////qs88???&&#a&&3q66/9999q!t993q66))))q!t99$''1SVV83333q!99As1vv%%%%q!99#a&&    54(((DAqsAq!t99#a&&    q!t993q66))))q!t993q66))))q!t99#a&&    s1vv;;!qs88s1vvA&&&&qs88??AQ////Qx==CQLL1R4/////Aw<<1qt8####Aw<<  A"H,,,,Aw<<  A"H,,,,q!t99#a&&    2JJN""$$3q66	!33332JJN""$$3q66	!3333r77<33r77<?qb#8#8#8#8r77<33r77<?qb#8#8#8#8#8#8rG   c            	         t          t          dt          z  t          z                      dk    sJ t          t          dt          z  t          z                      t          t          z  k    sJ t          t          t          t          z  t	          dd          z                      t          t          z  t	          dd          z  k    sJ t          t          t          t          z  t	          dd          z                      t          t          z  t	          dd          z  k    sJ t          t          dt          z                      dt          z  d	t          z  t          z  z   k    sJ d S )
Nr;   r   rR      r:   rM   rN   rO   r9   )r   r   r
   r   r   rk   rG   rE   test_log_expr     s   s1Q3r6{{q    s2a47||"$$$$s1R4Q'(())QrT(1a..-@@@@@s1R4Q'(())QrT(2q//-AAAAAs2a4yy>>RTAaCF]******rG   c                     t          dd          } t          dd          }t          t          fD ]} |t                    j        J  |t                    j        J  ||          j        J  ||          j        J  ||           j        du sJ  ||           j        du sJ  |t          t                              j        du sJ  |t          t                              j        du sJ t          t          t          t          z  d          j        dk    sJ t          t          dt          z  t          z  d          j        dk    sJ t          t          t          t          z  dz  d          j        dk    sJ t          t          t          t          z  d	z  d          j        J t          d
d          j        sJ t          dd          }t          ddd          }t          dd          } t          ddd          }t          |          j        J t          |          j        du sJ t          t          | z            j        J t          t          |z            j        du sJ t          d
d          j        du sJ t          t          t          z  d	z  d          j        du sJ t          t          t          z  | z  d          j        du sJ d S )Nr   Tr\   r   r   Fr=   r9   r:   r   a)	algebraican)r   nonzero)rationalrn)r   r   )r   r   r   r+   is_realis_imaginaryr   is_extended_realr   r   r
   r   is_algebraic)r   r   rX   r   r   r   s         rE   test_exp_assumptionsr     s   sAsd###A)^ . .qtt|###qtt (((qtt|###qtt (((qtt|t####qtt E))))qAxx(D0000qAxx$-----q!B$'''4====q!A#b&5)))6%????q!B$q&5)))6$>>>>q!B$q&5)))6>>>q5!!!....sd###A	d	3	3	3BsT"""A	tT	2	2	2Bq66&&&r775((((r!t99!)))r"u::"e++++q5!!!.$6666qtAv&&&3t;;;;qtAv&&&3t;;;;;;rG   c                      t          t          dd                    t          t          t          dz            k    sJ d S )Nr7   r9   )r   r   r   rk   rG   rE   test_exp_AccumBoundsr     s9    {1a  !![AqD%9%9999999rG   c                     t          dd          } t          dd          }t          dd          }t          ddd	          }t          |          j        d
u sJ t          |          j        du sJ t          d          dk    sJ t          dd
          j        sJ t          d|z             j        sJ t          |           j        J t          |          j        d
u sJ t          d          j        du sJ t          t          |           dz             j        sJ t          dd
          j        sJ t          dd
          j        d
u sJ t          d|z             j        sJ d S )Nr   Trt   rW   negativer-   )r   r+   )infiniteextended_positiveFr9   r   r7   r=   g      ?*   )	r   r   is_positiveis_extended_positiveis_zerois_negativer   r   is_rational)r   rW   r-   r+   s       rE   test_log_assumptionsr     s   d###Ad###A$Add;;;Aq66&&&&q66&$....q66A::::q5!!!))))q1u::q66>!!!q66>U""""s884''''s1vvz??&&&&q5!!!....rE"""/58888q1u::!!!!!!rG   c                  .   t           t          t          t                               k    sJ t          t                     t          t          t          t                                         k    sJ t          t                     t          t          t          t                                         k    sJ dt          t          t                     t          t          t                               z             z  } | j        j        t          u sJ dt          t          t                     t          t          t          t                                         z             z  } | j        j        t          u sJ t          t          t                               } | j        t          u sJ t           j        t          usJ t          t          t          t                                         t          t                     k    sJ | t           k    sJ d S )Nr7   )r+   r   hashrj   r   rf   s    rE   test_log_hashingr     sh   CFF77d3s1vv;;''''''q66SSVV%%%%%%	#c!ffs3q66{{"
#
##A6;#	#c!ffs3s1vv;;'''
(
((A6;#CFFA6S====6CFFQ''''666666rG   c                  J    t          t          d                    dk    sJ d S rd   )r   r   rk   rG   rE   test_log_signr     s%    A<<1rG   c                  z   t          dt          z                                 d          t          d          dz  t          t          z  dz  z   k    sJ t          dt	          d          z
                                d          t          t	          d          dz
            t          t          z  z   k    sJ d S )Nr7   T)complexr9   r;   )r   r
   re   r   r    rk   rG   rE   test_log_expand_complexr     s    q1u::T**c!ffQh2a.?????q477{""4"00CQ!4D4Dqt4KKKKKKKrG   c                      t          d          t          d          z  dz
                                  } |                     t          d                    sJ d S )Nr:   r9   r7   z0.58496250072115618145373)r   evalf
epsilon_eqr	   )values    rE   test_log_apply_evalfr     sQ    VVCFF]Q%%''EE"=>>???????rG   c                  
   t          d          } t          dt          z   t          dz  z                                 t          d          t          k    sJ t          dt          z                                t          d          t          t                    t          d          z   k    sJ t          dt          z                                t          d          t          t                    t          d          z   k    sJ t          dt          z                                t          d|           | t          d          z   t          t
          z  z   k    sJ t          dt          z                                t          d|           | t          d          z   t          t
          z  z
  k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          d          t          t                    t          d          z   t          t
          z  z
  k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          d          t          t                    t          d          z   t          t
          z  z
  k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          d          t          t                    t          d          z   k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          d          t          t                    t          d          z   dt          z  t
          z  z
  k    sJ t          dt          z   t          t          dz  z  z
  t          t          dz  z  z                                 t          d          t           t
          z  k    sJ t          dt          z   t          t          dz  z  z
  t          t          dz  z  z                                 t          d          t           t
          z  k    sJ t          ddt          z
  z                                t          d          t          t
          z  k    sJ t          ddt          z
  z                                t          d          t          t
          z  k    sJ d S )	Nr   r7   r9   )cdirr8   r   )r   logxr:   )r   r   r+   r   r
   r   r   s    rE   test_log_leading_termr     s   sA q1uq!t|,,QQ,771<<<<qs88##AA#..#a&&3q66/AAAAqs88##AB#//3q66CFF?BBBBr!t99$$QQQ$771s1vv:";LLLLLr!t99$$QRa$88AAJ2<MMMMMr!tq1uadl"##33AA3>>#a&&3q66/TUVXTXBXXXXXr!tq1uadl"##33AB3??3q66CPQFF?UVWYUYCYYYYYqsa!eQT\!""22112==Q#a&&PPPPqsa!eQT\!""22122>>#a&&3q66/TUVWTWXZTZBZZZZZrAv!Q$1a4'((888CCr"uLLLLrAv!Q$1a4'((888DD2MMMMr1q5z??**11*552====r1q5z??**12*66!B$>>>>>>rG   c                  J   t          d          } t          dt          z                                t          d|  d          | k    sJ t          dt          z                                t          d|  d          | dt          z  t
          z  z   k    sJ t          t          dz
                                t          dd t                    t          t
          z  t          z
  t          dz  dz  z
  t          dz  dz  z
  t          t          dz            z   k    sJ t          t          dz
                                t          dd t                     t           t
          z  t          z
  t          dz  dz  z
  t          dz  dz  z
  t          t          dz            z   k    sJ t          t          t          z  t          t          dz  z  z   dz
                                t          dd d          t          t
          z  t          t          z  z
  t          dz  dz  z   t          t          dz            z   k    sJ t          t          t          z  t          t          dz  z  z   dz
                                t          dd d          t           t
          z  t          t          z  z
  t          dz  dz  z   t          t          dz            z   k    sJ t          t          t          dz  z  t          t          dz  z  z   dz
                                t          dd d          t          t
          z  t          t          dz  z  z
  t          t          dz            z   k    sJ t          t          t          dz  z  t          t          dz  z  z   dz
                                t          dd d          t          t
          z  t          t          dz  z  z
  t          t          dz            z   k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          dd d          t          d          t          t                    z   t          t          d          dz  t          dz  z
  z  z   t          dz  ddt          z  dz  z   z  z   t          t          dz            z   k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          dd d          dt          z  t
          z  t          d          z   t          t                    z   t          t          d           dz  t          dz  z   z  z
  t          dz  ddt          z  dz  z   z  z   t          t          dz            z   k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          dd d          t           t
          z  t          d          z   t          t                    z   t          t          d           dz  t          dz  z   z  z   t          dz  ddt          z  dz  z   z  z   t          t          dz            z   k    sJ t          dt          z  dt          z
  t          dz  z  z                                 t          dd d          t           t
          z  t          d          z   t          t                    z   t          t          d          dz  t          dz  z
  z  z
  t          dz  ddt          z  dz  z   z  z   t          t          dz            z   k    sJ t          t          t           t          dz  z  dz
            t          t           t          dz  z  dz
            z  dz
                                t          dd d          t           t
          z  t          t          d          dz             z   t          t          dz  z  ddt          d          z  dz  z   z  z   t          t          dz            z   k    sJ t          ddt          z
  z                                t          dd d          t          t
          z  t          z   t          dz  dz  z   t          t          dz            z   k    sJ t          ddt          z
  z                                t          dd d          t          t
          z  t          z   t          dz  dz  z   t          t          dz            z   k    sJ d S )	Nr   r7   r;   )r   r   r8   r9   r:   r   )	r   r   r+   _eval_nseriesr
   r   r&   r   r    r   s    rE   test_log_nseriesr     s   sAqs88!!!QaRa!88A====qs88!!!QaRb!99Q1RZGGGGq1u::##Aq$22adQhAa6G!Q$q&6PSTUVXYUYSZSZ6ZZZZZq1u::##Aq$33r"uqy1a467IAqDQRF7RUVWXZ[W[U\U\7\\\\\qsQq!tV|a  ..q!T1==2!aQRdSTfATWXYZ\]Y]W^W^A^^^^^qsQq!tV|a  ..q!T2>>1"R%!A#+PQSTPTUVPVBVYZ[\^_[_Y`Y`B`````qAv!Q$"##11!Qa@@AbD1QPQT6MTUVWYZVZT[T[D[[[[[qAv!Q$"##11!QbAAQrTAaQRdF]UVWXZ[W[U\U\E\\\\\qsa!eQT\!""00AtQ??3q66CPQFF?qttAv!|D!tR!A#a%Z(D)+,QT77D3 3 3 3 3qsa!eQT\!""00AtR@@BqDGcRSffDTFFE1a!A#E!"ArAaCEz!2E356q!tWWE= = = = =r!tq1uadl"##11!Qa@@QBrECPQFFNUXYZU[U[D[!uQw1}E1b1Q3q5j)E*,-adGGE4 4 4 4 4r!tq1uadl"##11!QbAAaRUSQRVV^VYZ[V\V\E\qttAv!|F!tR!A#a%Z(F)+,QT77F3 3 3 3 3tQBq!tGaK  qbAgk!2!22Q677EEaDRSTTYZXZ[]X]Q!YAvrAd1ggIaK/0Y134QT77Y; ; ; ; ;r1q5z??((AtQ771R4!8ad1f;LqQRTUQUww;VVVVVr1q5z??((AtR88AbD1Hq!tAv<MPQRSUVRVPWPW<WWWWWWWrG   c                  &   t          dt          z             } t          t          t          t          dz  dz             z             }|                     t          t          t
          z  d          ddt          dz  z  z  ddt          dz  z  z  z
  dt          z  z   t          t          z  dz  z   t          t          t          z            z
  t          t          dz  t          t
          t          z  f          z   k    sJ |                     t          t           t
          z  d          ddt          dz  z  z  ddt          dz  z  z  z
  dt          z  z   t          t          z  dz  z
  t          t           t          z            z
  t          t          dz  t          t
           t          z  f          z   k    sJ |                    t          t          t
          z  d          ddt          dz  z  z  t          t          z  dz  z   t          d          z   t          t          t          z            z
  t          t          dz  t          t
          t          z  f          z   k    sJ |                    t          t           t
          z  d          ddt          dz  z  z  t          t          z  dz  z
  t          d          z
  t          t           t          z            z   t          t          dz  t          t
           t          z  f          z   k    sJ d S )Nr7   r9   r;   )x0rW   r:   r   r8   )r   r+   r    seriesr
   r   r   r&   )expr1expr2s     rE   test_log_seriesr     sy    AJJEDANN"##E<<ada<((AqAvJAadF,Cac,IbDF-1XX-!b'Ar!t9---. . . . .<<qbeq<))Q!Q$Z!Qq!tV*-Dqs-JbDF.!AYY.1r7QAJ//.0 0 0 0 0<<ada<((AqAvJ2a,?#a&&,H!HH-R1bd)$$-% % % % %<<qbeq<))R1a4[1R46-ACFF-J1II.!b'As1u:&&.' ' ' ' ' ' 'rG   c            	         t          dd          } t          | t          d          t          d          z  z            }|                                t          d          t          d          z  t          |           z  k    sJ t          dd          \  }}}t          |||z   z                                d          t          |          t          ||z             z   k    sJ t          t          |d	z            t          ||z            z                                            t          d	t          |          z  t          |          z  d	t          |          z  t          |          z  z             t          t          |          t          |          z  t          |          t          |          z  z             t          d	          z   t          t          |          t          |          z   t          |          z            t          d	          z   fv sJ t          |t          |d	z            z                                d
          t          |          t          |d	z            z  k    sJ t          |t          |d	z            z                                            d	t          |          d	z  z  k    sJ t          d          \  }}t          ||z                                d          t          |          t          |          z   k    sJ t          ||z                                d          |t          |          z  k    sJ t          t	          |                                        d          |k    sJ t          d                                          d	t          d          z  t          d	          z   k    sJ d S )NwTrt   rL   r:   x,y,zF)mulr9   )deepr   r   rK   )r   r   re   r   r   )r   rX   r+   r,   r-   s        rE   test_log_expandr   %  s6   sT"""AAAs1vvA88::QAQ/////g---GAq!q!a%y>>  U ++s1vvAE

/BBBBBs1a4yyQqS!""))++Ac!ffHSVVO	#a&&Q5 1 1c!ffSVVmc!ffSVVm;<<s1vvESVVc!ff_c!ff$%%A.00 0 0 0 0 q#ad))|###//3q66#ad))3CCCCCq#ad))|##%%3q661944445>>DAqqs88???&&#a&&3q66/9999q!t99$''1SVV83333s1vv;;D))Q....
 v;;1SVV8c!ff#4444444rG   c                  :   t          dd          \  } }}t          | ||z   z            | |z   z                      dd          |t          |           z  |t          ||z             z  z   |t          |           z  z   |t          ||z             z  z   k    sJ d S )Nr   Trt   )r   r   )r   r   re   r*   s      rE   test_log_expand_failr   ;  s    g---GAq!1q5	NNAE"**t*>>!C	E E Cs1q5zz\Cc!ffHC%'(QU|C4 4 4 4 4 4 4rG   c            	         t          dd          } t          | dz                                            dt          |           z  k    sJ t          t          | dt          d          z   z                      dt          d          z   t          |           z  k    sJ t          d          }t          t	          |                                                    t          |          dz  k    sJ t          t          |t          d          dz
  z                      t          d          dz
  t          |          z  k    sJ t          |dz                                            t          |           k    sJ t          || | dz   z  z                                            | t          |          z  | dz   z  k    sJ d S )Nr+   Trt   r9   r-   r7   r8   )r   r   re   r   r    )r+   r-   s     rE   test_log_simplifyr   B  s   sT"""Aq!t993q66))))c!a#a&&j/**++CFF
CFF/BBBBBsAtAww<<  CFF1H,,,,c!c!ffqj/**++A
CFF/BBBBBq2w<<  SVVG++++q1ac7|##%%3q661q5)9999999rG   c                     t          t          dt                              t          dd          k    sJ t          t          dt                              t          t           d          k    sJ t          t          dt                              t          j        k    sJ t          t          dt                              t          t           t                    k    sJ t          t          t           d                    t          j        k    sJ t          t          t           t                              t          j        k    sJ d S )Nr7   r   r8   )r   r   r   r   r   NaNrk   rG   rE   test_log_AccumBoundsr   N  s   {1a  !![A%6%66666{1a  !!["a%8%88888{2q!!""ae++++{1b!!""k2#r&:&:::::{B3""##qu,,,,{B3##$$------rG   c                  n   t          d          } t          t          d          t          t                    k    sJ t          t          dd          t          t                    k    sJ t          d          dk    sJ t          t                    dk    sJ t          dt          z            dk    sJ t          dt	          d          z            t	          d          k    sJ t          t	          d           dz            t	          d           k    sJ t          d	t	          d
          z            d
t	          d
          z  k    sJ t          t          t                    dz            t          j        k    sJ t          t                    t          u sJ t          dd          t           u sJ t          dd          t           u sJ t          t           dz  d          t           t          z  dz  k    sJ t          dt          z  d          dk    sJ t          dt          d          z  d          dk    sJ t          dt	          d          z            t	          d          k    sJ t          t           dz            t          t          z  dz  k    sJ t          t          dt          z                       t          k    sJ t          t          dz                                t                    dt          t          dz            z  t          z  dt          t          dz            z   z  k    sJ t          t          |                               t                    t          t          |           t          z  dt          t          |           z   z  k    sJ t          t          d                                        d                              t          dd          d          sJ t!          t          dd                                                                        t          d                    sJ t          d          j        du sJ t          dd          j        sJ t          dd          }t          |d          j        sJ t          ||dz   z  t	          |          z            |t	          |          z  k    sJ t          |dz
  d          j        J t          | dt          j        z  z
  d          j        du sJ t          t          j        dd          j        du sJ t          t'          dd          dd          j        sJ t          ddd          j        du sJ t          ddd          j        du sJ t          dd          j        sJ t          ddd          }t          |          j        du sJ t          |          j        du sJ t          dd          }t          |          j        du sJ d S )Nr4   r   Fr=   r7   r8   d   r9   Q   r:   r   r      z 0.701338383413663009202120278965gG^Z9z-0.834310366631110r   Trt   r   ina)r   r   rW   r   )r   r   r+   r   r   r    r   rC   r   r   r
   r   diffr   r   r	   r   r   rB   r   r   r   )r4   r   r   rW   s       rE   test_lambertwr  W  s   sAAq>>Xa[[((((Aq5)))Xa[[8888A;;!A;;!BqD>>RCCL!!SXX----SVVGAI3q66'))))Bs1vvI!CFF(****DGGAI!&((((B<<2Aq>>bS    Ar??rc!!!!RCE21"R%'))))BqD"####Bs2wwJ##r))))Ac!ffHQ''''RCE??ad1f$$$$CAJJ1$$$$AqD>>q!!Qx1~~%5a%7Xad^^9K%LLLLLAq>>q!!Xa^^A%5q8Aq>>7I%JJJJJDGG""2&&110"55u> > > > >hq"oo$$&&11%8L2M2MNNNNNB<<5((((A&&&....sT"""AA&&&....A!HSVVO$$#a&&0000AEE***2:::QB16ME222:eCCCCAFB///75@@@@HR$$b5999AAAACe,,,4====BE***2e;;;;A&&&3333	dd	3	3	3BB<<$----A;;%''''sT"""AA;;%''''''rG   c            
      X   t          d          } | j        du sJ | j        dusJ dddt          d          z
  z  z
  }|j        dusJ dt          t          t          t	          d                              t          t	          d                    z            z   }|j        dusJ d S )Nr8   FTr7   ir   r9   )r   is_comparabler   r   r   
is_nonzero)rX   e2e3s      rE   test_issue_5673r    s    A?e####=$$$$	
QCJJ	B>%%%%	c#hs1vv&&''Q(8(8899	9B=$$$$$$rG   c                  V     t          d           t          t           fd           d S )Nr+   c                  H    t                                         d          S ri   )r   r   rq   s   rE   r   z test_log_fdiff.<locals>.<lambda>  r   rG   r   rq   s   @rE   test_log_fdiffr    r   rG   c                     t          d          } t          |                               d|           | k    sJ t          |                               d|           | dz   dz  k    sJ t          |                               d|           | dz  dz  k    sJ t          |                               d|           t          j        u sJ d S )Nr+   r   r7   r9   r;   rL   r8   )r   r   r   r   r   rq   s    rE   test_log_taylor_termr    s    Aq66a##q((((q66a##1uQw....q66a##q!tAv----q66b!$$......rG   c                     t          dd          \  } }}t          | |z                                             t          | |z             k    sJ t          | |z   |z                                             t          | |z   |z             k    sJ t          t          t          z                                             t          t                    t          t                    z  k    sJ t          t          t          z   t
          z                                             t          t                    t          t                    z  t          t
                    z  k    sJ d S )NzA,B,CFcommutative)r   r   re   r+   r,   r-   )r   BCs      rE   test_exp_expand_NCr    s   g5111GAq!q1u::#a!e**,,,,q1uqy>>  ""c!a%!)nn4444q1u::#a&&Q-////q1uqy>>  ""c!ffSVVmCFF&:::::::rG   c                  2   t          dd          } t          t                                                    t          t                    dfk    sJ t          t                                                     dt          t                    fk    sJ t          dt          z                                            dt          dt          z            fk    sJ t          d                                          dt          d          fk    sJ t          |                                           dt          |            fk    sJ t          |                                            t          |            dfk    sJ t          t           t          z                                            dt          t          t          z            fk    sJ t          t           | z                                            dt          t          | z            fk    sJ t          |                                            t          |            dfk    sJ t          dd	          }t          |                                           t          |           dfk    sJ d S )
NrW   Tr   r7   r   r9   r   Fr  )r   r   r+   as_numer_denomr
   )rW   r   s     rE   test_as_numer_denomr    s   d###Aq66  ""s1vvqk1111r77!!##3q66{2222r!t99##%%!S1XX6666r77!!##3q66{2222q66  ""q#qb''l2222r77!!##QB|3333r!t99##%%!S1XX6666r!t99##%%!S1XX6666r77!!##QB|3333'''Ar77!!##QB|333333rG   c                  6   t          dd          \  } }t          t          t          dz                      dk    sJ t          t          d                    dk    sJ t          t          ddt          z  z                       t	          d          k    sJ t          t          d	z                                            t          t          d	z            k    sJ t          t          t                              t          k    sJ t          | |z                                            t          |           t          |          z   k    sJ t          | t          z                                            t          t          |           z  k    sJ t          d          j        dk    sJ t          d
t          z  t          z                                d          
                                d         dk    sJ t          d          j        du sJ d S )Nzx yTr^   r;   r7   r   r9   r:   r   g      ?rL   r   )r   absr   r
   r   rW   r   r-   re   r   as_real_imagr   ra   s     rE   
test_polarr    s   5%%%DAqy1~~!####y||!!!!yQqS!!""c!ff,,,,QrT??)AbD//1111y||!!!!qs88??AQ////q!t993q66))))Q<<q     c"fQh!!A!&&4466q9Q>>>>Q<<#t++++++rG   c            	         t          d          } t          d          \  }}}}t          t          | |z  |d|f|d|f                    }|                                t	          t          | |z            |d|f|d|f          k    sJ d S )Nr   zm n i jr   )r   r   r   re   r   )r   mrW   r   jexprs         rE   test_exp_summationr    s    A##JAq!Qs1Q3Aq	Aq!9--..D;;==GC!HHq!Qi!QCCCCCCCCrG   c            	         ddl m} m} t          ddd          \  }}t          dd          \  }}t          dd	          }t          d
          }t	          t          ||z  |d| f                    }t          |          |k    sJ |                                t          |t	          |          z  |d| f          k    sJ t	          t          ||z  ||z  z  |d| f|d|f                    }t          |          |k    sJ |                                t          |t	          |          z  |t	          |          z  z   |d| f|d|f          k    sJ t	          t          d| ddf                    }t          |          |k    sJ |                                |k    sJ |                    d          t          t	          d          | ddf          k    sJ t	          t          t          ||z            |d| f                    }|                                t          ||z  |d| f          k    sJ t	          t          t          ||z            |d| f                    }|                                |k    sJ |                    d          t          ||z  |d| f          k    sJ t	          t          |dz  t          |          z  |d| f|d|f                    }|                                t          dt	          |          z  t	          |          z   |d| f|d|f          k    sJ d S )Nr   rW   r  i,jTru   r6   r   rt   r-   r\   r   r7   r   r;   r   r9   )	sympy.abcrW   r  r   r   r   r'   re   r   r   r  )	rW   r  r   r  r+   r,   r-   r   r  s	            rE   test_log_productr%    s*   54666DAq54(((DAq$AAwq!taAY''((DD>>T!!!!;;==C#a&&1a)444444wq!tAqDy1a)aAY7788DD>>T!!!!;;==C#a&&1SVV8 3aAYAq	JJJJJJwrAq!9%%&&DD>>T!!!!;;==D    ;;T;""c#b''Aq!9&=&=====ws1Q3xx!Q++,,D;;==C!aAY//////ws1Q3xx!Q++,,D;;==D    ;;T;""c!A#1ay&9&99999wq!tCFF{Q1I1ay99::D;;==C#a&&3q66 1Aq!9q!QiHHHHHHHHrG   c                     ddl m} m} t          ddd          \  }}t          dd          \  }}t	          t          t          ||z  |d| f                              t          |t          |          z  |d| f          k    sJ t	          t          t          ||z  ||z  z  |d| f|d|f                              t          |t          |          z  |t          |          z  z   |d| f|d|f          k    sJ d S )	Nr   r!  r"  Tr#  r   rt   r7   )r$  rW   r  r   r'   r   r   r   )rW   r  r   r  r+   r,   s         rE    test_log_product_simplify_to_sumr'    s    54666DAq54(((DAqC1q!Qi001122c!CFF(Q1I6N6NNNNNC1QT	Aq!9q!Qi@@AABB#a&&1SVV8#aAYAq	::; ; ; ; ; ;rG   c                     t          t          t          dd                    t          t          t          d                    k    sJ t          t          t          dd                    t          t          t          d                    k    sJ t	          dd          } t          t          |           t          d                    }t          t          |           t          d                    }t          t          |           t          d          d          }t          t          |           t          d          d          }t          t          ||                    t          t          ||                    k    sJ t          t          ||                    t          t          ||                    k    sJ d S )Nr   Fr=   r,   Trt   rL   )r'   r   r+   r   r   r   )r,   l1b1l2b2s        rE   test_issue_8866r-    sb   C2...//8C2JJ3G3GGGGGc!R%00011ZAr

5K5KKKKKsT"""A	SVVSWW		B	SVVSVV		B	SVVSWWu	-	-	-B	SVVSVVe	,	,	,BCBKK  HSR[[$9$99999c"bkk""jR&=&=======rG   c                     t          d          t          d          z  dz
                      d          t          d          t          d          z  k    sJ t          d          t          d          z                      d          t          d          t          d          z  dz   k    sJ t          d          t          d          z                      d          dt          d	          t          d          z  z   k    sJ t          d          t          d           t          d
          z   z                      d          dk    sJ t          t          d          d          t          d          dt          d          z  z   k    sJ t          t          d          t          d          z  d          t          d          t          d          z  dz   k    sJ t          t          d          t          d	          z  t          d          z   d          ddt          d          z  t          d	          z  z   t          d          z   k    sJ t          t          d          t          d	          z  t          d          z   d          t          d          t          d          z   t          d	          dt          d          z  z   t          d	          z  z   k    sJ d S )NrK   r:   r9   T)factorr   rU   r7   rL   r      rN   F-            )r   re   r   rk   rG   rE   test_log_expand_factorr5    s{   GGCFFNQ&&d&33s1vvc!ff}DDDDGGCFFN""$"//3q66#a&&=13DDDDDGGCFFN""$"//1s1vvc!ff}3DDDDDFFSWWHs2ww&'//t/<<AAAAc"ggd+++s1vv#a&&/@@@@@c"ggc!ffnU333s1vvc!ff}q7HHHHHc"ggc!ffns2ww.u===	Ac!ffHSVVOc"gg%& & & &c"ggc!ffns2ww.t<<<ARCFFQs1vvX-s1vv556 6 6 6 6 6rG   c                  Z    t          ddd          } t          |           j        du sJ d S )NrW   Tr#  )r   r   is_nonnegativer   s    rE   test_issue_9116r8    s6    sT4000Aq66 D((((((rG   c            	      N
   t          t          t          t          dt          z                      z                                t                    t
          j        k    sJ t          t          t          t          dt          z                      z                                t                    t
          j        k    sJ t          t          dt          z                                          t                    t
          j        k    sJ t          t          dt          z                                          t                    t
          j        k    sJ t          t          dt          z            dz                                 t                    t          dt          d                    k    sJ t          t          t          t          dt          z            dz             z                                t                    dk    sJ t          t          dt          z            dz
                                t                    t
          j        k    sJ t          t          t          t          dt          z            dz
            z                                t                    t
          j        k    sJ t          t          dt          z            dz                                 t                    t          t           t          d                    k    sJ t          t          t          t          dt          z            dz             z                                t                    t          dd          k    sJ t          t          dt          z            dz                                t                    t          t           d          k    sJ t          t          t          t          dt          z            dz            z                                t                    t          dd          k    sJ t          t          dt          z            dz                                t                    t          t           t                    k    sJ t          dt          z  t          t          dt          z            dz            z                                t                    t          dt                    k    sJ d S )Nr7   r9   r   r:   )r   r+   r   r!   r   r   r   r#   r   r   r"   rk   rG   rE   test_issue_18473r:    s   qS1XX//22ae;;;;qS1XX//22ae;;;;s1Q3xx==((++qu4444s1Q3xx==((++qu4444s1Q3xx!|,,Q//;q#a&&3I3IIIIIqS1XX\"""##33A66!;;;;s1Q3xx!|,,Q//158888qS1XX\"""##33A66!%????s1Q3xx!|,,Q//;sCFF3K3KKKKKqS1XX\"""##33A66+a:K:KKKKKs1Q3xx{++A..+rc12E2EEEEEqS1XXq[!!!""22155Q9J9JJJJJs1Q3xx{++A..+rc22F2FFFFFqsCAaC!$$%&&66q99[B=O=OOOOOOOrG   N)vsympy.assumptions.refiner   !sympy.calculus.accumulationboundsr   sympy.concrete.productsr   sympy.concrete.summationsr   sympy.core.functionr   sympy.core.numbersr   r	   r
   r   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   r   r   r   r   &sympy.functions.elementary.exponentialr   r   r   r   %sympy.functions.elementary.hyperbolicr   r   r   (sympy.functions.elementary.miscellaneousr    (sympy.functions.elementary.trigonometricr!   r"   r#   "sympy.matrices.expressions.matexprr$   sympy.polys.polytoolsr%   sympy.series.orderr&   sympy.simplify.simplifyr'   sympy.core.parametersr(   r)   r$  r+   r,   r-   sympy.core.exprr.   r/   sympy.testing.pytestr0   r1   r2   rF   rZ   rb   rg   rl   rr   rw   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-  r5  r8  r:  rk   rG   rE   <module>rP     s   + + + + + + 9 9 9 9 9 9 + + + + + + ) ) ) ) ) ) * * * * * * H H H H H H H H H H H H H H H H H H H H             " " " " " " / / / / / / / / Z Z Z Z Z Z Z Z Z Z Z Z Z Z R R R R R R R R R R R R D D D D D D D D D D 9 9 9 9 9 9 D D D D D D D D D D ; ; ; ; ; ; % % % % % %             , , , , , , 3 3 3 3 3 3 B B B B B B           % % % % % % 2 2 2 2 2 2 = = = = = = = = = = )6 )6 )6X ( ( (&    0 0 0    % % % ) ) )(. . .2 2 2 2 2 2 $ $ $, ? ? ? / / /  
8 8 8
&# &# &#R> > >'3 '3 '3T8 8 8$#9 #9 #9L+ + + < < <D : : :" " ",  "  L L L
@ @ @
? ? ?*X X X0' ' '"5 5 5, 4 4 4	: 	: 	:. . . .( .( .(b% % %8 8 8
/ / /; ; ; 4 4 4  , , ,(D D DI I I> ; ; ;
> 
> 
>6 6 6) ) )
P P P P PrG   