o
    Ɂi                     @   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 ]	}|	 
| }	qW |
 _|	
 S |
 _w )	Nc                       g | ]}  |qS  convert.0xctxr   ]/sda-disk/www/egybert/egybert_env/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 rd| }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

