o
    à8Va´
  ã                	   @   s  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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 ƒ qodS dS ) é    )Ú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   úA/usr/lib/python3/dist-packages/sympy/benchmarks/bench_symbench.pyÚf
   s    zbench_R1.<locals>.fr   r   N)r   Z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   Úuniq,   s   zbench_R5.<locals>.uniqé   Nr   )r,   r/   r*   r   r   r   Úbench_R5&   s
   

r1   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>6   s   €2 zbench_R6.<locals>.<genexpr>éd   N)Úsumr%   r   r   r   r   Úbench_R64   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#   <   s    zbench_R7.<locals>.<listcomp>é'  N)r   r%   r   r   r   r   Úbench_R79   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   sh   t |ƒ}t |ƒ}t |ƒ}|  t¡ ¡ }|| | }|}d}t|ƒD ]}||7 }||  ||¡7 }q!|| S )Nr   )r   Zatomsr
   Úpopr%   r>   )	r   ÚaÚbr   r   ZDeltaxÚcZestr+   r   r   r   ÚrightA   s   zbench_R8.<locals>.rightr   r   é   r?   N)r   )rE   r   r   r   Úbench_R8?   s   rG   c                   C   s    t td td td   ƒ dS )zfactor(x^20 - pi^5*y^20)é   rF   N)r   r   r   r   r   r   r   r   Ú	_bench_R9Q   s    rI   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   )Zevalfr)   )ÚminÚmaxÚstepr.   r   r   r   ÚsrangeX   s
   ÿzbench_R10.<locals>.sranger   r$   N)r   r   )rN   r   r   r   Ú	bench_R10V   s   rO   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#   b   s    zbench_R11.<locals>.<listcomp>iè  N)r%   r   r   r   r   Ú	bench_R11`   s   rQ   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_S1e   s   rT   Ú__main__z
%s%65s: %fN)%r   Zsympyr   r   r   r   r   r   r	   r
   r   Z	sympy.abcr   r   r   Ztimeitr   Zclockr   r   r&   r(   r1   r5   r@   rG   rI   rO   rQ   rT   Ú__name__Z
benchmarksÚreportrC   ÚtÚprintÚ__doc__r   r   r   r   Ú<module>   sF   ,
ö
ì