
    g              	       |   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(  rOe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(jJ                  e(jV                  e)fz         > yy)    )random)IIntegerpi)Symbol)sympify)sqrt)sin)factor)simplifyxyz)default_timerc                      d }  |  |  |  |  |  |  |  |  |  | t         dz                                                              j                         d    y)z'real(f(f(f(f(f(f(f(f(f(f(i/2)))))))))))c                 P    t        t        d      dz        | dz  z  t        dz  z   S )N         )r	   r   r   )r   s    T/var/www/openai/venv/lib/python3.12/site-packages/sympy/benchmarks/bench_symbench.pyfzbench_R1.<locals>.f   s'    GAJqL!!Q$&1,,    r   r   N)r   as_real_imag)r   s    r   bench_R1r      sJ    -a!Aa!Aa!fI, !
"#$%224Q7r   c                  *      fd   dt                y)z!Hermite polynomial hermite(15, y)c                     | dk(  rd|z  S | dk(  ryd|z   | dz
  |      z  d| dz
  z   | dz
  |      z  z
  j                         S )Nr   r   r   )expand)nr   hermites     r   r    zbench_R2.<locals>.hermite   s]    6Q3J6!GAE1%%1q5	'!a%2C(CCKKMMr      N)r   )r    s   @r   bench_R2r"      s    N BNr   c                      t         t        z   t        z   } t        d      D cg c]  }t	        | | k(         c} yc c}w )z#a = [bool(f==f) for _ in range(10)]
   N)r   r   r   rangeboolr   _s     r   bench_R3r)   !   s0    	A	A 9%9aT!q&\9%%s   ;c                       y N r,   r   r   bench_R4r-   '   s    r   c                  T    d } d }t         t        t        g} | |d        ||      }y)zblowup(L, 8); L=uniq(L)c                 p    t        |      D ](  }| j                  | |   | |dz      z   | |dz      z         * y )Nr   r   )r%   append)Lr   is      r   blowupzbench_R5.<locals>.blowup.   s9    qAHHqtaAh!AE(24 r   c                     t        |       }|S r+   )set)r   vs     r   uniqzbench_R5.<locals>.uniq2   s    Fr      Nr   )r3   r7   r1   s      r   bench_R5r9   ,   s+    5 
Aq	A
1aLQAr   c                  :    t        d t        d      D               y)z<sum(simplify((x+sin(i))/x+(x-sin(i))/x) for i in range(100))c              3      K   | ]@  }t        t        t        |      z   t        z  t        t        |      z
  t        z  z          B y wr+   )r   r   r
   ).0r2   s     r   	<genexpr>zbench_R6.<locals>.<genexpr><   s3     F:a!c!f*a1s1v:q.01:s   AAd   N)sumr%   r,   r   r   bench_R6r@   :   s    F5: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   } t        d      D cg c]   }| j                  t         t                     " c} yc c}w )z+[f.subs(x, random()) for _ in range(10**4)]   "      -   r   	      r$          '  N)r   r%   subsr   r'   s     r   bench_R7rL   ?   sr    	21b52ad7"Qq"uW,r!R%x7"QU(BA"',/,QQVVAvx,//s   %Bc                  .    d }  | t         dz  ddd       y)zright(x^2,0,5,10^4)c                     t        |      }t        |      }t        |      }| j                  t              j                         }||z
  |z  }|}d}t	        |      D ]  }||z  }|| j                  ||      z  } ||z  S )Nr   )r   atomsr   popr%   rK   )	r   abr   r   Deltaxcestr2   s	            r   rightzbench_R8.<locals>.rightG   s    AJAJAJGGFO!a%qAKA166!Q<C  6zr   r   r      rJ   N)r   )rV   s    r   bench_R8rX   E   s     
!Q$1er   c                  P    t        t        dz  t        dz  t        dz  z  z
         y)zfactor(x^20 - pi^5*y^20)   rW   N)r   r   r   r   r,   r   r   	_bench_R9r[   W   s    
1b52q5B;r   c                  H    d }  | t          t         t        d      dz         y)zv = [-pi,-pi+1/10..,pi]c                     | g}||d   z
  j                         dkD  r1|j                  |d   |z          ||d   z
  j                         dkD  r1|d d S )Nr   )evalfr0   )minmaxstepr6   s       r   srangezbench_R10.<locals>.srange^   s\    EQrU{!!#a'HHQrUT\" QrU{!!#a'"vr   r   r$   N)r   r   )rc   s    r   	bench_R10rd   \   s    
 B3GAJrM"r   c                  t    t        d      D  cg c]  } t               t               t        z  z     c}  yc c} w )z.a = [random() + random()*I for w in [0..1000]]i  N)r%   r   r   )ws    r   	bench_R11rg   f   s(    $)$K0KqVX
K00s   #5c                  h    t         t        z   t        z   dz   dz  } | | dz   z  }|j                          y)z#e=(x+y+z+1)**7;f=e*(e+1);f.expand()r      N)r   r   r   r   )er   s     r   bench_S1rk   k   s.    	
QQA	1q5	AHHJr   __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)   r-   r9   r@   rL   rX   r[   rd   rg   rk   __name__
benchmarksreportrR   tprint__doc__r,   r   r   <module>r~      s    $ / / $ & 9 8 ( ,   )8	&	
G
0$ 
#1
 zJ FG	GaKlajj!))Q778	 ! r   