
    sgM                        d dl mZ d dlmZmZmZmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZmZ d dlmZmZ d dl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m Z m!Z! d dlm"Z"m#Z#m$Z$ d dlm%Z%m&Z& d dlm'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6 d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd  ZCd! ZDd" ZEd# ZFd$ ZGd% ZHd& ZId' ZJd( ZKd) ZLd* ZMd+ ZNe3d,        ZOd- ZPd. ZQd/ ZRd0 ZSy1)2    )product)Subs	count_opsdiffexpand)EIRationalpi)S)Symbolsymbols)explog)coshcothsinhtanh)sqrt)	Piecewise)coscotsintan)acosasinatan2)asecacsc)acotatan)	integrate)Matrix)simplify)exptrigsimptrigsimp)XFAILxyc            	      8   t        d      \  } }t        dt        |       dz  z
        t        |       dz  k(  sJ t        dt        |       dz  z
        t        |       dz  k(  sJ t        t        |       dz  t        |       dz  z         dk(  sJ t        dt	        |       dz  z         dt        |       dz  z  k(  sJ t        dt        |       dz  z  dz
        t	        |       dz  k(  sJ t        dt        |       dz  z  t	        |       dz  z
        dk(  sJ t        dt        |       dz  z         dt        |       dz  z  k(  sJ t        dt        |       dz  z  dz
        dt	        |       dz  z  k(  sJ t        dt        |       dz  z  t        |       dz  z
        dk(  sJ t        dt        |       dz  z  dt        |       dz  z  z         dk(  sJ t        dt        | dz        dz  z  dt        | dz        dz  z  z         dt        |       z  dz  t        dd      z   k(  sJ t        t        |       t        |       z        t	        |       k(  sJ t        dt	        |       z  t        |       z        dt        |       z  k(  sJ t        t        |       dz  t        |       dz  z        t        |       dz  k(  sJ t        |t	        |       dz  z  t        |       dz  z        |t        |       dz  z  k(  sJ t        t        |       t        |       z        dt        |       z  k(  sJ t        t        | |z         t        | |z
        z         dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
        dt        |      z  t        |       z  k(  sJ t        t        | |z         t        | |z
        z         dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
        dt        |       z  t        |      z  k(  sJ t        t	        | |z         t	        |       dt	        |       t	        |      z  z
  z  z
        t        |      t        |       t	        |       z  t        |      z   z  k(  sJ t        t        | |z         t        | |z
        z         dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
        dt        |      z  t        |       z  k(  sJ t        t        | |z         t        | |z
        z         dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
        dt        |       z  t        |      z  k(  sJ t        t        | |z         t        |       dt        |       t        |      z  z   z  z
        t        |      t        |      t        |       z  t        |      z   z  k(  sJ t        t        d      dz  t        d      dz  z         d	k(  sJ dt        |       dz  z  dt        |       dz  z  z   }t        t        |            t        d      k(  sJ y )
Nx,y               |Pk?      ?)r   r&   r   r   r   r   r
   r   r   r   r   )r)   r*   es      U/var/www/html/venv/lib/python3.12/site-packages/sympy/simplify/tests/test_trigsimp.pytest_trigsimp1r7      s   5>DAqAA	M"c!fai///AA	M"c!fai///CFAIA	)*a///AA	M"aA	k111Ac!faiK!O$A	111Ac!faiK#a&!)+,111AA	M"aA	k111Ac!faiK!O$#a&!)333Ac!faiK#a&!)+,111Ac!faiK!CFAI+-.!333Ac!A#hkMAc!A#hkM12aAhqj8Aq>6QQQQCF3q6M"c!f,,,Ac!fHSVO$#a&000CFAIc!fai'(CFAI555Ac!faiKA	)*aA	k999CF3q6M"aAh...CAJQU+,#a&Q???CAJQU+,#a&Q???CAJQU+,#a&Q???CAJQU+,3q6	#a&0@@@@CAJQSVCF]):!;;<AQAQ'() ) ) DQK$q1u+-.!DG)DG2CCCCDQK$q1u+-.!DG)DG2CCCCDQK$q1u+-.!DG)DG2CCCCDQK$q1u+-.!DG)DG2CCCCDQK$q'1tAwtAw+>"??@Qaa47*+, , , CL!Oc'lAo56#===	#a&!)aA	k!ACFs1v%%%    c                     t        t        d      dz  t        d      z  t        d      z  t        d      dz  z        t	        d      dz  t        d      z  t        d      z  k(  sJ t        t	        d      dz  t        d      z  t        d      z  t        d      dz  z        t        d      dz  t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t	        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t	        d      z        t        d      t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  t        d      z  k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      t        d      z  k(  sJ y )Nr.   r0   )
r&   r   r   r   r   r   r   r   r   r    r8   r6   test_trigsimp1ar;   B   sT   CFAIc!f$SV+CFAI56#a&!)CF:J3q6:QQQQCFAIc!f$SV+CFAI56#a&!)CF:J3q6:QQQQCF3q6M#a&(Q/0CF3q6M#a&4HHHHCF3q6M#a&(Q/0CF3q6M#a&4HHHHCF3q6M#a&(Q/0CF3q6M#a&4HHHHCF3q6M#a&(Q/0CF3q6MAAADGCFN3q6)$q'12d1gc!fnSV6KKKKDGCFN3q6)$q'12d1gc!fnSV6KKKKDGCFN3q6)$q'12d1gc!fnSV6KKKKDGCFN3q6)$q'12c!fSVmDG6KKKKDGCFN3q6)$q'12c!fSVmDG6KKKKDGCFN3q6)$q'12c!fSVmCCCr8   c            
      
   t        d      \  } }t        t        |       dz  t        |      dz  z  t        |       dz  t        |      dz  z  z   t        |       dz  z   d      dk(  sJ t        t        |       dz  t        |      dz  z  t        |       dz  t        |      dz  z  z   t        |       dz  z   d      dk(  sJ t        t	        | | t        |      dz  t        |      dz  z               t	        | | d      k(  sJ y )Nr,   r.   T	recursiver-   )r   r&   r   r   r   r(   s     r6   test_trigsimp2r?   Q   s   5>DAqCFAIc!fai'#a&!)CFAI*==A	I ! ! !CFAIc!fai'#a&!)CFAI*==A	I ! ! !Q3q619s1vqy()+.21am< < <r8   c            	          t        d      } t        t        dt        |       dz  z  dt	        |       dz  z  z         dz
        dk  sJ y )Nr)          @r.   绽|=)r   absr&   r   r   r)   s    r6   test_issue_4373rE   [   sE    sAxCFAICFAI56<=EEEr8   c                  ~   t        d      \  } }t        t        |       t        |       z        t	        |       k(  sJ t        t        |       dz  t        |       dz  z        t	        |       dz  k(  sJ t        t        |       dz  t        |       dz  z        t	        |       dz  k(  sJ t        t        |       dz  t        |       dz  z        t	        |       dz  k(  sJ t        t        |       t        |       z        dt	        |       z  k(  sJ t        t        |       dz  t        |       dz  z        dt	        |       dz  z  k(  sJ t        t        |       dz  t        |       dz  z        dt	        |       dz  z  k(  sJ t        t	        |             t        t        |       t        |       z        k(  sJ y )Nr,   r.   r0   
   r-   )r   r&   r   r   r   r(   s     r6   test_trigsimp3rH   `   sy   5>DAqCF3q6M"c!f,,,CFAIc!fai'(CFAI555CFAIc!fai'(CFAI555CFBJs1vrz)*c!fbj888CF3q6M"aAh...CFAIc!fai'(Ac!faiK777CFBJs1vrz)*aA
l:::CFxAs1v6666r8   c                  ,   t        d      \  } }}dt        |      dz  z  dt        |      dz  z  z   dt        |      dz  z  z
  }t        |      dk(  sJ t        |      dz  dt        |      dz  z  t        |      dz  z  z   dt        |      dz  z  t        |      dz  z  z   dt        |      dz  z  z   }t        |      dz   dt        |      dz  z  z
  }t	        ||z        dk(  sJ t        d	t        |      dz  z  t        |      dz  z   t        |      dz  z
        dk(  sJ t        |      d
z   dz  t        |      z  t        |      d
z  dz  t        |      z  z   t        d|z        t        d|z        z  dz  z
  }t        |      dk(  sJ y )Na x y      r.      r/   r2   r0   r   )r   r   r   r&   r$   )ar)   r*   eqnds         r6   test_issue_4661rT   n   s   gGAq!	CFAI#a&!)	#aA	k	1BB<2A	Ac!faiKA	))Ac!faiKA	,AAAc!faiKOA	Q
Qs1vqy[ AAaC=BBs1vqyL3q619,s1vqy89R???FAI+a-Q	3q619Q;A"6	6QqS#ac(9J19L	LBB<1r8   c                      t        d      \  } }t        |       dz  t        |      dz  z  t        |       dz  t        |      dz  z  t        |       dz  z  z   t        |       dz  z   }t	        |      dk(  sJ y )Na br.   r-   )r   r   r   r   r&   )rP   brQ   s      r6   test_issue_4494rX   z   so    5>DAq	Q3q619	s1vqyQ23q619<	<s1vqy	HBB<1r8   c            
          t        d      \  } }}t        t        t        t	        |      t        |      dz  z  |      |            t	        |      t        |      dz  z  k(  sJ y )NrJ   r1   )r   r&   r   r"   r   r   rP   r)   r*   s      r6   test_issue_5948r[      s\    gGAq!D3q6#a&!)#3Q7;<q6#a&!)  r8   c                  R   t        d      \  } }}t        t        |      t        |      z  t        |      t        |      z  z         t        ||z         k(  sJ t        t        |      t        |      z  t        |      t        |      z  z   dz         t        ||z         dz   k(  sJ y )NrJ   r0   )r   r&   r   r   rZ   s      r6   test_issue_4775r]      s    gGAq!CF3q6M#a&Q-/0CAJ>>>CF3q6M#a&Q-/12c!a%j1nDDDr8   c                  z   t        d      \  } }}t        t        |      dz  t        |      dz  t        |      dz  z  z   t        |      dz  t        |      dz  z  z         dk(  sJ t        | dz  t        |      dz  z  | dz  t        |      dz  z  t        |      dz  z  z   | dz  t        |      dz  z  t        |      dz  z  z         | dz  k(  sJ t        | dz  t        |      dz  z  t        |      dz  z  | dz  t        |      dz  z  t        |      dz  z  z         | dz  t        |      dz  z  k(  sJ y )NrJ   r.   r-   )r   r&   r   r   rZ   s      r6   test_issue_4280r_      s8   gGAq!CFAIA	#a&!) 33c!faiA	6IIJaOOOAqDQNQT#a&!)^CFAI%==1SVQYsSTvWXy@XXY]^`a]aaaaAqDQN3q619,q!tCFAI~c!fai/GGHAqDQTUVQWYZQZNZZZr8   c                     t        d      t        d      z  t        d      t        d      z  z   t        d       t        d      z  t        d      t        d      z  z   t        d      t        d      z  t        d      t        d      z  z
  t        d      t        d      z  t        d      t        d      z  z   t        d      t        d      z  t        d      t        d      z  z   t        d      z   t        d      t        d      z  t        d      t        d      z  z   t        d      t        d      z  t        d      t        d      z  z   f} | D cg c]  }t	        |       c}t        d      t        d      t        d       t        d      t        d      t        d      z   t        d      t        d      gk(  sJ y c c}w )Nr.   r0   r/   r-   )r   r   r   r   r&   )eqsr5   s     r6   test_issue_3210rb      sZ   q6#a&=3q6#a&=(	QAQA&As1vAs1v%As1vAs1v%As1vAs1v%A.QQ$q'$q'/)QQ$q'$q'/)
C "%%AHQK%AA	QAAQQQ*
 
 
 
%s   Gc            
      R   t        d      \  } }}t        t        |      dz  t        |      dz  t        |      z  z         t        |      k(  sJ t        t	        t        t        |      t        |      dz  z  |      |            t        |      t        |      dz  z  k(  sJ t        t	        t        t        |      t        |      dz  z  |      |            t        |      t        |      dz  z  k(  sJ t        |      |z  t        |      |z  z  }t        |      |k(  sJ t        |j                  |d            t        |      dz  k(  sJ t        |j                  |d            t        d      |z  k(  sJ t        |      dz  t        |      dz  z  t        |      dz  z  t        |      dz  z  j                         dt        |      dz  z  t        |      dz  z  k(  sJ t        t        |      t        |      z  t        ||z         z  t        ||z         z        dt        |      t        ||z         z  z  k(  sJ t        d      t        d      dz   dz  z  t        d      dz
  dz  z  }t        |      |j                         k(  sJ t        t        d      t        d      dz   dz  z  t        d      dz
  dz  z        t        d      t        d      dz  z  k(  sJ t        |      j                  t        |            du sJ t        |      dz  t        |      dz  z   dz
  }t        |      dz  dt        |      dz  z  z
  }d||z  z   }t        t        |            t        d      k7  sJ ||dz
  z  ||z  z
  }t        |      t        j                  u sJ t        |d      t        j                  u sJ t        d      j                  sJ t        t        |      dz   dt        |      dz  z  t        |      dz  z  z
  t        |      dz  z
        d	k(  sJ y )
NrJ   r0   r.   r-   rL   FTr=   rO   )r   r&   r   r   r   r"   subsr   factorr   equalsr   NaN
is_Integer)rP   r)   r*   r5   rQ   zz1rR   s           r6   test_trigsimp_issuesrk      s   gGAq! CFAIA	#a& 001SV;;; D3q6#a&!)#3Q7;<As1vqy  D3q6#a&!)#3Q7;<As1vqy   	A	#a&!)AA;!AFF1aL!SVQY...AFF1aL!SVQY... FAIc!faiA	)#a&!)3==?	#a&!)CFAI  CF3q6M#ac(*3qs834	3q6#a!e*   
QQ!a	Q!a	/BB<299;&&&CFCFQJ?*CFQJ?:;As1vqy  
 q6==Q E))) 	A	CFAI!A	QQs1vqy[	 B	
RTACFs1v%%%	
AEQqSBB<155   B$'155000A;!!!!SVQYJ3q619SVQY!66QBCrIIIr8   c                      t        d      } t        | t        |       z  t        |       z        | t	        |       z  k(  sJ t        t	        |        t        |       t        |       z  z         dk(  sJ y )Nr)   r   )r   r&   r   r   r   rD   s    r6   test_trigsimp_issue_2515rm      s`    sAAc!fHSVO$#a&000SVGc!fSVm+,111r8   c                      t        t        dt        z        j                  d            t        dt        z        k(  sJ y )Nr.   T)trig)r&   r   r)   r   r:   r8   r6   test_trigsimp_issue_3826rp      s0    C!HOOO./3qs8;;;r8   c                      t        ddd      } t        d| dz  z  t        t        | z  dz        z  dz  d| dz
  z  dz  z         d| dz  z  t        t        | z  dz        z  dz  d| z  dz  z   k(  sJ y )NrR   T)integerpositiver.   rL   r-   )r   r&   r   r   )rR   s    r6   test_trigsimp_issue_4032rt      s    sD40AA!HSAa[(*QQZ\9:	AaCRT!VQAa'( ( (r8   c                  d    t        t        t        dz              t        t        dz        k(  sJ y )NrL   )r&   r   r   r:   r8   r6   test_trigsimp_issue_7761rv      s%    DAJ41:---r8   c                     t        d      \  } }t        dd      \  }}t        ||t        |       dz  z  z
        |t        |       dz  z  k(  sJ t        ||t        |       dz  z  z
        |t        |       dz  z  k(  sJ t        |t        |       dz  z  |t        |       dz  z  z         |k(  sJ t        ||t	        |       dz  z  z         |t        |       dz  z  k(  sJ t        |t        |       dz  z  |z
        |t	        |       dz  z  k(  sJ t        |t        |       dz  z  |t	        |       dz  z  z
        |k(  sJ t        ||t        |       dz  z  z         |t        |       dz  z  k(  sJ t        |t        |       dz  z  |z
        |t	        |       dz  z  k(  sJ t        |t        |       dz  z  |t        |       dz  z  z
        |k(  sJ t        ||z  t        |       dz  z  ||z  t        |       dz  z  z         ||z  k(  sJ t        |t        |       z  t        |       z        |t	        |       z  k(  sJ t        |t	        |       z  t        |       z        |t        |       z  k(  sJ t        |t        |       dz  z  t        |       dz  z        |t        |       dz  z  k(  sJ t        ||z  t	        |       dz  z  t        |       dz  z        ||z  t        |       dz  z  k(  sJ t        |t        |       z  t        |       z        |t        |       z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z         d|z  t        |       z  t        |      z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z
        d|z  t        |      z  t        |       z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z         d|z  t        |       z  t        |      z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z
        d|z  t        |       z  t        |      z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z         d|z  t        |       z  t        |      z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z
        d|z  t        |      z  t        |       z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z         d|z  t        |       z  t        |      z  k(  sJ t        |t        | |z         z  |t        | |z
        z  z
        d|z  t        |       z  t        |      z  k(  sJ t        |t        d      dz  z  |t        d      dz  z  z         d	|z  k(  sJ y )
Nr,   zA,BFcommutativer.   r0   r2   r3   r4   r   r&   r   r   r   r   r   r   )r)   r*   ABs       r6   test_trigsimp_noncommutativer}      s\   5>DAq5e,DAqA#a&!)O$#a&!)333A#a&!)O$#a&!)333Ac!faiK!CFAI+-.!333A#a&!)O$#a&!)333Ac!faiK!O$#a&!)333Ac!faiK!CFAI+-.!333A#a&!)O$#a&!)333Ac!faiK!O$#a&!)333Ac!faiK!CFAI+-.!333AaCA	MAaCA	M12ac999Ac!fHSVO$#a&000Ac!fHSVO$#a&000Ac!faiKA	)*aA	k999AaCA	M#a&!)+,!CFAI===Ac!fHSVO$#a&000Ac!a%jL1SQZ</0AaCAJs1v4EEEEAc!a%jL1SQZ</0AaCAJs1v4EEEEAc!a%jL1SQZ</0AaCAJs1v4EEEEAc!a%jL1SQZ</0BqDQKA4FFFFAd1q5kMAd1q5kM12ac$q'k$q'6IIIIAd1q5kMAd1q5kM12ac$q'k$q'6IIIIAd1q5kMAd1q5kM12ac$q'k$q'6IIIIAd1q5kMAd1q5kM12ac$q'k$q'6IIIIAc'lAo%#g,/(99:c!eCCCr8   c            	         t        d      \  } }t        t        |       dz  dz         t        |       dz  k(  sJ t        t        |       dz  dz
        t        |       dz  k(  sJ t        t        |       dz  t        |       dz  z
        dk(  sJ t        dt	        |       dz  z
        dt        |       dz  z  k(  sJ t        ddt        |       dz  z  z
        t	        |       dz  k(  sJ t        t	        |       dz  dt        |       dz  z  z         dk(  sJ t        t        |       dz  dz
        dt        |       dz  z  k(  sJ t        dt        |       dz  z  dz         dt	        |       dz  z  k(  sJ t        t        |       dz  dt        |       dz  z  z
        dk(  sJ t        dt        |       dz  z  dt        |       dz  z  z
        dk(  sJ t        dt        | dz        dz  z  dt        | dz        dz  z  z
        dt        |       z  dz  t        dd      z   k(  sJ t        t        |       t        |       z        t	        |       k(  sJ t        t	        |             t        t        |       t        |       z        k(  sJ t        t        |       t        |       z        dt	        |       z  k(  sJ t        dt	        |       z  t        |       z        dt        |       z  k(  sJ t        t        |       dz  t        |       dz  z        t        |       dz  k(  sJ t        |t	        |       dz  z  t        |       dz  z        |t        |       dz  z  k(  sJ t        t        |       t        |       z        dt        |       z  k(  sJ t        dz  t        z  t        dz  t        z  t        dz  t        z  fD ]  }t        t        |      t        |       z  t        |      t        |       z  z         t        | |z         k(  sJ t        t        |       t        |       z  t        |      t        |       z  z         t        | |z
        k(  rJ  dt        |       dz  z  dt        |       dz  z  z
  }t        t        |            t        d      k(  sJ t        t        t        |       dz  dz
              t        t        |       dz        k(  sJ t        t        |       dz  t        |      dz  z  t        |       dz  t        |      dz  z  z
  t        |       dz  z
  d	
      dk(  sJ t        t        |       dz  t        |      dz  z  t        |       dz  t        |      dz  z  z
  t        |       dz  z   d	
      dk(  sJ t        t        dt        |       dz  z  dt        |       dz  z  z
        dz
        dk  sJ t        t        |       dz  t        |       dz  z        t	        |       dz  k(  sJ t        t        |       dz  t        |       dz  z        t	        |       dz  k(  sJ t        t        |       dz  t        |       dz  z        t	        |       dz  k(  sJ t        t        |       dz  t        |       dz  z        dt	        |       dz  z  k(  sJ t        t        |       t        |       z        dt	        |       z  k(  sJ t        t        |       dz  t        |       dz  z        dt	        |       dz  z  k(  sJ t        t        |       dz  t        |       dz  z        dt	        |       dz  z  k(  sJ t        | t        |       z  t	        |       z        | t        |       z  k(  sJ t        t        |        t        |       t	        |       z  z         dk(  sJ t        |       dt        |       z  k7  sJ t        t        |       dt        |       z  z
        dk(  sJ t        dt	        |       dz  z  dt        |       dz  z  z
        t	        |       dz  k(  sJ y )Nr,   r.   r-   r/   r0   r1   rN   rL   Tr=   rA   rB   rG   r   )r   r&   r   r   r   r   r
   r   r	   r   r   rC   r   r   )r)   r*   rP   r5   s       r6   test_hyperbolic_simpr     sb   5>DAqDGQJN#tAwz111DGQJN#tAwz111DGQJa!+,111AQ
N#qa!|333A$q'1*$%a!333DGQJ47A:-.!333DGQJN#qa!|333Ad1gqjL1$%47A:555DGQJ47A:-.!333Ad1gqjL1T!WaZ</0A555Ad1Q3ilNQtAaCy!|^34$q'	!hqRSn8TTTTDGDGO$Q///DGaa 9999DGDGO$$q'	111Ad1gId1g%&!DG)333DGQJtAwz)*d1gqj888Ad1gqjLa!+,$q'1*<<<DGDGO$$q'	111d1fbd1fbd1f% KQQ$q'$q'/9:d1q5kIIIaa(4747?:;tAE{JJJK 	
$q'1*qa!|#ACFs1v%%% Da!a()T$q'1*-====DGQJtAwz)DGQJtAwz,AADGQJN ! ! !DGQJtAwz)DGQJtAwz,AADGQJN ! ! ! xDGQJT!WaZ783>?%GGGDGQJtAwz)*d1gqj888DGQJtAwz)*d1gqj888DGRKQ+,Q;;;DGQJtAwz)*aQ
l:::DGDGO$$q'	111DGQJtAwz)*aQ
l:::DGRKQ+,$q'2+===Ad1gId1g%&!DG)333T!WHtAwtAw./1444q6Qs1vXCFQs1vX%&!+++Ad1gqjL1T!WaZ</0DGQJ>>>r8   c                  J   ddl m}  t        t              }t	        t              }d|z  |z  d|z  z   d|dz  z  z   d|dz  z  z   d	|z  z   d
z   | |dz  z  d|z  |z  z   d
|z  z   d|dz  z  z   d|dz  z  z   d|z  z   dz   z  }d|z  d|z  z
  dz   }d|z  d|z  z
  }||z  | | z  g} | |      |v sJ  | ||z  t
        g      t        t              k(  sJ  | ||z        ||z  k(  sJ t        | dz   |z  || dz   z  z   d      d|z  k(  sJ t        | dz   |z  || dz   z  z   dd      d|z  k(  sJ  | |dg      |v sJ  | |t        d      g      |v sJ  | t	        t        t        z        t        t        t        z        z  t        g      t        t        t              z  k(  sJ  | t        t              t        t              z   dt        t              t        t              z  z   z  t        t        t        fg      t        t        t        z         k(  sJ y )Nr   )trigsimp_groebnerrL      r/   r0      r.         r1      %   r-   rM   rN   )hintsgroebnermethodT)r   
polynomial)sympy.simplify.trigsimpr   r   r)   r   r   r&   intr	   r   r*   )r   csexresnumresdenomresultss          r6   test_trigsimp_groebnerr   G  sg   9AAAA
A#a%"Q$,1a4
"QT'
)BqD
02
5	
1a4!A#a%"Q$1a4'"QT'1BqD82=
?BcAaCi!mF!ac	Hh&H9 56GR G+++QqS.#a&888QqS!QqS(((aR!VQJQBF+%'*+A#. . .aR!VQJQBF+%$8;<Q3? ? ? Rs+w666RAx0G;;; S1Xc!A#h.tf=47JJJ d1gd1go$q'$q'/0AB%)1aL>36:1q5kB B Br8   c                     d } d }t         dz   t         t        t               dz  z   t        t               dz  z   z  }t        dg      }t        |g      t	        d|       |k(  sJ t	        d|      |k7  sJ t        j
                  d      t        fddj                         D              sJ dt        t              z  t        z   }t        |      |k(  sJ y )	Nc                 *    t        t        |             S N)lenstrexprs    r6   <lambda>z2test_issue_2827_trigsimp_methods.<locals>.<lambda>f  s    CD	N r8   c                     t        |        S r   )r   r   s    r6   r   z2test_issue_2827_trigsimp_methods.<locals>.<lambda>g  s    Yt_, r8   r-   r.   fu)r   measurec              3   >   K   | ]  }t        |       k(    yw)r   N)r&   ).0mMs     r6   	<genexpr>z3test_issue_2827_trigsimp_methods.<locals>.<genexpr>q  s!      ,ax!$) ,s   zfu matching groebner old)r)   r   r   r#   r&   eyeallsplitr   r   r%   )measure1measure2r   ansrQ   r   s        @r6    test_issue_2827_trigsimp_methodsr   e  s    *H,HEAA	MCFAI-.D
!+CvAAdH5<<<AdH5<<< 	

1A ,"((*, , , , 
47QBr?b   r8   c            	         t        t        t        dd            t        t        dd            dg      } t        t        t        dd            t        t        dd            dg      }t        t        t        dd            t        t        dd            dg      }| j	                  |      }| j	                  |      }t        |      t        t        dd            k(  sJ t        |      t        t        dd            k(  sJ y )Nr-   2   r      r0   )r#   r   r
   r   dotr&   )t1t2t3r1r2s        r6   !test_issue_15129_trigsimp_methodsr   w  s    	Xa_%s8Ar?';Q?	@B	Xa_%s8Ar?';Q?	@B	Xa_%s8Ar?';Q?	@B	B	BB<3x2////B<3x2////r8   c                  
  	 d 	t        t        t              t        t               z         dt        t              z  k(  sJ t        t        t              t        t               z
        dt	        t              z  k(  sJ t        dt        t              z  dt        t               z  z
  t        t              t        t               z   z        dt        t              z  k(  sJ t        dt        dt        z        z  dz
  t        dt        z        dz   z        dt        t              z  k(  sJ t        t              t        t        t              z  z   t        t              t        t        t              z  z
  t        t              t	        t              z
  t        t              t	        t              z   g} t        t        t        z        t        t         t        z        t        t               t        t              g}t        	fdt        | D cg c]  }t        |       c}|      D              sJ t        t              t        t              z   t        t              t        t              z
  t        t              t        t	        t              z  z   t        t              t        t	        t              z  z
  g}|D cg c]  }t        |      |k(   c}sJ g }t        t        d      z  dt        t        d      z  z  t        t        z  t        d      z  t         t        t        d      z  z  t        t        t              z  dt        t        t              z  z  t        t        z  t        t              z  t         t        t        t              z  z  t        t        dt        z         z  dt        t        dt        z         z  z  g
}dt        t        t        t        z  dt        z   fD ]\  }t        |      }t        |d|z  z
  z  |d|z  z   z  }|j                  t        |             |j                  t        d|z               ^ t        	fdt        ||      D              sJ t        dd      D ]  }t        |      }|d|z  z   } t        |       }|t        |       k(  sJ  	|dt        |      z        sJ |d|z  z
  } t        |       }|t        |       k(  sJ  	|dt	        |      z        rJ  y c c}w c c}w )Nc                 .    ddl m}  || |      r| |k(  syy)Nr   )verify_numericallyFT)sympy.core.randomr   )rP   rW   tns      r6   validztest_exptrigsimp.<locals>.valid  s    >1aQ!Vr8   r.   r-   c              3   6   K   | ]  \  }} ||        y wr   r:   r   ijr   s      r6   r   z#test_exptrigsimp.<locals>.<genexpr>  s      ,tq!uQ{ ,   c              3   6   K   | ]  \  }} ||        y wr   r:   r   s      r6   r   z#test_exptrigsimp.<locals>.<genexpr>  s     4tq!uQ{4r   r0   )r%   r   r)   r   r   r   r   r	   r   r   zipr*   r   appendr$   range)
r5   okeiueresrP   wrQ   r   r   s
            @r6   test_exptrigsimpr     s    s1vQB'(Ad1gI555s1vQB'(Ad1gI555#a&3r7*SVCG^<=47JJJ#ac(
1s1Q3xz23qay@@@	Q!CF(	CFQs1vX-	a47	DGd1g-	/A
ac(C1IsA2wA	/B ,s#$%RR%r(+ , , , , a&3q6/3q6CF?
q'Ad1gI
tAw472
4B,./bKOr!///
C
DG)Q$q'	]AaCAJAc!fH	$q'	1aQi=!A#c!f*qb!CF(m	$q1u+q!DQK-(
*B AqsAE" #FAaC[!ac'"

8B< 

8AbD>"	#
 4s3|44441a[ 	#F!GQKKN"""Q$q'	"""!GQKKN"""Q$q'	"""	## 	& 0s   TT
c                  0   t        dd      \  } }t        dd      }t        | |z         t        t        |       t        |      z        k(  sJ t        |       t        |      z  t        |      t        |       z  z
  }|t        |      cxk(  rdk7  sJ  J y )NrV   Frx   r)   Tr   )r   r   r   r%   )rP   rW   r)   ps       r6   test_exptrigsimp_noncommutativer     s    
%U
+CAas%Aq1u:SVCF]3333As1vAs1v%AA#!#####r8   c                  R    dt        dd      dz
  z  dt        dd      z  dz  k(  sJ y )Nr.   r-   r0   rL   )r
   r:   r8   r6   test_powsimp_on_numbersr     s0    x1~!"a!Q&7&9999r8   c                  z   t        d      \  } }}}ddt        |      z  |z  dt        d|z        z  |z  z   dt        d|z        z  |z  z   d|z  z
  z  | z  d	t        |      z  dt        d|z        z  z
  z  }t        |      d
dt        |      z  t	        |      z  |z  d|z  z   z  | z  t        |      z  k(  sJ y )Nzxp, y, x, zrL   ir/   r0   r   r.   r   	   r2   )r   r   r   r&   r   )xpr*   r)   ri   rQ   s        r6   test_issue_6811_failr     s     -(KB1a	
CAJqL1S1X:a<'"S1X+a-7"Q$>	?	BAc!fHqQTUVWXUXQYzDY	ZBB<2qQxAq01Q367:3q6AAAAr8   c                  b   t         t         t        z   z  t        t         t        z   z  z
  } t        t               dz  t        t               dz  z   }t	        t         t        z   t        z  t         z        }t        |      }t        t        | ||k  f|df            t        | ||k  f|df      k(  sJ y )Nr.   T)r)   r*   r   r   r   r$   r&   r   )e1e2e3s2s       r6   test_Piecewiser     s    	
AEQAY	B	QSVQY	B	Q	!	B	"B Ir27mb$Z892rBw-"d,- - -r8   c            	          t        t        t        dd            t        t        dd            z         t        t        j
                        dz  k(  sJ y )Nr-   r.   rO   )r$   r   r
   r   r   Halfr:   r8   r6   test_issue_21594r     s<    C1&Xb^)<<=affaOOOr8   c            	         t        d      \  } }t        dt        |       dz  z
  d      t        |       dz  k(  sJ t        dt        |       dz  z
  d      t        |       dz  k(  sJ t        t        |       dz  t        |       dz  z   d      dk(  sJ t        dt	        |       dz  z   d      dt        |       dz  z  k(  sJ t        dt        |       dz  z  dz
  d      t	        |       dz  k(  sJ t        dt        |       dz  z  t	        |       dz  z
  d      dk(  sJ t        dt        |       dz  z   d      dt        |       dz  z  k(  sJ t        dt        |       dz  z  t        |       dz  z
  d      dk(  sJ t        dt        |       dz  z  dt        |       dz  z  z   d      dk(  sJ t        t        |       t        |       z  d      t	        |       k(  sJ t        dt	        |       z  t        |       z  d      dt        |       z  k(  sJ t        t        |       dz  t        |       dz  z  d      t        |       dz  k(  sJ t        |t	        |       dz  z  t        |       dz  z  d      |t        |       dz  z  k(  sJ t        t        |       t        |       z  d      dt        |       z  k(  sJ t        t        | |z         t        | |z
        z   d      dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
  d      dt        |      z  t        |       z  k(  sJ t        t        | |z         t        | |z
        z   d      dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
  d      dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z   d      dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
  d      dt        |      z  t        |       z  k(  sJ t        t        | |z         t        | |z
        z   d      dt        |       z  t        |      z  k(  sJ t        t        | |z         t        | |z
        z
  d      dt        |       z  t        |      z  k(  sJ t        t        d	      dz  t        d	      dz  z   d      d
k(  sJ t        t        |       t        |       z  dd      t	        |       k(  sJ t        t        |       t        |       z  dd      t        |       t        |       z  k(  sJ t        t        |       t        |       z  ddt        g      t	        |       k(  sJ t        dt        t        |       dz  t        |       dz  z         dz  z
  dd      t        d      dz  k(  sJ y )Nr,   r-   r.   T)oldr/   r0   r2   r3   r4   combined)r   r   r   )r   r   r   )r   deeprz   r(   s     r6   test_trigsimp_oldr     sN   5>DAqAA	Mt,A	999AA	Mt,A	999CFAIA	)t4999AA	Mt,#a&!);;;Ac!faiK!O.#a&!);;;Ac!faiK#a&!)+6!;;;AA	Mt,#a&!);;;Ac!faiK#a&!)+6!;;;Ac!faiK!CFAI+-48A===CF3q6Mt,A666Ac!fHSVO.!CF(:::CFAIc!fai'T2c!fai???Ac!faiKA	)t4#a&!)CCCCF3q6Mt,#a&888CAJQU+6!CF(3q6/IIICAJQU+6!CF(3q6/IIICAJQU+6!CF(3q6/IIICAJQU+6"SV)CF:JJJJDQK$q1u+-48Ad1gId1g<MMMMDQK$q1u+-48Ad1gId1g<MMMMDQK$q1u+-48Ad1gId1g<MMMMDQK$q1u+-48Ad1gId1g<MMMMCL!Oc'lAo54@CGGGCF3q6MtJ?3q6IIICF3q6MtJ?3q6#a&=PPPCF3q6MtJseLPSTUPVVVVAc#a&!)CFAI-.11t$G3q6ST9TTTr8   c            	         t        d      } t        |       t        |       }}t        t        t
        t        t        t        fD ]1  }|j                  d       }| t         | ||             d      k(  r1J  ||g||gfD ]  \  }}t        ddgd      D ]o  \  }}t        ||z  ||z        }	t        |	d      }
|
|	k7  sJ t        |
      t        t        |	            k(  sJ t        |
      t        t        |	            k(  roJ   y )NalphaT)inverserO   r-   r.   )repeat)r   r   r   r   r   r   r   r!   r    r   r&   r   r   )r   r   r   finvfrP   rW   r   r   angleangle_inverteds              r6   test_trigsimp_inverser     s	   GEu:s5zqAtT4t4 ?LLah>>>>?
 Q!Q  ?1RGA. 	?DAq!A#qsOE%eT:N!U***~&(3u:*>>>>~&(3u:*>>>>	??r8   N)T	itertoolsr   sympy.core.functionr   r   r   r   sympy.core.numbersr   r	   r
   r   sympy.core.singletonr   sympy.core.symbolr   r   &sympy.functions.elementary.exponentialr   r   %sympy.functions.elementary.hyperbolicr   r   r   r   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   r   r   r   r   r   r   r   r    r!   sympy.integrals.integralsr"   sympy.matrices.denser#   sympy.simplify.simplifyr$   r   r%   r&   sympy.testing.pytestr'   	sympy.abcr)   r*   r7   r;   r?   rE   rH   rT   rX   r[   r]   r_   rb   rk   rm   rp   rt   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r:   r8   r6   <module>r      s     ? ? 3 3 " / = J J 9 : I I H H A A / ' , ; & &&RD<F
7	E[
(+J\2<(. DF8?vB<!$0)#V$: B B
-P$UN?r8   