
    Ed              	          d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dl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 d Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$e%dk    rNeeeeeee e"e#g	Z&g Z'e&D ]@Z( e            Z) e(              e            e)z
  Z) e*de(j%        e(j+        e)fz             ?dS dS )    )random)IIntegerpi)Symbol)sympify)sqrt)sin)factor)simplifyxyz)default_timerc                     d }  |  |  |  |  |  |  |  |  |  | t           dz                                                                                                                                      d          dS )z'real(f(f(f(f(f(f(f(f(f(f(i/2)))))))))))c                 b    t          t          d          dz            | dz  z  t          dz  z   S )N         )r	   r   r   )r   s    ?lib/python3.11/site-packages/sympy/benchmarks/bench_symbench.pyfzbench_R1.<locals>.f   s,    GAJJqL!!!Q$&1,,    r   r   N)r   as_real_imagr   s    r   bench_R1r      s    - - -Aaa!!AAaa!!AAaa!ffII,,  !!
"
"##$$%%2244Q7777r   c                  4      fd   dt                      dS )z!Hermite polynomial hermite(15, y)c                     | dk    rd|z  S | dk    rdS d|z   | dz
  |          z  d| dz
  z   | dz
  |          z  z
                                   S )Nr   r   r   )expand)nr   hermites     r   r!   zbench_R2.<locals>.hermite   sv    6 	Q3J6 	1!GGAE1%%%1q5	''!a%2C2C(CCKKMMMr      N)r   )r!   s   @r   bench_R2r#      s6    N N N N N GBNNNNNr   c                  l     t           t          z   t          z     fdt          d          D              dS )z#a = [bool(f==f) for _ in range(10)]c                 6    g | ]}t          k              S  )bool.0_r   s     r   
<listcomp>zbench_R3.<locals>.<listcomp>$   s#    %%%aT!q&\\%%%r   
   N)r   r   r   ranger   s   @r   bench_R3r.   !   s6    	A	A%%%%599%%%%%%r   c                      d S Nr&   r&   r   r   bench_R4r1   '   s    Dr   c                  h    d } d }t           t          t          g} | |d            ||          }dS )zblowup(L, 8); L=uniq(L)c                     t          |          D ]5}|                     | |         | |dz            z   | |dz            z             6d S )Nr   r   )r-   append)Lr    is      r   blowupzbench_R5.<locals>.blowup.   sS    q 	5 	5AHHqtaAh!AE(24444	5 	5r   c                 $    t          |           }|S r0   )set)r   vs     r   uniqzbench_R5.<locals>.uniq2   s    FFr      Nr   )r7   r;   r5   s      r   bench_R5r=   ,   sM    5 5 5   
Aq	A
F1aLLLQAAAr   c                  R    t          d t          d          D                        dS )z<sum(simplify((x+sin(i))/x+(x-sin(i))/x) for i in range(100))c              3      K   | ]P}t          t          t          |          z   t          z  t          t          |          z
  t          z  z             V  Qd S r0   )r   r   r
   )r)   r6   s     r   	<genexpr>zbench_R6.<locals>.<genexpr><   sK      FFa!c!ff*a1s1vv:q.011FFFFFFr   d   N)sumr-   r&   r   r   bench_R6rC   :   s+    FF5::FFFFFFFFr   c                       t           dz  dt           dz  z  z   dt           dz  z  z   dt           dz  z  z   dt           dz  z  z   d	t           d
z  z  z     fdt          d          D              dS )z+[f.subs(x, random()) for _ in range(10**4)]   "      -   r   	      r,          c                 ^    g | ])}                     t          t                                *S r&   )subsr   r   r(   s     r   r+   zbench_R7.<locals>.<listcomp>B   s+    ///QQVVAvxx///r   '  N)r   r-   r   s   @r   bench_R7rP   ?   ss    	21b52ad7"Qq"uW,r!R%x7"QU(BA////%,,//////r   c                  8    d }  | t           dz  ddd           dS )zright(x^2,0,5,10^4)c                 6   t          |          }t          |          }t          |          }|                     t                                                    }||z
  |z  }|}d}t	          |          D ] }||z  }||                     ||          z  }!||z  S )Nr   )r   atomsr   popr-   rN   )	r   abr    r   Deltaxcestr6   s	            r   rightzbench_R8.<locals>.rightG   s    AJJAJJAJJGGFOO!!a%q 	  	 AKA166!Q<<CC6zr   r   r      rO   N)r   )rZ   s    r   bench_R8r\   E   s3       
E!Q$1er   c                  `    t          t          dz  t          dz  t          dz  z  z
             dS )zfactor(x^20 - pi^5*y^20)   r[   N)r   r   r   r   r&   r   r   	_bench_R9r_   W   s+    
1b52q5B;r   c                  \    d }  | t            t           t          d          dz             dS )zv = [-pi,-pi+1/10..,pi]c                     | g}||d         z
                                   dk    r?|                    |d         |z              ||d         z
                                   dk    ?|d d         S )Nr   )evalfr4   )minmaxstepr:   s       r   srangezbench_R10.<locals>.srange^   st    EQrU{!!##a' 	#HHQrUT\""" QrU{!!##a' 	#"vr   r   r,   N)r   r   )rg   s    r   	bench_R10rh   \   s9      
 FB3GAJJrM"""""r   c                  8    d t          d          D              dS )z.a = [random() + random()*I for w in [0..1000]]c                 X    g | ]'}t                      t                      t          z  z   (S r&   )r   r   )r)   ws     r   r+   zbench_R11.<locals>.<listcomp>h   s)    000qVXX
000r   i  N)r-   r&   r   r   	bench_R11rl   f   s"    00E$KK000000r   c                  x    t           t          z   t          z   dz   dz  } | | dz   z  }|                                 dS )z#e=(x+y+z+1)**7;f=e*(e+1);f.expand()r      N)r   r   r   r   )er   s     r   bench_S1rp   k   s6    	
QQA	1q5	AHHJJJJJr   __main__z
%s%65s: %fN),sympy.core.randomr   sympy.core.numbersr   r   r   sympy.core.symbolr   sympy.core.sympifyr   (sympy.functions.elementary.miscellaneousr	   (sympy.functions.elementary.trigonometricr
   sympy.polys.polytoolsr   sympy.simplify.simplifyr   	sympy.abcr   r   r   timeitr   clockr   r#   r.   r1   r=   rC   rP   r\   r_   rh   rl   rp   __name__
benchmarksreportrV   tprint__doc__r&   r   r   <module>r      s+   $ $ $ $ $ $ / / / / / / / / / / $ $ $ $ $ $ & & & & & & 9 9 9 9 9 9 8 8 8 8 8 8 ( ( ( ( ( ( , , , , , ,           ) ) ) ) ) )8 8 8	 	 	& & &	 	 	
  G G G
0 0 0  $     
# # #1 1 1
   z 9J F 9 9EGG	EGGaKlaj!)Q778888)9 9 9 9r   