o
    jgµ  ã                	   @   sH  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d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd „ Z#d!d"„ Z$e%d#kr eeeeeee e"e#g	Z&g Z'e&D ]Z(eƒ Z)e(ƒ  eƒ e) Z)e*d$e(j%e(j+e)f ƒ q‡d%S d%S )&é    )Úrandom)ÚIÚIntegerÚpi)ÚSymbol)Úsympify)Úsqrt)Úsin)Úfactor)Úsimplify©ÚxÚyÚz)Údefault_timerc                  C   sD   dd„ } | | | | | | | | | | t d ƒƒƒƒƒƒƒƒƒƒ ¡ d  dS )z'real(f(f(f(f(f(f(f(f(f(f(i/2)))))))))))c                 S   s    t tdƒd ƒ| d  td  S )Né   é   é   )r   r   r   )r   © r   úW/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/benchmarks/bench_symbench.pyÚf   s    zbench_R1.<locals>.fr   r   N)r   Úas_real_imag©r   r   r   r   Úbench_R1   s   <r   c                      s   ‡ fdd„‰ ˆ dt ƒ dS )z!Hermite polynomial hermite(15, y)c                    sP   | dkrd| S | dkrdS d| ˆ | d |ƒ d| d  ˆ | d |ƒ    ¡ S )Nr   r   r   )Úexpand)Únr   ©Úhermiter   r   r      s
   4zbench_R2.<locals>.hermiteé   N)r   r   r   r   r   Úbench_R2   s   r   c                      s&   t t t ‰ ‡ fdd„tdƒD ƒ dS )z#a = [bool(f==f) for _ in range(10)]c                    s   g | ]}t ˆ ˆ kƒ‘qS r   )Úbool©Ú.0Ú_r   r   r   Ú
<listcomp>$   s    zbench_R3.<locals>.<listcomp>é
   N)r   r   r   Úranger   r   r   r   Úbench_R3!   s   r'   c                   C   s   d S ©Nr   r   r   r   r   Úbench_R4'   s   r)   c                  C   s0   dd„ } dd„ }t ttg}| |dƒ ||ƒ}dS )zblowup(L, 8); L=uniq(L)c                 S   s8   t |ƒD ]}|  | | | |d   | |d   ¡ qd S )Nr   r   )r&   Úappend)ÚLr   Úir   r   r   Úblowup.   s   (ÿzbench_R5.<locals>.blowupc                 S   s   t | ƒ}|S r(   )Úset)r   Úvr   r   r   Úuniq2   s   zbench_R5.<locals>.uniqé   Nr   )r-   r0   r+   r   r   r   Úbench_R5,   s
   

r2   c                   C   s   t dd„ tdƒD ƒƒ dS )z<sum(simplify((x+sin(i))/x+(x-sin(i))/x) for i in range(100))c                 s   s4    | ]}t tt|ƒ t tt|ƒ t  ƒV  qd S r(   )r   r   r	   )r"   r,   r   r   r   Ú	<genexpr><   s   €2 zbench_R6.<locals>.<genexpr>éd   N)Úsumr&   r   r   r   r   Úbench_R6:   s   r6   c                      s^   t d dt d   dt d   dt d   dt d   d	t d
   ‰ ‡ fdd„tdƒD ƒ dS )z+[f.subs(x, random()) for _ in range(10**4)]é   é"   é   é-   r   é	   é   r%   é    é   c                    s   g | ]	}ˆ   ttƒ ¡‘qS r   )Úsubsr   r   r!   r   r   r   r$   B   s    zbench_R7.<locals>.<listcomp>é'  N)r   r&   r   r   r   r   Úbench_R7?   s   DrA   c                  C   s   dd„ } | t d dddƒ dS )zright(x^2,0,5,10^4)c           	      S   sh   t |ƒ}t |ƒ}t |ƒ}|  t¡ ¡ }|| | }|}d}t|ƒD ]}||7 }||  ||¡7 }q!|| S )Nr   )r   Úatomsr   Úpopr&   r?   )	r   ÚaÚbr   r   ÚDeltaxÚcÚestr,   r   r   r   ÚrightG   s   zbench_R8.<locals>.rightr   r   é   r@   N)r   )rI   r   r   r   Úbench_R8E   s   rK   c                   C   s    t td td td   ƒ dS )zfactor(x^20 - pi^5*y^20)é   rJ   N)r
   r   r   r   r   r   r   r   Ú	_bench_R9W   s    rM   c                  C   s"   dd„ } | t  t tdƒd ƒ dS )zv = [-pi,-pi+1/10..,pi]c                 S   sL   | g}||d    ¡ dkr | |d | ¡ ||d    ¡ dks|d d… S )Néÿÿÿÿr   )Úevalfr*   )ÚminÚmaxÚstepr/   r   r   r   Úsrange^   s
   ÿzbench_R10.<locals>.sranger   r%   N)r   r   )rS   r   r   r   Ú	bench_R10\   s   rT   c                   C   s   dd„ t dƒD ƒ dS )z.a = [random() + random()*I for w in [0..1000]]c                 S   s   g | ]
}t ƒ t ƒ t  ‘qS r   )r   r   )r"   Úwr   r   r   r$   h   s    zbench_R11.<locals>.<listcomp>iè  N)r&   r   r   r   r   Ú	bench_R11f   s   rV   c                  C   s,   t t t d d } | | d  }| ¡  dS )z#e=(x+y+z+1)**7;f=e*(e+1);f.expand()r   é   N)r   r   r   r   )Úer   r   r   r   Úbench_S1k   s   rY   Ú__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)   r2   r6   rA   rK   rM   rT   rV   rY   Ú__name__Ú
benchmarksÚreportrE   ÚtÚprintÚ__doc__r   r   r   r   Ú<module>   sR   
ö
ì