o
    FZŽh™  ã                   @   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ˆ   |¡  |¡ q|D ]}||gˆ   |¡  |¡ q-t|ƒt|ƒk rGˆ jS t|ƒt|ƒkrv|rs‡ fdd„|D ƒ}‡ fdd„|D ƒ}ˆ  ˆ  || || ¡¡ˆ j S ˆ jS ˆ j}	ˆ j}
zF|
d ˆ _|r¤| 	¡ }| 	¡ }|	d||  ˆ  
d| ¡ ˆ  
d| ¡ 9 }	|s„|D ]	}|	ˆ  
|¡9 }	q¦|D ]	}|	ˆ  
|¡ }	q²W |
ˆ _|	
 S |
ˆ _w )	Nc                    ó   g | ]}ˆ   |¡‘qS © ©Úconvert©Ú.0Úx©Úctxr   úJ/var/www/auris/lib/python3.10/site-packages/mpmath/functions/factorials.pyÚ
<listcomp>   ó    zgammaprod.<locals>.<listcomp>c                    r   r   r   r
   r   r   r   r      r   c                    ó(   g | ]}|r|d ˆ j   p|ˆ j  ‘qS ©r   ©Úepsr
   r   r   r   r      ó   ( c                    r   r   r   r
   r   r   r   r      r   é   éÿÿÿÿ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:   "" 
,ýÿr   c                 C   sÀ   |   |¡}|   |¡}|  |¡r||}}|  |¡rL|| jkrI|  |¡sI|| jkr+| jS |dkr2| jS |  |¡r:| jS |dk rI|  |  	|¡¡| 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"   






r1   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   r6   c                 C   s&   | j ||d| j d}|  |g|g¡S )Nr   r*   )r/   r    r   )r   r   r4   Zxnr   r   r   ÚrfD   s   r7   c                 C   sN   | j |dd| j d}| j | j||d| j ddd| j d}|  |g|g¡S r2   r3   )r   r   r4   Úx1Zxn1r   r   r   ÚffI   s   (r9   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
   

:r<   c                 C   s”  |   |¡r|| jkr|S | jS |  |¡r|S |  |¡s.|  |¡dkr.|  |  |¡¡r.|d S t|ƒdkrC|  jd|  	t|ƒd¡ 7  _|  
|¡| j k r d| }d| j }|  d| ¡}| j| j d | j| j |d  d  ||  d| ¡  | j|  d|¡ |  }|  d| ¡|  |¡ ||  }|  |¡rž|  |¡}|S | jd d }d}t|ƒ|k s¶|  
|¡dk rÎ||  |¡ }|d7 }t|ƒ|k s¶|  
|¡dk s¶|d8 }|  d¡d }||  	| j¡8 }|||  	d| j ¡ d 7 }||d d |  d¡d  |  	|¡ 7 }|d|d  d 8 }|d  }	}
td|d ƒD ](}|  d| d ¡d| |d  |	  }t|ƒ| jk r9 n
|	|
9 }	||7 }q||  |¡ S )Nr)   é   r   r   é   é   r:   )r+   r   r-   Úisnanr,   Ú_rer.   ÚabsZdpsÚlogÚrer;   Zexpjpir(   ÚlnZpolylogÚbarnesgÚexpZ_is_real_typer"   ZmpfZglaisherr   Z	bernoullir   )r   ÚzÚwZpi2ÚuÚvÚNÚGÚsZz2kZz2r5   Útr   r   r   rF   W   sR   


(
8ÿ 

þ(&rF   c                 C   s   |   |d ¡S )Nr   )rF   )r   rH   r   r   r   Úsuperfacˆ   s   rP   c                 C   sð   || j kr|S t|ƒdkrdt|  t|ƒd¡ƒ }nd}|  j|7  _|  |¡s\|  |¡dk r\|  |  |¡¡r\t|  |¡ƒ}|  	| d ¡}|d d d@ rQ| }|  
|¡rZ|d S |S |d }|  ||  |¡ ¡}|  j|8  _||  |¡ S )Nr=   r:   r   r)   r   y                )r   rB   ÚintrC   r    r,   rA   r.   rD   ÚhyperfacZ_is_complex_typerG   ZloggammarF   )r   rH   Úextrar4   ÚhZzp1rK   r   r   r   rR   Œ   s$   
(
rR   N)F)Zlibmp.backendr   Z	functionsr   r   r   r1   r6   r7   r9   r<   rF   rP   rR   r   r   r   r   Ú<module>   s*    $





0

