
    gM                        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 ZSd1S )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            	      B   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 d S )
Nx,y               |Pk?      ?)r   r&   r   r   r   r   r
   r   r   r   r   )r)   r*   es      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/simplify/tests/test_trigsimp.pytest_trigsimp1r7      sE   5>>DAqAA	M""c!ffai////AA	M""c!ffai////CFFAIA	)**a////AA	M""aA	k1111Ac!ffaiK!O$$A	1111Ac!ffaiK#a&&!)+,,1111AA	M""aA	k1111Ac!ffaiK!O$$#a&&!)3333Ac!ffaiK#a&&!)+,,1111Ac!ffaiK!CFFAI+-..!3333Ac!A#hhkMAc!A#hhkM122aAhqj8Aq>>6QQQQQCFF3q66M""c!ff,,,,Ac!ffHSVVO$$#a&&0000CFFAIc!ffai'((CFFAI5555Ac!ffaiKA	)**aA	k9999CFF3q66M""aAh....CAJJQU+,,#a&&Q????CAJJQU+,,#a&&Q????CAJJQU+,,#a&&Q????CAJJQU+,,3q66	#a&&0@@@@@CAJJQSVVCFF]):!;;<<AQAQ'() ) ) ) DQKK$q1u++-..!DGG)DGG2CCCCCDQKK$q1u++-..!DGG)DGG2CCCCCDQKK$q1u++-..!DGG)DGG2CCCCCDQKK$q1u++-..!DGG)DGG2CCCCCDQKK$q''1tAwwtAww+>"??@@Qaa477*+, , , , CLL!Oc'llAo566#====	#a&&!)aA	k!ACFFs1vv%%%%%%    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 d S )Nr.   r0   )
r&   r   r   r   r   r   r   r   r   r    r8   r6   test_trigsimp1ar;   B   sF   CFFAIc!ff$SVV+CFFAI566#a&&!)CFF:J3q66:QQQQQCFFAIc!ff$SVV+CFFAI566#a&&!)CFF:J3q66:QQQQQCFF3q66M#a&&(Q/00CFF3q66M#a&&4HHHHHCFF3q66M#a&&(Q/00CFF3q66M#a&&4HHHHHCFF3q66M#a&&(Q/00CFF3q66M#a&&4HHHHHCFF3q66M#a&&(Q/00CFF3q66MAAAADGGCFFN3q66)$q''122d1ggc!ffnSVV6KKKKKDGGCFFN3q66)$q''122d1ggc!ffnSVV6KKKKKDGGCFFN3q66)$q''122d1ggc!ffnSVV6KKKKKDGGCFFN3q66)$q''122c!ffSVVmDGG6KKKKKDGGCFFN3q66)$q''122c!ffSVVmDGG6KKKKKDGGCFFN3q66)$q''122c!ffSVVmCCC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 d S )Nr,   r.   T	recursiver-   )r   r&   r   r   r   r(   s     r6   test_trigsimp2r?   Q   sY   5>>DAqCFFAIc!ffai'#a&&!)CFFAI*==A	I   ! ! ! !CFFAIc!ffai'#a&&!)CFFAI*==A	I   ! ! ! !Q3q6619s1vvqy())+ +.21amm< < < < < <r8   c            	          t          d          } t          t          dt          |           dz  z  dt	          |           dz  z  z             dz
            dk     sJ d S )Nr)          @r.   绽|=)r   absr&   r   r   r)   s    r6   test_issue_4373rE   [   sZ    sAxCFFAICFFAI566<==EEE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 d S )Nr,   r.   r0   
   r-   )r   r&   r   r   r   r(   s     r6   test_trigsimp3rH   `   s   5>>DAqCFF3q66M""c!ff,,,,CFFAIc!ffai'((CFFAI5555CFFAIc!ffai'((CFFAI5555CFFBJs1vvrz)**c!ffbj8888CFF3q66M""aAh....CFFAIc!ffai'((Ac!ffaiK7777CFFBJs1vvrz)**aA
l::::CFFxAs1vv6666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 d S )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FFAI#a&&!)	#aA	k	1BB<<2A	Ac!ffaiKA	))Ac!ffaiKA	,AAAc!ffaiKOA	Q
Qs1vvqy[ AAaC==BBs1vvqyL3q6619,s1vvqy899R????FFAI+a-Q	3q6619Q;A"6	6QqS#ac((9J19L	LBB<<1r8   c                  6   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 d S )Na br.   r-   )r   r   r   r   r&   )rP   brQ   s      r6   test_issue_4494rX   z   s    5>>DAq	Q3q6619	s1vvqyQ23q6619<	<s1vvqy	HBB<<1r8   c            
         t          d          \  } }}t          t          t          t	          |          t          |          dz  z  |          |                    t	          |          t          |          dz  z  k    sJ d S )NrJ   r1   )r   r&   r   r"   r   r   rP   r)   r*   s      r6   test_issue_5948r[      s    gGAq!D3q66#a&&!)#3Q77;;<<q66#a&&!)     r8   c                     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 d S )NrJ   r0   )r   r&   r   r   rZ   s      r6   test_issue_4775r]      s    gGAq!CFF3q66M#a&&Q-/00CAJJ>>>>CFF3q66M#a&&Q-/122c!a%jj1nDDDDDDr8   c                     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 d S )NrJ   r.   r-   )r   r&   r   r   rZ   s      r6   test_issue_4280r_      sr   gGAq!CFFAIA	#a&&!) 33c!ffaiA	6IIJJaOOOOAqDQNQT#a&&!)^CFFAI%==1SVVQYsSTvvWXy@XXYY]^`a]aaaaaAqDQN3q6619,q!tCFFAI~c!ffai/GGHHAqDQTUVQWQWYZQZNZZZ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 | D             t          d          t          d          t          d           t          d          t          d          t          d          z   t          d          t          d          gk    sJ d S )Nr.   r0   c                 ,    g | ]}t          |          S r:   r&   ).0r5   s     r6   
<listcomp>z#test_issue_3210.<locals>.<listcomp>   s    %%%AHQKK%%%r8   r/   r-   )r   r   r   r   )eqss    r6   test_issue_3210rf      s   q66#a&&=3q66#a&&=(	QAQA&As1vvAs1vv%As1vvAs1vv%As1vvAs1vv%A.QQ$q''$q''/)QQ$q''$q''/)
C &%%%%AA	QAAQQQ*
 
 
 
 
 
 
r8   c            
      
   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          |                    |d                    t          |          dz  k    sJ t          |                    |d                    t          d          |z  k    sJ t          |          dz  t          |          dz  z  t          |          dz  z  t          |          dz  z                                  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          |          |                                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          |          
                    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          k    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 d S )
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_issuesro      s   gGAq! CFFAIA	#a&& 0011SVV;;;; D3q66#a&&!)#3Q77;;<<As1vvqy   D3q66#a&&!)#3Q77;;<<As1vvqy    	A	#a&&!)AA;;!AFF1aLL!!SVVQY....AFF1aLL!!SVVQY.... FFAIc!ffaiA	)#a&&!)3==??	#a&&!)CFFAI   CFF3q66M#ac((*3qs88344	3q66#a!e**    
QQ!a	Q!a	/BB<<299;;&&&&CFFCFFQJ?*CFFQJ?:;;As1vvqy   
 q66==Q  E)))) 	A	CFFAI!A	QQs1vvqy[	 B	
RTACFFs1vv%%%%	
AEQqSBB<<15    B$'''150000A;;!!!!SVVQYJ3q6619SVVQY!66QBCCrIIIIIIr8   c                  4   t          d          } t          | t          |           z  t          |           z            | t	          |           z  k    sJ t          t	          |            t          |           t          |           z  z             dk    sJ d S )Nr)   r   )r   r&   r   r   r   rD   s    r6   test_trigsimp_issue_2515rq      s    sAAc!ffHSVVO$$#a&&0000SVVGc!ffSVVm+,,111111r8   c                      t          t          dt          z                                d                    t          dt          z            k    sJ d S )Nr.   T)trig)r&   r   r)   r   r:   r8   r6   test_trigsimp_issue_3826rt      sC    C!HHOOO..//3qs88;;;;;;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 d S )NrR   T)integerpositiver.   rL   r-   )r   r&   r   r   )rR   s    r6   test_trigsimp_issue_4032rx      s    sD4000AA!HSAa[[(*QQZ\9::	AaCRT!VQAa'( ( ( ( ( (r8   c                      t          t          t          dz                      t          t          dz            k    sJ d S )NrL   )r&   r   r   r:   r8   r6   test_trigsimp_issue_7761rz      s5    DAJJ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 d S )
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3A#a&&!)O$$#a&&!)3333Ac!ffaiK!CFFAI+-..!3333A#a&&!)O$$#a&&!)3333Ac!ffaiK!O$$#a&&!)3333Ac!ffaiK!CFFAI+-..!3333A#a&&!)O$$#a&&!)3333Ac!ffaiK!O$$#a&&!)3333Ac!ffaiK!CFFAI+-..!3333AaCA	MAaCA	M122ac9999Ac!ffHSVVO$$#a&&0000Ac!ffHSVVO$$#a&&0000Ac!ffaiKA	)**aA	k9999AaCA	M#a&&!)+,,!CFFAI====Ac!ffHSVVO$$#a&&0000Ac!a%jjL1SQZZ</00AaCAJs1vv4EEEEEAc!a%jjL1SQZZ</00AaCAJs1vv4EEEEEAc!a%jjL1SQZZ</00AaCAJs1vv4EEEEEAc!a%jjL1SQZZ</00BqDQKA4FFFFFAd1q5kkMAd1q5kkM122ac$q''k$q''6IIIIIAd1q5kkMAd1q5kkM122ac$q''k$q''6IIIIIAd1q5kkMAd1q5kkM122ac$q''k$q''6IIIIIAd1q5kkMAd1q5kkM122ac$q''k$q''6IIIIIAc'llAo%#g,,/(99::c!eCCCCCCr8   c            	      t   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    s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  k    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 d S )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     s:	   5>>DAqDGGQJN##tAwwz1111DGGQJN##tAwwz1111DGGQJa!+,,1111AQ
N##qa!|3333A$q''1*$%%a!3333DGGQJ477A:-..!3333DGGQJN##qa!|3333Ad1ggqjL1$%%477A:5555DGGQJ477A:-..!3333Ad1ggqjL1T!WWaZ</00A5555Ad1Q3iilNQtAaCyy!|^344$q''	!hqRSnn8TTTTTDGGDGGO$$Q////DGGaa 9 99999DGGDGGO$$$q''	1111Ad1ggId1gg%&&!DGG)3333DGGQJtAwwz)**d1ggqj8888Ad1ggqjLa!+,,$q''1*<<<<DGGDGGO$$$q''	1111d1fbd1fbd1f% K KQQ$q''$q''/9::d1q5kkIIIIaa(477477?:;;tAE{{JJJJJ	$q''1*qa!|#ACFFs1vv%%%% Da!a(())T$q''1*-=-=====DGGQJtAwwz)DGGQJtAwwz,AADGGQJN   ! ! ! !DGGQJtAwwz)DGGQJtAwwz,AADGGQJN   ! ! ! ! xDGGQJT!WWaZ7883>??%GGGGDGGQJtAwwz)**d1ggqj8888DGGQJtAwwz)**d1ggqj8888DGGRKQ+,,Q;;;;DGGQJtAwwz)**aQ
l::::DGGDGGO$$$q''	1111DGGQJtAwwz)**aQ
l::::DGGRKQ+,,$q''2+====Ad1ggId1gg%&&!DGG)3333T!WWHtAwwtAww.//14444q66Qs1vvXCFFQs1vvX%&&!++++Ad1ggqjL1T!WWaZ</00DGGQJ>>>>>>r8   c                     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 d S )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  s   99999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8QqS!!QqS((((aR!VQJQBF+%' ' '*+A#. . . .aR!VQJQBF+%$8 8 8;<Q3? ? ? ? Rs+++w6666RAx000G;;;; S1XXc!A#hh.tf===477JJJJ d1ggd1ggo$q''$q''/0AB%)1aL>3 3 36:1q5kkB B B 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|          |k    sJ t          j        d          t          fdd                                D                       sJ dt          t                    z  t          z   }t          |          |k    sJ d S )	Nc                 :    t          t          |                     S N)lenstrexprs    r6   <lambda>z2test_issue_2827_trigsimp_methods.<locals>.<lambda>f  s    CD		NN 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   B   K   | ]}t          |           k    V  dS )r   Nrb   )rc   mMs     r6   	<genexpr>z3test_issue_2827_trigsimp_methods.<locals>.<genexpr>q  sE       , ,ax!$$$) , , , , , ,r8   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FFAI-.D
!++CvAAdH555<<<<AdH555<<<< 	
1A , , , ,"((**, , , , , , , , 
477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          }|                     |          }|                     |          }t          |          t          t          dd                    k    sJ t          |          t          t          dd                    k    sJ d S )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                  z   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 | D             |          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 |D             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 ]q}t          |          }t          |d|z  z
  z  |d|z  z   z  }|                    t          |                     |                    t          d|z                       rt          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            sJ d S )	Nc                 :    ddl m}  || |          r| |k    sdS dS )Nr   )verify_numericallyFT)sympy.core.randomr   )rP   rW   tns      r6   validztest_exptrigsimp.<locals>.valid  s8    >>>>>>1a 	Q!VV5tr8   r.   r-   c              3   6   K   | ]\  }} ||          V  d S r   r:   rc   ijr   s      r6   r   z#test_exptrigsimp.<locals>.<genexpr>  sA       , ,tq!uuQ{{ , , , , , ,r8   c                 ,    g | ]}t          |          S r:   r%   rc   eis     r6   rd   z$test_exptrigsimp.<locals>.<listcomp>  s    %%%RR%%%r8   c                 4    g | ]}t          |          |k    S r:   r   r   s     r6   rd   z$test_exptrigsimp.<locals>.<listcomp>  s#    ///bKOOr!///r8   c              3   6   K   | ]\  }} ||          V  d S r   r:   r   s      r6   r   z#test_exptrigsimp.<locals>.<genexpr>  s1      44tq!uuQ{{444444r8   r0   )r%   r   r)   r   r   r   r   r	   r   r   zipr*   r   appendr$   range)	r5   okueresrP   wrQ   r   r   s	           @r6   test_exptrigsimpr     s      s1vvQB'((Ad1ggI5555s1vvQB'((Ad1ggI5555#a&&3r77*SVVCGG^<==477JJJJ#ac((
1s1Q3xxz233qay@@@@	Q!CFF(	CFFQs1vvX-	a477	DGGd1gg-	/A
ac((C1IIsA2wwA	/B , , , ,s%%1%%%r(+ (+ , , , , , , , , a&&3q66/3q66CFF?
q''Ad1ggI
tAww4772
4B//B//////
C
DGG)Q$q''	]AaCAJAc!ffH	$q''	1aQi=!A#c!ff*qb!CFF(m	$q1u++q!DQKK-(
*B AqsAE" # #FFAaC[!ac'"

8B<<   

8AbD>>""""4444s3||444444441a[[ 	# 	#FF!GQKKKNN""""uQ$q''	"""""!GQKKKNN""""uQ$q''	""""""	# 	#r8   c                     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k    sn J d S )NrV   Fr|   r)   Tr   )r   r   r   r%   )rP   rW   r)   ps       r6   test_exptrigsimp_noncommutativer     s    
%U
+
+
+CAas%%%Aq1u::SVVCFF]333333As1vvAs1vv%AA####!########r8   c                  f    dt          dd          dz
  z  dt          dd          z  dz  k    sJ d S )Nr.   r-   r0   rL   )r
   r:   r8   r6   test_powsimp_on_numbersr     s=    x1~~!"a!Q&7&9999999r8   c                     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 d S )Nzxp, y, x, zrL   ir/   r0   r   r.   r   	   r2   )r   r   r   r&   r   )xpr*   r)   rm   rQ   s        r6   test_issue_6811_failr     s     -((KB1a	
CAJqL1S1XX:a<'"S1XX+a-7"Q$>	?	BAc!ffHqQTUVWXUXQYQYzDY	ZBB<<2qQxAq01Q367:3q66AAAAAAAr8   c                     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 d S )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VVQY	B	Q	!		B	"B Ir27mb$Z88992rBw-"d,,- - - - - -r8   c            	          t          t          t          dd                    t          t          dd                    z             t          t          j                  dz  k    sJ d S )Nr-   r.   rO   )r$   r   r
   r   r   Halfr:   r8   r6   test_issue_21594r     sR    C1&&Xb^^)<)<<==afaOOO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 d S )Nr,   r-   r.   T)oldr/   r0   r2   r3   r4   combined)r   r   r   )r   r   r   )r   deepr~   r(   s     r6   test_trigsimp_oldr     s   5>>DAqAA	Mt,,,A	9999AA	Mt,,,A	9999CFFAIA	)t4449999AA	Mt,,,#a&&!);;;;Ac!ffaiK!O...#a&&!);;;;Ac!ffaiK#a&&!)+666!;;;;AA	Mt,,,#a&&!);;;;Ac!ffaiK#a&&!)+666!;;;;Ac!ffaiK!CFFAI+-4888A====CFF3q66Mt,,,A6666Ac!ffHSVVO...!CFF(::::CFFAIc!ffai'T222c!ffai????Ac!ffaiKA	)t444#a&&!)CCCCCFF3q66Mt,,,#a&&8888CAJJQU+666!CFF(3q66/IIIICAJJQU+666!CFF(3q66/IIIICAJJQU+666!CFF(3q66/IIIICAJJQU+666"SVV)CFF:JJJJJDQKK$q1u++-4888Ad1ggId1gg<MMMMMDQKK$q1u++-4888Ad1ggId1gg<MMMMMDQKK$q1u++-4888Ad1ggId1gg<MMMMMDQKK$q1u++-4888Ad1ggId1gg<MMMMMCLL!Oc'llAo54@@@CGGGGCFF3q66MtJ???3q66IIIICFF3q66MtJ???3q66#a&&=PPPPCFF3q66MtJseLLLPSTUPVPVVVVVAc#a&&!)CFFAI-..11t$GGG3q66ST9TTTTTTr8   c            	         t          d          } t          |           t          |           }}t          t          t
          t          t          t          fD ]@}|	                    d           }| t           | ||                     d          k    sJ A||g||gfD ]\  }}t          ddgd          D ]\  }}t          ||z  ||z            }	t          |	d          }
|
|	k    sJ t          |
          t          t          |	                    k    sJ t          |
          t          t          |	                    k    sJ d S )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::s5zzqAtT4t4 ? ?LLaahh>>>>>>>> Q!Q  ? ?1RGA... 	? 	?DAq!A#qsOOE%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_   rf   ro   rq   rt   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r8   r6   <module>r     s         ? ? ? ? ? ? ? ? ? ? ? ? 3 3 3 3 3 3 3 3 3 3 3 3 " " " " " " / / / / / / / / = = = = = = = = J J J J J J J J J J J J 9 9 9 9 9 9 : : : : : : I I I I I I I I I I I I H H H H H H H H H H A A A A A A A A A A A A A A A A / / / / / / ' ' ' ' ' ' , , , , , , ; ; ; ; ; ; ; ; & & & & & &        && && &&RD D D< < <F F F
7 7 7	 	 	    E E E[ [ [
 
 
(+J +J +J\2 2 2< < <( ( (. . . D  D  DF8? 8? 8?vB B B<! ! !$0 0 0)# )# )#V$ $ $: : : B B B
- 
- 
-P P P$U $U $UN? ? ? ? ?r8   