U
    :qLe™  ã                   @   sŽ   d dl mZ ddlmZmZ eddd„ƒZedd„ ƒZed	d
„ ƒZedd„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZdS )é   )Úxrangeé   )ÚdefunÚdefun_wrappedFc                    s  ‡ fdd„|D ƒ}‡ fdd„|D ƒ}g }g }g }g }|D ]}||gˆ   |¡  |¡ q8|D ]}||gˆ   |¡  |¡ qZt|ƒt|ƒk rŽˆ jS t|ƒt|ƒkrì|ræ‡ fdd„|D ƒ}‡ fdd„|D ƒ}ˆ  ˆ  || || ¡¡ˆ j S ˆ jS ˆ j}	ˆ j}
zˆ|
d ˆ _|rJ| 	¡ }| 	¡ }|	d||  ˆ  
d| ¡ ˆ  
d| ¡ 9 }	q|D ]}|	ˆ  
|¡9 }	qN|D ]}|	ˆ  
|¡ }	qhW 5 |
ˆ _X |	
 S )	Nc                    s   g | ]}ˆ   |¡‘qS © ©Úconvert©Ú.0Úx©Úctxr   úr/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/mpmath/functions/factorials.pyÚ
<listcomp>   s     zgammaprod.<locals>.<listcomp>c                    s   g | ]}ˆ   |¡‘qS r   r   r	   r   r   r   r      s     c                    s(   g | ] }|r|d ˆ j   p"|ˆ j  ‘qS ©r   ©Úepsr	   r   r   r   r      s     c                    s(   g | ] }|r|d ˆ j   p"|ˆ j  ‘qS r   r   r	   r   r   r   r      s     é   éÿÿÿÿr   )ÚisnpintÚappendÚlenÚzeroÚsignÚ	gammaprodÚinfÚoneÚprecÚpopÚgamma)r   ÚaÚbZ_infsignZ	poles_numZ	poles_denZregular_numZregular_denr   ÚpZorigÚiÚjr   r   r   r      s@        
0  r   c                 C   sÀ   |   |¡}|   |¡}|  |¡r(|| }}|  |¡r˜|| jkr’|  |¡s’|| jkrV| jS |dkrd| jS |  |¡rt| jS |dk r’|  |  	|¡¡| j S | jS | j
||d| j d}|  ||g|g¡S )Né    r   ©r   )r   Úisinfr   Ú_imÚninfÚnanr   Úisintr   r   Úfaddr   r   )r   r   ÚyZxyr   r   r   Úbeta)   s"    






r.   c                 C   sT   | j |dd| j d}| j |dd| j d}| j||d| j d}|  |g||g¡S ©Nr   r   r&   ©r,   r   Úfsubr   )r   ÚnÚkZn1Zk1Znk1r   r   r   Úbinomial=   s    r4   c                 C   s&   | j ||d| j d}|  |g|g¡S )Nr   r&   )r,   r   r   )r   r   r2   Zxnr   r   r   ÚrfD   s    r5   c                 C   sN   | j |dd| j d}| j | j||d| j ddd| j d}|  |g|g¡S r/   r0   )r   r   r2   Úx1Zxn1r   r   r   ÚffI   s    (r7   c                 C   sX   |   |¡r|| jkr|S | jS d|d  | jd |  |¡d d   |  |d d ¡ S )Nr   r   é   )r'   r   r*   ÚpiÚcospir   )r   r   r   r   r   Úfac2O   s
    

r;   c                 C   sˆ  |   |¡r|| jkr|S | jS |  |¡r,|S |  |¡s\|  |¡dkr\|  |  |¡¡r\|d S t|ƒdkr†|  jd|  	t|ƒd¡ 7  _|  
|¡| j k rDd| }d| j }|  d| ¡}| j| j d | j| j |d  d  ||  d| ¡  | j|  d|¡ |  }|  d| ¡|  |¡ ||  }|  |¡r@|  |¡}|S | jd d }d}t|ƒ|k st|  
|¡dk rŽ||  |¡ }|d7 }qV|d8 }|  d¡d }||  	| j¡8 }|||  	d| j ¡ d 7 }||d d |  d¡d  |  	|¡ 7 }|d|d  d 8 }|d  }	}
td|d ƒD ]R}|  d| d ¡d| |d  |	  }t|ƒ| jk rf qz|	|
9 }	||7 }q&||  |¡ S )Nr%   é   r   r   é   é   r8   )r'   r   r*   Úisnanr(   Ú_rer+   ÚabsÚdpsÚlogÚrer9   Úexpjpir$   ÚlnÚpolylogÚbarnesgÚexpÚ_is_real_typer   ÚmpfÚglaisherr   Ú	bernoullir   )r   ÚzÚwÚpi2ÚuÚvÚNÚGÚsZz2kÚz2r3   Útr   r   r   rH   W   sP    


(
8ÿ 
(&rH   c                 C   s   |   |d ¡S )Nr   )rH   )r   rN   r   r   r   Úsuperfacˆ   s    rX   c                 C   sð   || j kr|S t|ƒdkr4dt|  t|ƒd¡ƒ }nd}|  j|7  _|  |¡s¸|  |¡dk r¸|  |  |¡¡r¸t|  |¡ƒ}|  	| d ¡}|d d d@ r¢| }|  
|¡r´|d S |S |d }|  ||  |¡ ¡}|  j|8  _||  |¡ S )Nr<   r8   r   r%   r   y                )r   rA   ÚintrC   r   r(   r@   r+   rD   ÚhyperfacÚ_is_complex_typerI   ÚloggammarH   )r   rN   Úextrar2   ÚhZzp1rR   r   r   r   rZ   Œ   s$    
(
rZ   N)F)Úlibmp.backendr   Ú	functionsr   r   r   r.   r4   r5   r7   r;   rH   rX   rZ   r   r   r   r   Ú<module>   s(   $





0

