U
    ZÊ¹j™  ã                   @   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   úZ/var/www/html/bwave/python/venv/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   )ZisnpintÚappendÚlenÚzeroÚsignÚ	gammaprodÚinfÚoneÚprecÚpopÚgamma)r   ÚaÚbZ_infsignZ	poles_numZ	poles_denZregular_numZregular_denr   ÚpÚ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   Ú_imZ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   Zfsubr   )r   ÚnÚkZn1Zk1Znk1r   r   r   Úbinomial=   s    r2   c                 C   s&   | j ||d| j d�}|  |g|g¡S )Nr   r&   )r+   r   r   )r   r   r0   Zxnr   r   r   ÚrfD   s    r3   c                 C   sN   | j |dd| j d�}| j | j||d| j d�dd| j d�}|  |g|g¡S r.   r/   )r   r   r0   Úx1Zxn1r   r   r   ÚffI   s    (r5   c                 C   sX   |   |¡r|| jkr|S | jS d|d  | jd |  |¡d d   |  |d d ¡ S )Nr   r   é   )r'   r   r)   ÚpiZcospir   )r   r   r   r   r   Úfac2O   s
    

r8   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   é   é   r6   )r'   r   r)   Úisnanr(   Ú_rer*   ÚabsZdpsÚlogÚrer7   Zexpjpir$   ÚlnZpolylogÚbarnesgÚexpZ_is_real_typer   ZmpfZglaisherr   Z	bernoullir   )r   ÚzÚwZpi2ÚuÚvÚNÚGÚsZz2kZz2r1   Útr   r   r   rB   W   sP    


(
8ÿ 
(&rB   c                 C   s   |   |d ¡S )Nr   )rB   )r   rD   r   r   r   Úsuperfacˆ   s    rL   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 )Nr9   r6   r   r%   r   y                )r   r>   Úintr?   r   r(   r=   r*   r@   ÚhyperfacZ_is_complex_typerC   ZloggammarB   )r   rD   Úextrar0   ÚhZzp1rG   r   r   r   rN   Œ   s$    
(
rN   N)F)Zlibmp.backendr   Z	functionsr   r   r   r-   r2   r3   r5   r8   rB   rL   rN   r   r   r   r   Ú<module>   s(   $





0

