a
    {dx(                     @   sf  d dl mZ d dlmZ d dl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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mZmZm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZBmCZC d dlDmEZE eEdZFeFreFGeFHg jIZJeJjKZLdd ZMdd ZNdd ZOdd  ZPd!d" ZQd#d$ ZRd%d& ZSd'd( ZTd)d* ZUd+d, ZVd-d. ZWd/d0 ZXd1d2 ZYd3d4 ZZd5d6 Z[d7d8 Z\d9d: Z]d;d< Z^d=d> Z_d?d@ Z`dAdB ZadCdD ZbdEdF ZcdGdH ZddIdJ ZedKS )L    )Sum)Mod)Equality
Unequality)Symbol)sqrt)	Piecewise)	polygamma)SiCi)BlockMatrix)MatrixSymbol)Identity)lambdify)xijabcd)Pow)MatrixSolve)	logaddexp
logaddexp2)log1pexpm1hypotlog10exp2log2Sqrt)Array)ArrayTensorProductArrayAddPermuteDimsArrayDiagonal)NumPyPrinterSciPyPrinter_numpy_known_constants_numpy_known_functions_scipy_known_constants_scipy_known_functions)convert_matrix_to_array)skipraises)import_modulenumpyc                  C   sD   t  } tdtdk fd}| |dks*J | jdh diks@J dS )z
    NumPyPrinter needs to print Piecewise()'s choicelist as a list to avoid
    breaking compatibility with numpy 1.8. This is not necessary in numpy 1.9+.
    See gh-9747 and gh-9749 for details.
       r   )r   Tz?numpy.select([numpy.less(x, 0),True], [1,0], default=numpy.nan)r1   >   nanselectZlessN)r'   r   r   doprintZmodule_imports)printerp r8   h/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/printing/tests/test_numpy.pytest_numpy_piecewise_regression#   s    r:   c                  C   s@   t tt} t | dksJ ttt}t |dks<J d S )Nznumpy.logaddexp(a, b)znumpy.logaddexp2(a, b))r   r   r   r'   r5   r   )ZlaeZlae2r8   r8   r9   test_numpy_logaddexp/   s    

r;   c               	      s   t std ttt tttf} ttttf| d}d\}}t ddd t 	||| t
 fddt||d D s|J ttt tttf} ttttf| d}d\}}t ddd t 	||| t
 fd	dt||d D sJ d S )
NNumPy not installedr1   r   
   r2   r>   c                 3   s   | ]} | V  qd S Nr8   .0i_x_r8   r9   	<genexpr>?       ztest_sum.<locals>.<genexpr>c                 3   s   | ]}|  V  qd S r@   r8   rA   rD   r8   r9   rF   F   rG   )npr.   r   r   r   r   r   r   linspaceallclosesumrangesfa_b_r8   rD   r9   test_sum6   s    4rR   c               	      s   t std ttt t tttfttt	f} t
tttt	tf| d}d\}}d\ t dddt ||| t fdd	t||d D sJ d S )
Nr<   r1   r=   )      r?   r2   r>   c                 3   s.   | ]&}t  d  D ]}| | V  qqdS )r2   N)rL   )rB   rC   Zj_Zc_Zd_rE   r8   r9   rF   T   rG   z%test_multiple_sums.<locals>.<genexpr>)rH   r.   r   r   r   r   r   r   r   r   r   rI   rJ   rK   rL   rM   r8   rU   r9   test_multiple_sumsI   s     "rV   c                  C   s   t std tddd} tddd}t| | }t| |f|d}t ddgddgg}t dd	gd
dgg}|||t ||k sJ d S )Nr<   M   Nr1   r2         r?   )rH   r.   r   r-   r   arraymatmulall)rW   rY   cgrO   mambr8   r8   r9   test_codegen_einsumW   s    rc   c            
   
   C   s  t std tddd} tddd}tddd}tddd}t ddgdd	gg}t dd
gddgg}t ddgddgg}t ddgd	dgg}t| |}t| |f|d}	|	||t |ddg|ddgk sJ t| |}t| |f|d}	|	|||| k sJ t| ||}t| ||f|d}	|	||||| | k sNJ t| |||}t| |||f|d}	|	|||||| | | k sJ t	| ddg}t| f|d}	|	||j
k sJ t	t| |g d}t| |f|d}	|	||t t |ddg|ddgdk s$J tt| |d}t| |f|d}	|	||t jt |ddg|ddgdddk s|J d S )Nr<   rW   rX   rY   PQr2   rZ   r[   r\   r?   r      r1   )r2   rX   rZ   r   r2   rX   )Zaxis1Zaxis2)rH   r.   r   r]   r#   r   Zeinsumr_   r$   r%   TZ	transposer&   Zdiagonal)
rW   rY   rd   re   ra   rb   ZmcZmdr`   rO   r8   r8   r9   test_codegen_extraf   s>    
*
"(4ri   c                  C   st  t std ttd} ttf| }t g d}t ||g dsHJ ttd} ttf| }t g d}t ||g dsJ tdk } ttf| }t g d}t ||g dsJ tdk} ttf| }t g d}t ||g dsJ tdk} ttf| }t g d}t ||g ds4J tdk} ttf| }t g d}t ||g d	spJ d S )
Nr<   r2   )r   r2   rX   )FTF)TFT)TFF)TTF)FFT)FTT)rH   r.   r   r   r   r]   array_equalr   )erO   rE   r8   r8   r9   test_relational   s4    

rl   c                  C   s   t std ttt} tttf| }t g d}d}t |||g dsPJ t g d}t g d}t |||g dsJ t g d}t g d}t |||g dsJ d S )Nr<   )r   r2   rX   rZ   rX   )r   r2   r   r2   )rX   rX   rX   rX   )rX   rZ   r[      )r   r   r   r   )rH   r.   r   r   r   r   r]   rj   )rk   rO   rP   rQ   r8   r8   r9   test_mod   s    
rn   c                  C   s8   t std tdddd} tg | d}| dks4J d S )Nr<   rX   r?   F)evaluater1   g      ?)rH   r.   r   r   )exprrO   r8   r8   r9   test_pow   s
    rq   c                  C   sB   t std ttfttd} t| dd d dt ks>J d S )Nr<   r1   g|=g#B;)rH   r.   r   r   r   absNUMPY_DEFAULT_EPSILONrO   r8   r8   r9   
test_expm1   s    ru   c                  C   s>   t std ttfttd} t| dd dt ks:J d S )Nr<   r1   g>N}a+)rH   r.   r   r   r   rr   rs   rt   r8   r8   r9   
test_log1p   s    rv   c                   C   s<   t std ttttftttdddd tks8J d S )Nr<   r1   rZ   r[   rm   )rH   r.   rr   r   r   r   r   rs   r8   r8   r8   r9   
test_hypot   s    rw   c                   C   s6   t std tttfttddd tks2J d S )Nr<   r1   d   rX   )rH   r.   rr   r   r   r   rs   r8   r8   r8   r9   
test_log10   s    ry   c                   C   s6   t std tttfttddd tks2J d S )Nr<   r1   rm       )rH   r.   rr   r   r   r   rs   r8   r8   r8   r9   	test_exp2   s    r{   c                   C   s6   t std tttfttddd tks2J d S )Nr<   r1         )rH   r.   rr   r   r   r    rs   r8   r8   r8   r9   	test_log2   s    r~   c                   C   s6   t std tttfttddd tks2J d S Nr<   r1   r[   rX   )rH   r.   rr   r   r   r!   rs   r8   r8   r8   r9   	test_Sqrt   s    r   c                   C   s6   t std tttfttddd tks2J d S r   )rH   r.   rr   r   r   r   rs   r8   r8   r8   r9   	test_sqrt  s    r   c                  C   s   t std tddd} tddd}| d | | }t| || }t| |f|}t| |f|}t g dg dg d	g}t j|dksJ t g d
}t ||||||sJ d S )Nr<   rW   rZ   r   r2   r?   )r2   rX   rZ   )rZ   rX   rm   )rm      rf   )rZ   r[   rm   )	rH   r.   r   r   r   r]   ZlinalgZmatrix_rankrJ   )rW   r   rp   Zmatsolve_exprrO   Z
f_matsolveZm0Zx0r8   r8   r9   test_matsolve  s    r   c                  C   sz   t std tddd} tddd}tddd}tddd}t| |g||gg}|jdks^J t }||d	ksvJ d S )
Nr<   a_1r>   rZ   a_2a_3a_4)   r   z%numpy.block([[a_1, a_2], [a_3, a_4]]))rH   r.   r   r   shaper'   r5   )r   r   r   r   Ar6   r8   r8   r9   
test_16857  s    r   c                     s   t std tddd} t| | td }t ddgddgg}t ddgddgg}|||k sjJ dd	lm} |d
ddtd t	t
 fdd d S )Nr<   rW   rX   r2   rZ   r[   rm   r   )symbolsnT)integerc                      s   t   t S r@   )r   r   r8   rY   r   r8   r9   <lambda>;  rG   z"test_issue_17006.<locals>.<lambda>)rH   r.   r   r   r   r]   r_   sympy.core.symbolr   r/   NotImplementedError)rW   rO   ra   mrr   r8   r   r9   test_issue_17006,  s    r   c                   C   s4   t  tddksJ t  tddks0J d S )N)rg   )rZ   rm   znumpy.array([[1, 2], [3, 5]])rg   znumpy.array((1, 2)))r'   r5   r"   r8   r8   r8   r9   test_numpy_array=  s    r   c                   C   sD   t d dksJ t d dks J td dks0J td dks@J d S )	NNaNz	numpy.nanZ
EulerGammaznumpy.euler_gammaacosznumpy.arccoslogz	numpy.log)r)   r*   r8   r8   r8   r9   test_numpy_known_funcs_constsA  s    r   c                   C   sD   t d dksJ t d dks J td dks0J td dks@J d S )	NZGoldenRatiozscipy.constants.golden_ratioPizscipy.constants.pierfzscipy.special.erf	factorialzscipy.special.factorial)r+   r,   r8   r8   r8   r9   test_scipy_known_funcs_constsH  s    r   c                  C   s&   t  } t| dsJ t| ds"J d S )N_print_acos
_print_log)r'   hasattr)prntrr8   r8   r9   test_numpy_print_methodsO  s    r   c                  C   s   t  } t| dsJ t| ds"J t| ds0J t| ds>J t| dsLJ tdddd}td	dd
}| t||dks~J | t|dksJ | t|dksJ d S )Nr   r   Z
_print_erfZ_print_factorialZ_print_chebyshevtkT)r   Znonnegativer   )realzscipy.special.polygamma(k, x)zscipy.special.sici(x)[0]zscipy.special.sici(x)[1])r(   r   r   r5   r	   r
   r   )r   r   r   r8   r8   r9   test_scipy_print_methodsT  s    r   N)fZsympy.concrete.summationsr   Zsympy.core.modr   Zsympy.core.relationalr   r   r   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z'sympy.functions.special.gamma_functionsr	   Z'sympy.functions.special.error_functionsr
   r   Z&sympy.matrices.expressions.blockmatrixr   Z"sympy.matrices.expressions.matexprr   Z"sympy.matrices.expressions.specialr   Zsympy.utilities.lambdifyr   Z	sympy.abcr   r   r   r   r   r   r   Z
sympy.corer   Zsympy.codegen.matrix_nodesr   Zsympy.codegen.numpy_nodesr   r   Zsympy.codegen.cfunctionsr   r   r   r   r   r    r!   Zsympy.tensor.arrayr"   Z0sympy.tensor.array.expressions.array_expressionsr#   r$   r%   r&   Zsympy.printing.numpyr'   r(   r)   r*   r+   r,   Z3sympy.tensor.array.expressions.from_matrix_to_arrayr-   Zsympy.testing.pytestr.   r/   Zsympy.externalr0   rH   Zfinfor]   ZdtypeZdeafult_float_infoZepsrs   r:   r;   rR   rV   rc   ri   rl   rn   rq   ru   rv   rw   ry   r{   r~   r   r   r   r   r   r   r   r   r   r   r8   r8   r8   r9   <module>   sf   $$ *)	