B
    [4              	   @   s6  d dl 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
mZmZmZmZ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r2eeeeeeee e!g	Z$g Z%x8e$D ]0Z&e Z'e&  e e' Z'e(d e&j#e&j)e'f  qW d!S )"    )print_functiondivision)range)random)	factorIIntegerpisimplifysinsqrtSymbolsympify)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   >lib/python3.7/site-packages/sympy/benchmarks/bench_symbench.pyf   s    zbench_R1.<locals>.fr   r   N)r   Zas_real_imag)r   er   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
    zbench_R2.<locals>.hermite   N)r   )ar   )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   r   )r   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   s<   x6t |D ]*}| | | | |d   | |d    q
W d S )Nr   r   )r   append)Lr   ir   r   r   blowup+   s    zbench_R5.<locals>.blowupc             S   s   t | }|S )N)set)r   vr   r   r   uniq/   s    zbench_R5.<locals>.uniq   N)r   r   r   )r+   r.   r)   r   r   r   bench_R5)   s
    

r0   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   s2   | ]*}t tt| t tt| t  V  qd S )N)r
   r   r   )r"   r*   r   r   r   	<genexpr>9   s    zbench_R6.<locals>.<genexpr>d   N)sumr   )sr   r   r   bench_R67   s    r5   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   r$   ?   s    zbench_R7.<locals>.<listcomp>i'  N)r   r   )r   r   )r   r   bench_R7<   s    Dr?   c              C   s   dd } | t d ddd}dS )zright(x^2,0,5,10^4)c       	      S   sl   t |}t |}t |}| t }|| | }|}d}x(t|D ]}||7 }|| ||7 }qDW || S )Nr   )r   Zatomsr   popr   r>   )	r   r   br   r   ZDeltaxcZestr*   r   r   r   rightD   s    zbench_R8.<locals>.rightr   r      i'  N)r   )rC   r   r   r   r   bench_R8B   s    rE   c               C   s    t td td td    dS )zfactor(x^20 - pi^5*y^20)   rD   N)r   r   r	   r   r   r   r   r   	_bench_R9T   s    rG   c              C   s"   dd } | t  t tdd }dS )zv = [-pi,-pi+1/10..,pi]c             S   s>   | g}x*||d    dkr0||d |  qW |d d S )Nr   )Zevalfr(   )minmaxstepr-   r   r   r   srange[   s    zbench_R10.<locals>.sranger   r%   N)r	   r   )rL   r-   r   r   r   	bench_R10Y   s    rM   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$   e   s    zbench_R11.<locals>.<listcomp>i  N)r   )r   r   r   r   	bench_R11c   s    rO   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   )r   r   r   r   r   bench_S1h   s    rQ   __main__z
%s%65s: %fN)*Z
__future__r   r   Zsympy.core.compatibilityr   r   Zsympyr   r   r   r	   r
   r   r   r   r   Z	sympy.abcr   r   r   Ztimeitr   Zclockr   r    r&   r'   r0   r5   r?   rE   rG   rM   rO   rQ   __name__Z
benchmarksZreportrA   tprint__doc__r   r   r   r   <module>   sB   ,



