o
    lÇ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   úo/var/www/html/construction_image-detection-poc/venv/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   )ÚisnpintÚappendÚlenÚzeroÚsignÚ	gammaprodÚinfÚoneÚprecÚpopÚgamma)r   ÚaÚbÚ_infsignÚ	poles_numÚ	poles_denÚregular_numÚ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   Ú_imÚninfÚnanr   Úisintr   r#   Úfaddr!   r   )r   r   ÚyÚxyr   r   r   Úbeta)   s"   






r9   c                 C   sT   | j |dd| j d}| j |dd| j d}| j||d| j d}|  |g||g¡S ©Nr   r   r0   ©r6   r!   Úfsubr   )r   ÚnÚkÚn1Úk1Únk1r   r   r   Úbinomial=   s   rB   c                 C   s&   | j ||d| j d}|  |g|g¡S )Nr   r0   )r6   r!   r   )r   r   r=   Úxnr   r   r   ÚrfD   s   rD   c                 C   sN   | j |dd| j d}| j | j||d| j ddd| j d}|  |g|g¡S r:   r;   )r   r   r=   Úx1Úxn1r   r   r   ÚffI   s   (rG   c                 C   sX   |   |¡r|| jkr|S | jS d|d  | jd |  |¡d d   |  |d d ¡ S )Nr   r   é   )r1   r   r4   ÚpiÚcospir#   )r   r   r   r   r   Úfac2O   s
   

:rK   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   é   é   rH   )r1   r   r4   Úisnanr2   Ú_rer5   ÚabsÚdpsÚlogÚrerI   Úexpjpir.   ÚlnÚpolylogÚbarnesgÚexpÚ_is_real_typer#   ÚmpfÚglaisherr   Ú	bernoullir   )r   ÚzÚwÚpi2ÚuÚvÚNÚGÚsÚz2kÚz2r>   Útr   r   r   rX   W   sR   


(
8ÿ 

þ(&rX   c                 C   s   |   |d ¡S )Nr   )rX   )r   r^   r   r   r   Úsuperfacˆ   s   ri   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 )NrL   rH   r   r/   r   y                )r   rQ   ÚintrS   r!   r2   rP   r5   rT   ÚhyperfacÚ_is_complex_typerY   ÚloggammarX   )r   r^   Úextrar=   ÚhÚzp1rb   r   r   r   rk   Œ   s$   
(
rk   N)F)Úlibmp.backendr   Ú	functionsr   r   r   r9   rB   rD   rG   rK   rX   ri   rk   r   r   r   r   Ú<module>   s*    $





0

