
    sgK                        d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZmZmZmZmZ d dlmZmZ d d	lmZmZmZmZmZm Z  d d
l!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZFmGZGmHZHmIZImJZJmKZK d ZLd ZMd ZNd ZOd ZPd ZQd ZRd ZSd ZTd ZUd ZVd ZWd ZXd ZYd ZZd Z[d Z\d Z]d  Z^d! Z_d" Z`d# Zad$ Zbd% Zcd& Zdd' Zed( Zfd) Zgd* Zhd+ Ziy,)-    )Add)Mul)IRationalpi)evaluate)S)DummySymbolsymbols)coshcothcschsechsinhtanh)rootsqrt)coscotcscsecsintan)powsimp)LTR1TR10TR10iTR11_TR11TR12TR12iTR13TR14TR15TR16TR111TR2TR2iTR3TR4TR5TR6TR7TR8TR9TRmorrie_TR56TRpowerhyper_as_trigfuprocess_common_addends
trig_splitas_f_sign_1)verify_numerically)abcxyzc                      t        dt        t              z  t        t              z         dt	        t              z  dt        t              z  z   k(  sJ y )N      )r   r   r>   r   r   r        O/var/www/html/venv/lib/python3.12/site-packages/sympy/simplify/tests/test_fu.pytest_TR1rG      s;    qQx#a& !Qs1vX#a&%8888rE   c            	      x   t        t        t                    t        t              t	        t              z  k(  sJ t        t        t                    t	        t              t        t              z  k(  sJ t        t        t        t              t        t              t	        t              z  z
              dk(  sJ y )Nr   )r)   r   r>   r   r   r   rD   rE   rF   test_TR2rI      ss    s1v;#a&Q-'''s1v;#a&Q-'''s3q6CF3q6M)*+q000rE   c                     t        dt        z  t        t        z  z        dt        z  t        z  k7  sJ t        t	        t              t        t              z        t        t              k(  sJ t        t	        t              t	        t              z  t        t              z        t        t              t	        t              z  k(  sJ t        dt	        t              t        t              z  z        dt        t              z  k(  sJ t        dt	        t              t	        t              z  t        t              z  z        dt        t              z  t	        t              z  k(  sJ t        t	        t              dz  t        t              dz   z        t	        t              t        t              dz   z  dz  k(  sJ t        t	        t              dz  t        t              dz   z  d      t        t        dz        dz  k(  sJ t        t	        d      t        d      dz   z  d      t        t        j                        k(  sJ t        t	        d      t        d      dz   z  d      t        d      k(  sJ t        t	        d      t        d      dz   z  d      t        d      k(  sJ t        t	        d      t        d      dz   z  d      t        dt        j                  z        k(  sJ t        t        d      dz   t	        d      z  d      dt        t        j                        z  k(  sJ t        t        d      dz   t	        d      z  d      dt        d      z  k(  sJ t        t        d      dz   t	        d      z  d      dt        d      z  k(  sJ t        t        d      dz   t	        d      z  d      dt        dt        j                  z        z  k(  sJ t        t        d      dz   t         z  t	        d      t        z  z  d      t        t        j                        t        z  k(  sJ t        t        d      dz   t         z  t	        d      t        z  z  d      t        d      t        z  k(  sJ t        t        d      dz   t         z  t	        d      t        z  z  d      t        d      dz   t         z  t	        d      t        z  z  k(  sJ t        t        d      dz   t         z  t	        d      t        z  z  d      t        d      dz   t         z  t	        d      t        z  z  k(  sJ t        t        d      dz   t        z  t	        d      t         z  z  d      t        t        j                        t         z  k(  sJ t        t        d      dz   t        z  t	        d      t         z  z  d      t        d      t         z  k(  sJ t        t        d      dz   t        z  t	        d      t         z  z  d      t        d      dz   t        z  t	        d      t         z  z  k(  sJ t        t        d      dz   t        z  t	        d      t         z  z  d      t        d      dz   t        z  t	        d      t         z  z  k(  sJ t        dd      } t        t        d      dz   | z  t	        d      |  z  z  d      t        dt        j                  z        |  z  k(  sJ t        dt        d      dz   | z  t	        d      |  z  z  z  d      t        dt        j                  z        | z  k(  sJ y )	NrB   rC   T)half      iinteger)r   r>   r?   r*   r   r   r   r	   Halfr;   r   )rN   s    rF   	test_TR2irR      s   
 1a419!A#)))As1v#a&(((As1vc!f$%QA6663q6#a&=!"aAh...3q6#a&=Q'()Qs1vXc!f_<<<Aq#a&1*%&#a&#a&1**=a*????Aq#a&1*%D1S1XaZ???AA
#$/3qvv;>>>AA
#$/3q6999AA
#$/3q6999AA
#$/3qx=@@@Q!SV#$/1S[=@@@Q!SV#$/1SV8;;;Q!SV#$/1SV8;;;Q!SV#$/1S166]?BBBQ!r"3q619,48CKNJJJQ!r"3q619,48CFAIEEEQ!r"3q619,48SVaZA2<NsSTvWXy<XXXXQ!r"3q619,48SVaZA2<NsSTvWXy<XXXXQ!aA!,48CK1"<MMMMQ!aA!,48CFaRLHHHQ!aA!,48SVaZ!OCPQFVWUWL<XXXXQ!aA!,48SVaZ!OCPQFVWUWL<XXXXT"A#a&1*qQ1"-T:c!AFF(mqb>QQQQCFQJ?3q6QB</0t<AaffHq@PPPPrE   c                     t        t        t        t        t        t        z
  z  z
              t        t        t        t        z
  z  t        z         k(  sJ t        t        dz  t        z         t        t               k(  sJ t        dt        z  dz  t        z         t        t               k(  sJ t        t
        t        t        t        t        fD ]M  }  | t        t        dd      z        }t        |      }t        ||      r|j                  |j                  k7  rMJ  t        d      5  t        dt        z  dz        }d d d        j                  dt        z        rt        |      t        t        dz        k(  sJ y # 1 sw Y   BxY w)	NrB            F	         )r+   r   r?   r>   r   r   r   r   r   r   r   r:   funcr   has)frN   jeqs       rF   test_TR3r_   B   s/   s1q!a%y=!"c!QU)a-&8888r!tax=SVG###r"uQw{Aw&&&3S#s+ =b!Q F!!Q'AFFaff,<<<=
 
% 2b\66!B$<CGs2b5z1111 s   +FFc                      dt         dz  t         dz  t         dz  t         dz  fD ]J  } t        d      5  t        |       }d d d        t        t              rt	        |      t        |       k(  rJJ  y # 1 sw Y   5xY w)Nr      rL   rU   rB   F)r   r   r   
isinstancer,   )rN   r^   s     rF   test_TR4rc   Q   sp    Ar!tRT2a4( 9e_ 	QB	"c"s2w#a&'8889	 	s   A22A;	c                     d } t        t        t              dz  t        t        | dd      t        t              t        t              dz   dz   z  k(  sJ t        t        t              dz  t        t        | dd      t        t              dz  k(  sJ t        t        t              dz  t        t        | dd      t        t              dz   dz   dz  k(  sJ t        t        t              dz  t        t        | dd	      t        t              dz  k(  sJ t        t        t              d
z  t        t        | dd	      t        t              dz   dz   dz  k(  sJ t        t        t              t        z  t        t        | dd	      t        t              t        z  k(  sJ t        t        t              dt        z  dz   z  t        t        | dd	      t        t              dt        z  dz   z  k(  sJ y )Nc                     d| z
  S NrC   rD   r>   s    rF   <lambda>ztest__TR56.<locals>.<lambda>Y   s
    !a% rE   rU   rL   FrB   rC   
   ra   T   )Tr   r>   r   r   )hs    rF   
test__TR56rm   X   s{   ASVQYS!Q.#a&3q619*q.2IIIISVRZc1a/3q62:===SVQYS!Q.CFAI:>A2EEEESVQYS!Q-Q:::SVQYS!R.CFAI:>A2EEEE SVQYS!Q-Q:::SVacAgS!Q5Q!A#'9JJJJrE   c                  :   t        t        t              dz        t        t              dz   dz   k(  sJ t        t        t              dz        t        t              dz  k(  sJ t        t        t              dz        t        t              dz   dz   dz  k(  sJ y NrB   rC   rL   )r-   r   r>   r   rD   rE   rF   test_TR5rq   e   y    s1vqy>c!faiZ!^+++s1vrz?c!frl***s1vqy>s1vqyj1nq0000rE   c                  :   t        t        t              dz        t        t              dz   dz   k(  sJ t        t        t              dz        t        t              dz  k(  sJ t        t        t              dz        t        t              dz   dz   dz  k(  sJ y ro   )r.   r   r>   r   rD   rE   rF   test_TR6rt   k   rr   rE   c                     t        t        t              dz        t        dt        z        dz  t        j                  z   k(  sJ t        t        t              dz  dz         t        dt        z        dz  t        dd      z   k(  sJ y )NrB   rC   rU   )r/   r   r>   r	   rQ   r   rD   rE   rF   test_TR7rv   q   sg    s1vqy>S1XaZ!&&0000s1vqy1}QqS!hq!n!<<<<rE   c            
         t        t        d      t        d      z        t        d      dz  t        d      dz  z   k(  sJ t        t        d      t        d      z        t        d      dz  t        d      dz  z   k(  sJ t        t        d      t        d      z        t        d       dz  t        d      dz  z   k(  sJ t        t        d      t        d      z  t        d      z        t        d      dz  t        d      dz  z
  t        d      dz  z   k(  sJ t        t        d      t        d      z  t        d      z  t        d      z        t        d      dz  t        d      dz  z   t        d      dz  z   t        d      dz  z   t        d	      dz  z   t        d      dz  z   t        dd      z   k(  sJ t        t        d      t        d      z  t        d      z  t        d      z  t        d      z        t        d      dz  t        d      dz  z   dt        d      z  d
z  z   t        d
      d
z  z   t        d      dz  z   t        d	      d
z  z   t        d      d
z  z   t        d      d
z  z   t        dd
      z   t        d      dz  z   k(  sJ t        t        t        t        dd      z        dz  t        t        t        dd      z        dz  z  d
t        t        dz        dz  z  z        t        dd      k(  sJ y )NrB   rU   rM   rC   rL   ra   ri   rj               rV   @   )r0   r   r   r   r   rD   rE   rF   test_TR8r}   v   s   s1vc!f}QCF1H!4444s1vc!f}QCF1H!4444s1vc!f}#a&SVAX!5555s1vc!f}SV#$Aq3q6!8(;c!fQh(FFFFs1vc!f}SV#CF*+Aq3r719s1vax'#a&(2SWQY>Aq	Aq>	"" " " s1vc!f}SV#CF*3q612B	CF1HqQx{*SWRZ7#a&(BB
	WRZ	 "%b'"*	-/72	?ADQ	JJ J J s2hq!n$%q(RA->)?)BBBs2a4yRS|OTUYabcegYhhhhrE   c            
      
   t         j                  } d| z  }t        |       | k(  sJ t        t        d      t        d      z         dt        |       z  t        |      z  k(  sJ t        t        d      t        d      z
        dt	        |       z  t	        |      z  k(  sJ t        t	        d      t	        d      z
        dt	        |       z  t        |      z  k(  sJ t        t	        d      t	        d      z         dt	        |      z  t        |       z  k(  sJ t        t        d      dt	        d      z  z   dt	        d      z  z         t        d      dt	        |      z  t        |       z  z   k(  sJ t        t        d      t        d      z   dt        d      z  t        d      z  z         dt        d      z  t        d      z  k(  sJ t        t        d      t        d      z   t        d      z  dz  t        d      z         dt        d      z  t        d      z  k(  sJ t        t        d      t        d      z   t        d      z   t        d      z         dt        t         j                        z  t        d      z  t        t        dd            z  k(  sJ t        t        d      t        d      t        d      z  z         t        d      t        d      t        d      z  z   k(  sJ t        t        t               t        t        t        z        z         dt	        t        t        z  dz  t        dz  z
        z  t	        t        t        z  dz  t        dz  z         z  k(  sJ t        t	        t               t	        t        t        z        z         dt	        t        t        z  dz  t        dz  z
        z  t        t        t        z  dz  t        dz  z         z  k(  sJ t        t              }t	        t              }d	D ]  }||f||ft        t              t        t        t        z        ft	        t              t	        t        t        z        ffD ]  } t        ||       }t        |D cg c]
  }t        |  c} }t        |      }| d
   j                  | d   j                  k(  r(t        ||j                  d            r2|j                  s&| d   j                  | d
   j                  k7  s||k7  sJ   y c c}w )NrU   rC   rB   rp   rL   rM   ra   rW   )rC   rC   )rC   )r   rC   )r   r   r   Ttrig)r	   rQ   r1   r   r   r   r?   r>   zipr   r   rZ   r:   expandis_Add)	r;   r<   r=   ssiargsaiexts	            rF   test_TR9r      s   	A	!Aq6Q;;s1vA1SV8CF?222s1vA1SV8CF?222s1vA2c!f9SV#3333s1vA1SV8CF?222s1v#a& 1SV8+,A3q6#a&0HHHHs1vA3q6#a&01Qs1vXc!f_DDDAQQ')CF23qQxAFFFs1vAQ'#a&01	#aff+c!fS!Q001 1 1s1vAs1v%&#a&3q6#a&=*@@@@AwQqS!"bQqSUQqS[)9&9#ac!eack:J&JJJJAwQqS!"aAaCEAaCK(8&8QqSUQqS[9I&IIIIAAAA2 7a&1a&3q63qs8"4s1vs1Q3x6HI 	7Ar1:D$/BsBx/0BBA!		QqTYY.&r1888+>?188Q499!		)bAg7 7		77 0s   5Tc                     t        t        t        t        z               t	        t               t	        t              z  t        t              t        t              z  z   k(  sJ t        t	        t        t        z               t	        t              t        t              z  t	        t              t        t              z  z   k(  sJ t        t	        t        t        z   t
        z               t	        t               t	        t              z  t        t              t        t              z  z   t	        t
              z  t	        t              t        t              z  t	        t              t        t              z  z   t        t
              z  z   k(  sJ t        t        t        t        z   t
        z               t	        t               t	        t              z  t        t              t        t              z  z   t        t
              z  t	        t              t        t              z  t	        t              t        t              z  z   t	        t
              z  z
  k(  sJ y N)r   r   r;   r<   r   r=   rD   rE   rF   	test_TR10r      sn   AE
Aws1v~As1v====AE
s1vc!f}s1vc!f}<<<<AEAI
a&Q#a&Q-	'Q/	QAQA	&A.	// / / AEAI
a&Q#a&Q-	'Q/	QAQA	&A.	// / /rE   c            
      ^   t        t        d      t        d      z  t        d      t        d      z  z         t        d      k(  sJ t        t        d      t        d      z  t        d      t        d      z  z
        t        d      k(  sJ t        t        d      t        d      z  t        d      t        d      z  z
        t        d      k(  sJ t        t        d      t        d      z  t        d      t        d      z  z         t        d      k(  sJ t        t        d      t        d      z  t        d      t        d      z  z   dz         t        d      dz   k(  sJ t        t        d      t        d      z  t        d      t        d      z  z   t        d      z         t        d      t        d      z   k(  sJ t        dt        d      z  t        d      z  dt        d      z  t        d      z  z   t        d      z         dt        d      z  t        d      z   k(  sJ t        t        d      t        d      z  t        d      t        d      t        d      z  t        d      t        d      z  z   z  z         t        d      k(  sJ t        d      t        d      z  t        d      t        d      t        d      z  t        d      t        d      z  z   z  z   t        d      z  t        d      t        d      z  z   } t        |       t        | j                               cxk(  rt        d      k(  sJ  J t        t	        d      t        t
              z  t
        z  t	        d      t        t
              z  t
        z  z         dt	        d      z  t
        z  t        t
        t        dz  z         z  k(  sJ t        t        t
              t	        d      z  t        t
              t	        d      z  z   t        t
              t	        d      z  dz  z   t        t
              t	        d      z  dz  z         dt	        d      z  t        t
        t        dz  z         z  dz  k(  sJ t        t        t
              t	        d      z  t        t
              t	        d      z  z   t        t              t	        d      z  dz  z   t        t              t	        d      z  dz  z         t	        d      t        t
        t        dz  z         z  dz  t	        d      t        t        t        dz  z         z  dz  z   k(  sJ t        t        t
              t	        d      t        t
              z  z   dt	        d      z  t        t
        t        dz  z         z  z         dt        t
              z  k(  sJ t        t        t
              t	        d      t        t
              z  z   dt	        d      z  t        t
        t        dz  z         z  z   dt        t
              z  z         dt	        d      z  t        t
        t        dz  z         z  k(  sJ t        t        d      t        d      z  t        d      t        d      z  z         t        d      t        d      z  t        d      t        d      z  z   k(  sJ t        d	d
      }t        t	        d      t        t
              z  |z  t	        d      t        t
              z  |z  z         dt	        d      z  t        t
        t        dz  z         z  |z  k(  sJ t        t
              }t        t
              }t        t              }t        t              }dD ]q  }||z  ||z  f||z  ||z  ffD ]X  }t        ||      }t        |D 	cg c]
  }	t        |	  c}	 }
t        |
      }|
|j                  d      z
  s|j                  sXJ  s t        t
              }t        t
              }t        t        dz        }t        t        dz        }dD ]q  }||z  ||z  f||z  ||z  ffD ]X  }t        ||      }t        |D 	cg c]
  }	t        |	  c}	 }
t        |
      }|
|j                  d      z
  s|j                  sXJ  s y c c}	w c c}	w )NrC   rU   rB   rL   rV   rM   ra   rW   AFcommutativer   Tr   )r   r   r   r   r   r>   r   r?   r   r   r   r   r   )r^   r   r=   r   rl   rr   argsir   r   r   r   s               rF   
test_TR10ir      s   QAQA./3q6999QAQA./3q6999QAQA./3q6999QAQA./3q6999QAQA.23s1vzAAAQAQA.Q78CFSVOKKK3q6#a&1SV8CF?2SV;<	#a&3q6  QAQQAQA)F!GGHA  
a&Q-#a&As1vAs1v%' '(+A
/14QA
?B9biik*4c!f44444aQ!DGCFN1$445	$q'	!CBqDM!" " "QQ#a&a.0F47N1"1vd1g~a/0 145d1gIc!bd(m4KA4MN N NQQ#a&a.0F47N1"1vd1g~a/0 1QA1Ha$q'#a"Q$h-"7"99: : : Q$q'#a&.(1T!W9SRT]+BBCqQxOOOQ$q'#a&.(d1gIc!bd(m#$&'Ah/ 034T!W9SRT]3JK K KQAQA./As1vAs1v%& & & 	s&AaQ!DGCFN1$445	$q'	#a"Q$h-!" " " 	AAAAAAAA2 >sAaCj1Q3!*- 	>Er5>D$/BsBx/0Bb	AQXX4X00AHH==		>> 	AAAABqD	ABqD	A2 >sAaCj1Q3!*- 	>Er5>D$/BsBx/0Bb	AQXX4X00AHH==		>> 0 0s   'b%b*c            	      4   t        t        dt        z              dt        t              z  t        t              z  k(  sJ t        t        dt        z              dt        t              dz   t        t              dz  z   t        t              z  t        t              z  z  k(  sJ t        t        t        t	        dd      z              dt        t        dz        dz   t        t        dz        dz  z   t        t        dz        z  t        t        dz        z  z  k(  sJ t        t        dt        z              t        t              dz   t        t              dz  z   k(  sJ t        t        dt        z              t        t              dz   t        t              dz  z   dz  dt        t              dz  z  t        t              dz  z  z
  k(  sJ t        t        d            t        d      k(  sJ t        t        t
        t	        dd      z        t
        t	        dd      z        t        t
        t	        dd      z        dz   t        t
        t	        dd      z        dz  z   k(  sJ t        t        d      d      t        d      dz   t        d      dz  z   k(  sJ t        t        d      d      t        d      k(  sJ t        t        t              t        t        dz        z  t        dz        dt        t        dz        z  k(  sJ y )NrB   rL   rU   rV   ra   )r    r   r>   r   r   r   rD   rE   rF   	test_TR11r      sq   AaC>Qs1vXc!f_,,,AaC>Q#a&!)c!fai!7Q ?A FGGGGAhq!n$%&	S1Xq[L3qs8Q;&AaC0QqS9:; ; ; AaC>c!faiZ#a&!)3333AaC>
a&!)c!fai	!#aA	k#a&!)&;;< < < A<3q6!!!Bx1~%&8Aq>(9:s2hqRSnCT?UWX?X>X[^_abjklnobp_p[qst[t>ttttA?s1vqyj3q6194444A?c!f$$$As1Q3x1%3qs8333rE   c            	      &   t        t        t        dz        t        dt        z        z  t        t        dz        z  t        t        dz        t        t        dz        z  z        dt        t        dz        z  t        t        dz        z  t        dt        z        z  k(  slJ t        t        t        dz        t        dt        z        z  t        t        dz        z  t        t        dz        t        t        dz        z  z               t        t        t        dz        t        t        dz        z        dt        t        dz        z  k(  sJ t        t        t        dz        t        t        dz        z        ddt        t        dz        z  z  k(  sJ t        t        dt        z        t        t        dz        z  t        t        dz        z        t        dt        z        dt        t        dz        z  z  k(  sFJ t        t        dt        z        t        t        dz        z  t        t        dz        z               t        t        t              t        t        dz        z        dt        t        dz        z  k(  sJ y )NrU   rB   rL   ra   rj   rC   )r!   r   r>   r   rD   rE   rF   
test__TR11r      s   QqS#ac("3qs8+S1Xc!A#h->?@	#ac(
3qs8C!H$% [%*3qs8C!H+<S1X+Es1Q3xPSTUVWTWPXGX+Y%Z[ %QqS#ac("#qQqSz111QqS#ac("#q!C!H*~555QqS#ac("3qs8+,AaC!C!H*0EEhuSQRSTQTXVYZ[\]Z]V^M^_bcdefcf_gMgGhhEQAaC!Qs1Q3xZ///rE   c                     t        t        t        t        z               t        t              t        t              z   t        t               t        t              z  dz   z  k(  sJ t        t        t        t        z   t        z               t        t              t        t              t        t              z   t        t               t        t              z  dz   z  z   dt        t              t        t              z   t        t              z  t        t               t        t              z  dz   z  z
  z  k(  sJ t        t        t        t        z              t        t        t        z        k(  sJ y rf   )r"   r   r>   r?   r@   rD   rE   rF   	test_TR12r      s    AE
AQ3q6'#a&.12DEEEEAEAI	Q3q6CF?c!fWSV^a%78	8	SVc!f_c!f$s1vgc!fnq&899	;; ; ; AaC>S1X%%%rE   c                     t        t        d      t        d      z        t        d       t        d      z  t        d      t        d      z  z
  dz   k(  sJ t        t        d      t        d      z        dt        d      t        d      z  z   t        d      t        d      z  z   k(  sJ t        t        d      t        d      z  t        d      z        t        d       t        d      z  t        d      t        d      z  z
  dz   t        d      z  k(  sJ t        t        d      t        d      z  t        d      z        t        d       t        d      z  dz   t        d      t        d      z  z
  t        d      z  k(  sJ y )NrU   rB   rM   rC   )r$   r   r   rD   rE   rF   	test_TR13r     s>   As1v3q6'#a&.3q6#a&="@1"DDDDAs1v!c!fSVm"3c!fSVm"CCCCAs1vc!f$%
a&Q#a&Q-	'!	+SV34 4 4As1vc!f$%
a&Q!	c!fSVm	+SV34 4 4rE   c                  ^    t        t        t              t        t              z         dk(  sJ y NrB   )r   r   r>   r   rD   rE   rF   test_Lr     s!    SVc!f_"""rE   c                     t        t        d      dz  t        d      dz  z   t        t        dz        z         t	        dd      k(  sJ t        t        d      t        t              z  t        d      t        t              z  z         dt        d      z  t        t        t        dz  z         z  k(  sJ t        t              dz  t        t              dz  z
  t        t              dz  z   dt        t              dz  z  z   } t        |       t        t              dz  dt        t              dz  z  z
  dz   k(  sJ t        t        j                  t        dt        z        dz  z
        t        t              dz  k(  sJ t        t        t              t        t              t        t              z
  z  t        t              t        t              t        t              z   z  z         t        d      t        t        t        z   t        dz  z         z  k(  sJ t        t        d      t        t              z  dz  t        t              dz  z         t        t        t        dz  z         k(  sJ t        dt        dt        z        dz  dz  z
  t        t              dz  z
  t        t              dz  z
        t        t              dz   t        t              dz  z   k(  sJ t        t        t        t	        dd      z              t        t        dz        k(  sJ t        t        t        dz        t        t        t	        dd      z        z  t        t        t	        dd      z        z  t        t        t	        dd      z        z        t	        dd	      k(  sJ t        t        t        t	        d
d      z        t        t        t	        dd      z        z   t        d      t        t        t	        dd      z        z  t        t        t	        d
d      z        z  z
        t        d       k(  sJ t        t        d      t        d      z        t        d      t        d      z  k(  sJ t        t        d      D cg c]  }t        d|z         c} }t        |      t        d      dt        d      z  z  k(  sJ t        t        t              t        t        t              dz        z         t        t              t        t        t              dz        z   k(  sJ t        dt        t              dz  z  dt        t              z  z   dt        d      z  t        t              dz  z  z   dt        d      z  t        t              z  z   t        dt        z        dz   z        d
t        t              z  dt        d      z  t        t              z  z   k(  sJ y c c}w )N2   rB   ra   rU   rL   rC   rW      ry   rV   rM   ri   i   i#   )r6   r   r   r   r   r   r>   r?   r	   rQ   r;   r<   r   r   range)r^   rN   exprs      rF   test_fur     s   c"gqj3r7A:%BqD	12hq!nDDDd1gc!fntAws1v~-.!DG)CBqDM2IIII 
QSVQY	Q	*Qs1vqy[	8Bb6SVQY3q619,q0000affs1Q3xz!"c!fai///c!fc!fs1vo&QQ#a&)AABQAEBqDL!!" " " d1gc!fnQQ)*c!bd(m;;;a#ac(A+a-#a&!)+c!fai78	Q
SVQY   c"Xa^#$%RU333c"Q$iBx1~-..s2hq!n3D/EEc"XVWYZ^J[F\\]aijkmoappppBx2#b!R&8"99DGC8TUWY?HZD[<[\_`bcklmoqcr`r\s<ssu	a   c!fSVmAs1v---E"I.qQT./Dd8s4y$s1v+.... c!ftCFAI&'3q6DQO+CCCCs3q619}r#a&y(1T!W9SVQY+>>473q6AQQUXYZ[\Y\U]`aUacd	#a&1T!W9SV##$ $ $ /s   =Wc                     t        t        t              t        t              z  d       t	        t              k(  sJ t        t        t              t        t              z  d       t        t              t        t              z  k(  sJ y )Nc                 $     | j                          S r   	count_opsrg   s    rF   rh   z test_objective.<locals>.<lambda>:  s    {q{{} rE   )measurec                 &     | j                           S r   r   rg   s    rF   rh   z test_objective.<locals>.<lambda><  s    ~ rE   )r6   r   r>   r   r   rD   rE   rF   test_objectiver   9  sd    c!fSVm%<=F  c!fSVm%=>F3q6M  rE   c                  J    d } t        t        g dddi| d d      dk(  sJ y )Nc                 X    t        | j                  D cg c]
  }||dz  z   c} S c c}w r   )r   r   )r>   rN   s     rF   rh   z-test_process_common_addends.<locals>.<lambda>C  s%    31662aQqS23 2s   ')rC   rB   rU   rL   r   Fc                     | dz  S r   rD   rg   s    rF   rh   z-test_process_common_addends.<locals>.<lambda>E  s
    qs rE   )key2key1ra   )r7   r   )dos    rF   test_process_common_addendsr   @  s9     
4B!#|"De"Db(+DE E ErE   c                  n   t        t        t              t        t                    dddt        t        dfk(  sJ t        dt        t              z  dt        t              z        dddt        t        dfk(  sJ t        t        t              t	        t              z  t        t              t	        t              z        t	        t              ddt        t        dfk(  sJ t        t        t              t        d       t	        t              z  d      dddt        t        dz  d	fk(  sJ t        t        t              t	        t              d      t        d      ddt        t        d
z  d	fk(  sJ t        t        t              t	        t               d      t        d      ddt        t        d
z  d	fk(  sJ t        t        d      t        t              z  t        d       t	        t              z  d      dt        d      z  ddt        t        dz  d	fk(  sJ t        t        d       t        t              z  t        d       t	        t              z  d      dt        d      z  ddt        t        dz  d	fk(  sJ t        t        t              t        d      z  t	        t              t        d      z  d      t        d      dz  ddt        t        dz  d	fk(  sJ t        t        d       t        t              z  t	        t              z  t        d       t	        t              z  t	        t              z  d      dt        d      z  t	        t              z  ddt        t        dz  d	fk(  sJ t        t        t              t	        t                    J t        t        t              t	        t                    J t        dt        t              z  t	        t                     J t        t        t              t        d       t	        t              z        J t        t        t              t        t              z  t	        t              t	        t              z        J t        t        t              t        t              z  t	        t              t	        t              z        J t        t        d       t        t              z  t        d      t	        t              z  t	        t              z  d      	 J t        t        d      t        t              z  t        d      d      J t        t        d      t        t        d      z  t	        d      t        d      z  d      J t        t        d      t        d      z  t        d      t	        d      z  d      J y )NrC   TrB   rp   r   rU   )twora   FrL   rM   rV   )	r8   r   r>   r?   r   r   r   r@   r   rD   rE   rF   test_trig_splitr   H  s[   c!fc!f%!Q1a)>>>>aAh3q6	*q!RAt.DDDDc!fSVmSVCF]3	QAq!T"# # # c!ftAwhs1vo48	
Ar1bdE"# # #c!fc!f$/	a!Q2a4'( ( (c!fs1vg40	a!RBqD%() ) )d1gc!fntAwhs1vo4@	
47Ar1bdE*+ + +tAwhs1voQxADA	DGQ1bdE*+ + +c!fT!Wnc!fT!Wn$?	aAq!RT5)* * *tAwhs1voc!f,!WHSVOCF".	DGCF	Aq!RT512 2 2 c!fc!f%---c!fc!f%---aAhQ(000c!ftAwhs1vo.666c!fSVmSVCF]3;;;c!fSVmSVCF]3;;;tAwhs1votAws1v~c!f'<$G   d1gd1gos1v48@@@d1gd1aj(#a&Q-TBJJJc!fSVmSVCF]=EEErE   c                     t        dt        t        d      D  cg c]  } t        |        c}  z        dt	        d      z  t	        d      z  t        d      z  t        d      z  t        d      z  dt	        d      z  t	        d	      z  z  k(  sJ t        t
              t
        k(  sJ t        d
t
        z        d
t
        z  k(  sJ t        t        dz        t        t        t        d
d      z        z  t        t        t        dd      z        z  }t        t        |            t        dd      k(  sJ t        t        dd      D  cg c]  } t        d
| z  t        z  dz         c}  }t        t        t        |                  t        dd      k(  sJ t        t
              t        t
        d
z        z  }t        |      |k(  sJ t        t
        d
z        t	        t
        d
z        z  t        t
              d	z  z  }t        |      t	        d
t
        z        t        t
              d
z  z  dz  k(  sJ y c c} w c c} w )NrV   ri   r{   ry   rM   rW   r|   rC   rU   rB   rL   r   rj      i   )
r2   r   r   r   r   r>   r   r   r0   r+   )rN   er^   s      rF   test_TRmorrier   l  s   AcE"I6qCF6778	#b'	#b'#a& Q'A.3q6	#a&0@AB B BA;!AaC=AaCBqD	#b!Q'((RA->)??Ax{xA...uQ|4!c!Q$r'"*o45As8A; HQ$6666	QAaCBB<2	QqS#ac(	3q619	$BB<3qs8CFAI-a//// 7 5s   H9	H>c            	         t        dt        t              dz  z        dt        t              dz  z  k(  sJ t        t        t              dz  t        t        dz        dz  z        dt        t              z  dz  t        dt        z        dz  z   t        t               dz  t        dt        z        dz  z   t	        dd      z   z  k(  sJ t        dd      D ]p  } t        t        t              | z  t        t        t              | z              sJ t        t        t              | z  t        t        t              | z              rpJ  y )NrC   rB   rU   rL   rj   )r4   r   r>   r   r   r   r:   )ks    rF   test_TRpowerr   }  s   1SVQY;1SVQY;...3q619S1Xq[()	
3q6!c!A#hqj	 CF719s1Q3xz#9HQN#JKL L L1a[ A!#a&!)WSVQY-?@@@!#a&!)WSVQY-?@@@ArE   c                  *   ddl m} m} t        t              dz  t        t              dz  z   }t        |      \  }} |t        |            t        dt        z        k(  sJ t        t        t        t        z               \  }} |t        |            t        t              t        t              z   t        t              t        t              z  dz   z  k(  sJ t               } | t        t              |      t        t        t        |z        z  k(  sJ  | t        t              |      t        t        t        |z        z  k(  sJ  | t        t              |      t!        t        |z        t        z  k(  sJ  | t        t              |      t#        t        |z        k(  sJ  | t%        t              |      t'        t        |z        k(  sJ  | t)        t              |      t+        t        |z        t        z  k(  sJ t        t
        t        t        t$        t(        fD ]#  } |t,              } | | ||      |      |k(  r#J   |t#        t        t        z  t.        z         t              t        t        t.        t        z  z         k(  sJ  |t        t        t        z  t.        z         t              t        t        t.        t        z  z         t        z  k(  sJ  |t        t        t        z  t.        z         t              t        t        t.        t        z  z         t        z  k(  sJ  |t!        t        t        z  t.        z         t              t        t        t.        t        z  z         t        z  k(  sJ  |t'        t        t        z  t.        z         t              t%        t        t.        t        z  z         k(  sJ  |t+        t        t        z  t.        z         t              t)        t        t.        t        z  z         t        z  k(  sJ y )Nr   )_osborne	_osborneirB   rC   )sympy.simplify.fur   r   r   r>   r   r5   r6   r   r?   r"   r
   r   r   r   r   r   r   r   r   r   r   r   r@   )	r   r   r^   r   r\   r   drZ   rl   s	            rF   test_hyper_as_trigr     s   5	a!d1gqj	 BDAqRU8tAaCy   a!e%DAqT!W:$q'DG+d1gd1go.ABBBBADGQ1S1X:---DGQ1S1X:---DGQ3qs8A:---DGQ3qs8+++DGQ3qs8+++DGQ3qs8A:---tT4t4 1H!Q+q0001 S1q\1%a!A#g666S1q\1%a!A#gq888S1q\1%a!A#gq888S1q\1%a!A#gq888S1q\1%a!A#g666S1q\1%a!A#gq888rE   c                     t         t        t        fD  cg c]  } t        |        c} \  }}}t	        ||z   | |z  dz   z        t        t         t        z         k(  sJ t	        ||z   ||z  dz
  z        t        t         t        z          k(  sJ t	        | |z
  ||z  dz
  z        t        t         t        z         k(  sJ ||z   | |z  dz   dz  z  d|z  d|z  z
  z  d||z  dz
  z  z  }t	        |j                               dt        t         t        z         z  t        t         t        z         z  t        t               t        t              z   dz
  z  dz  k(  sJ t	        t        t              t        t              z        t        t              t        t              z  k(  sJ |t        d      z   | |z  dz   z  }t	        |      |k(  sJ ||z   dz   dz  | |z  dz   z  }t	        |      |k(  sJ || |z  dz   z  }t	        |      |k(  sJ ||z   t         dz   z  j                         dz  ||z  dz
  z  }t	        |      t         dz   dz   t        t         t        z         z  k(  sJ y c c} w )NrC   rB   rU   )	r;   r<   r=   r   r#   r   r>   r   r   )rN   tatbtcr^   s        rF   
test_TR12ir     sD   #$a),Q#a&,JBB"r'RCFQJ'(CAJ666"r'BrEAI&'CAJ;6662#(RUQY'(CAJ666
r'RCFQJ?	"BrEAbDL	11beai=	AB
3q1u:c!a%j #a&3q6/A"56q89 9 9QA3q6#a&=000
s1v+B
	#B9??
r'A+	B3r6A:	&B9??	bSVaZB9??Ga!e
$
$
&	*BrEAI	6B9!a%!CAJ.... -s   I+c                     t        t              dz
  t        t              dz   z  } t        t              dz   }t        |       |k(  sJ t        d| z        d|z  k(  sJ t        t        t              dz
  dz  t        t              dz   dz  z        |dz  k(  sJ t        t        t              dz
  dz  t        t              dz   dz  z        |dz  t        t              dz   z  k(  sJ t        t        t              dz
  dz  t        t              dz   dz  z        |dz  t        t              dz
  z  k(  sJ t        t              dz
  t        z  t        t              dz   t        z  z  } t        |       | k(  sJ t        t              dz
  t        z  t        t              dz   z  } t        |       | k(  sJ t        t              dz
  dz  t        t              dz   z  } t        |       | k(  sJ t        dd      }t        t        t              dz
  |z  t        t              dz   |z  z        ||z  k(  sJ t        t        t              dz
  |z  t        t              dz   |z  z        t        t              dz   |z  k(  sJ t        t              dz
  |dz   z  t        t              dz   |z  z  } t        |       t        t              dz
  ||z  z  | fv sJ t        t        t              dz
  t        t              dz   z        t        t              dz   k(  sJ t        t              dz   t        t              dz
  z  }t        t              dz
  dz  t        t              dz   z  }dt        t              dz
  z  dt        t              dz   z  z  }t        ||z  |z  t        dz
  z        dt        dz
  t        t              dz  z  t        t              dz  z  z  k(  sJ y )	NrC   rB   rU   rN   TrO   irL   )r   r>   r   r%   r?   r   r   )r^   ansrN   p1p2p3s         rF   	test_TR14r     s9   
a&1*s1vz	"Bq619*C8s??":3Q!aQ!a/0CF:::Q!aQ!a/0CFCFQJ4GGGGQ!aQ!a/0CFCFQJ4GGGG
a&1*q#a&1*q	(B8r>>
a&1*q#a&1*	%B8r>>
a&1*q#a&1*	%B8r>>T"AQ!aQ!a/0CF:::Q!aQ!a/0c!faiZ!OCCC
a&1*A	A
Q	.B8Q!S!V+R0000Q!c!fqj)*s1vqyj888
a&1*s1vz	"B
a&1*aQ!	$B
SVaZ.1c!fqj>	*B2b!a% !S1q5#a&!)*;CFAI*E%FFFFrE   c                  R   t        ddt        t              dz  z  z
        t        t              dz   k(  sJ t	        ddt        t              dz  z  z
        t        t              dz   k(  sJ t        ddt        t              dz  z  z
        dt        t              dz  z
  k(  sJ y )NrC   rB   )r&   r   r>   r   r'   r   r   r(   rD   rE   rF   test_TR15_16_17r     s    Ac!faiK SVQYJ...Ac!faiK SVQYJ...Qs1vqy[!QQ]222rE   c                     t        t        dz         dt        dfk(  sJ t        t        dz
        dt        dfk(  sJ t        t         dz         dt        dfk(  sJ t        t         dz
        dt        dfk(  sJ t        dt        z  dz         dt        dfk(  sJ t        t        t        z  t        z
        t        t        dfk(  sJ t        t         t        z  t        z         t         t        dfk(  sJ y )NrC   r   rB   )r9   r>   r?   rD   rE   rF   test_as_f_sign_1r     s    q1u!Q***q1u!Q+++rAv2q"+---rAv2q!*,,,qsQwAq!9,,,qsQwAq":---r!tax aRBK///rE   c                     t        dd      } t        dd      }t        dt        t              z  t	        t              z  |z  | z        t	        dt        z        |z  | z  k(  sJ t        t        d      t        d      z  |z  | z        t        d       t        d      z  t        d      t        d      z  z
  dz   |z  | z  k(  sJ dt        t              z  t	        t              z  |z  | z  t        t              dz  z   j                         t	        dt        z        |z  | z  t        dt        z        dz  z   t        j                  dz  z   k(  sJ y )	Nr   Fr   BrB   rU   rM   rC   )
r   r0   r   r>   r   r$   r   simplifyr	   One)r   r   s     rF   test_issue_25590r     s"   s&As&AqQxAq "#s1Q3xz!|333As1va!"Aws1v~As1v'E'I1&LQ&NNNN c!fHSVOAa#a&!)+5573qs8A:a<#aPQc(ST*;TWXW\W\]^W^;^^^^rE   N)jsympy.core.addr   sympy.core.mulr   sympy.core.numbersr   r   r   sympy.core.parametersr   sympy.core.singletonr	   sympy.core.symbolr
   r   r   %sympy.functions.elementary.hyperbolicr   r   r   r   r   r   (sympy.functions.elementary.miscellaneousr   r   (sympy.functions.elementary.trigonometricr   r   r   r   r   r   sympy.simplify.powsimpr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   rk   r4   r5   r6   r7   r8   r9   sympy.core.randomr:   	sympy.abcr;   r<   r=   r>   r?   r@   rG   rI   rR   r_   rc   rm   rq   rt   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD   rE   rF   <module>r      s     0 0 * " 6 6 V V A S S *       
 1 & &91!QH29
K11=
i78/4>n4$0&4##$LE!FH0"A9</&G830	_rE   