o
    lh|-                     @   sj  d dl mZmZ edd Zedd Zedd Zedd	 Zed;ddZedd Zedd Z	ed<ddZ
ed<ddZed=ddZed>ddZed?ddZed?ddZed?dd Zed!d" 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/d0 Zed1d2 Zed3d4 Zed5d6 Zed7d8 Zed9d: ZdS )@   )defundefun_wrappedc                 C   sL   |  |d}d| | j | | dd| }| |s$| || j }|S )N   r   r      r   square_exp_argsqrtpihyp1f1_re_imjctxzz2v r   q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/functions/expintegrals.py_erf_complex   s
   "
r   c                 C   s|   |  |dkr&| |}| j|dd}| || | j | dd| }nd| | }| |s<d| 	|| j
  }|S )Nr   Texactr   r   )rer
   fnegexpr   r   hyperur   r   r   r   )r   r   r   nz2r   r   r   r   _erfc_complex   s   
&
r    c                 C   x   |  |}| |rz| |W S  ty   Y nw | |r7|js7zt|| |jW S  ty6   Y nw | |S N)	convert_is_real_type_erfNotImplementedError_is_complex_typeimagtyperealr   r   r   r   r   r   erf      


r,   c                 C   r!   r"   )	r#   r$   _erfcr&   r'   r(   r)   r*   r    r+   r   r   r   erfc'   r-   r/   Fc                 C   sb   | j d d }|r| j|||d}| j| j||d}n| j|||d}|dkr/| j||dd}|S )N      )precr   Tr   )r2   fmulfdivone)r   r   mult
reciprocalr2   r   r   r   r   r
   6   s   r
   c                 C   sR   |s|S |  |}d| | j | | dd| }| |s'| || j }|S )Nr   r   r   r	   r   r   r   r   erfiB   s   
"
r8   c                    s     }|ks|dk s|dkr dS |sS dkr# jS dkr* jS tdk r;dd  d  }n$ d j td d  }  | |   d }  j	d	7  _	 
 fd
d|S )Nr   r   z*erfinv(x) is defined only for -1 <= x <= 1g?goe1?r   gϷ?r   
   c                    s     |  S r"   )r,   )tr   xr   r   <lambda>]   s    zerfinv.<locals>.<lambda>)r   
bad_domaininfninfabslnr   signr   r2   findroot)r   r<   xreaur   r;   r   erfinvL   s   

 (rH       c                 C   s>   |  |}| || d  d|d   || d| j   S )Nr   )r#   r   r   r   )r   r<   musigmar   r   r   npdf_   s   
4rL   c                 C   s@   || ||  d  }|dk r| | d S d| | d S )Nr   rI   r   )r   r/   r,   )r   r<   rJ   rK   rF   r   r   r   ncdfd   s   rM   c                 C   s  ||krd}nv|s+|dkr|dkr|  ||}ne|| | |d| |d | | }nR| |\}}|dkrW|| j k rL| j
 }	|  jd9  _||	7 }n|dk rW|  j|8  _|| | |d| |d | }
|| | |d| |d | }|
| | }|r||  || }|S )NrI   r   r   )betahyp2f1nint_distancer2   eps)r   rF   bx1x2regularizedr   mdhs1s2r   r   r   betaincl   s(   &
  r\   Nc                 C   s  t |}| |}|d u r| j}d}n
| |}|| jk}|d u r'| j}d}n
| |}|| jk}|sS|sS|rN| |dk rA| jS | |dkrK| jS | jS | |S ||krZ| jS | || |krm| |||| S |rz|rz| 	||||
 S |r| 
|||S |r| |||S d S )NFrI   )boolr#   zeror?   r   r5   nangammagammainc_gamma3_upper_gamma_lower_gamma)r   r   rF   rS   rV   lower_modifiedupper_modifiedr   r   r   ra      s>   





ra   c                    sP    |rt|jS |g|  jdd fdd}||gS )NTr   c                    s2    | gd| dgg  dgd|  gf}|fS )Nr   r   r   )r   T1GrS   r   negbr   r   rY      s   ,z_lower_gamma.<locals>.h)isnpintr)   r?   r   	hypercomb)r   r   rS   rV   rY   r   ri   r   rd      s   

rd   c                    s<   |rDz5|r4|rt|jW S j}z jd7  _|| W |_W S |_w |W S  tyC   Y nw |dkrRdkrR| d S |dkrddks^dkrd| d S jdd	|g|  z fd
d}j	||gddW S  j
y    fdd}	||g Y S w )Nr9   r   r   rI   r   y            y            ?Tr   c                    s4   | d } gd|gg  d| gg d fgS Nr   rg   )r   rrj   rF   r   negar   r   rY      s   ,z_upper_gamma.<locals>.h)force_seriesc                    sR   g d| d g| g g g df}  | gd| dgg  dgd|  gf}||fS )Nr   rI   r   rg   )r   rh   T2rp   r   r   rY      s   .)isintrl   r)   r^   r2   _gamma_upper_intr`   r&   r   rm   NoConvergence)r   r   rF   rV   origrY   r   rp   r   rc      s6   


rc   c           	   	   C   s   |  |}|r|r| jS zd|  jd7  _| j|||d}| j|||d}|| }| |t| || | dkrD|W |  jd8  _S |sg| j|d||d}| j|d||d}|| }	 |W |  jd8  _S W |  jd8  _t|  jd8  _w )N   )rV   irI   )rl   r^   r2   ra   magmaxr&   )	r   r   rF   rS   rV   polerh   rs   Rr   r   r   rb      s,   
$
	rb   c                 C   s   |  |r| |rz| ||W S  ty   Y nw | |s%| |r)|| S || jkr2d| S |dkrK| |dkrDt|| jS | j|d  S |dkrW| 	| | S |dkri| 	| |d  |d  S ||d  | 
d| | S )Nr   rI   r   r   )rt   r$   _expint_intr&   isnanr?   r   r)   r5   r   ra   )r   nr   r   r   r   expint   s&   
r   c                 C   sT   |r|dkr	| j S | | || | j S |s|S |dkr"| jS | | |S )Nr   r   )r^   eirB   ln2r@   )r   r   offsetr   r   r   li  s   r   c                 C   *   z|  |W S  ty   | | Y S w r"   )_eir&   _ei_genericr+   r   r   r   r     
   r   c                 C   s  || j kr|S || jkr| jS | |dkrZz9| j| }| || jddgg || jdd | }| |}|dkrA|| j	| j
 7 }|dk rM|| j	| j
 8 }|W S  | jyY   Y nw || dddd| | j }| |r|d| || | j|   7 }|S || t|7 }|S )Nr   T)maxtermsrr   rI   r         ?)r?   r@   r^   ry   r5   r   hyperr2   r   r   r   rv   hyp2f2eulerlogrA   )r   r   ro   r   imr   r   r   r   &  s6   




"r   c                 C   s,   z|  |W S  ty   | d| Y S w rn   )_e1r&   r   r+   r   r   r   e1B  s
   r   c                 C   r   r"   )_cir&   _ci_genericr+   r   r   r   ciI  r   r   c                 C   s  |  |r|| jkr| jS || jkr| jd S | j| j|dd}| j|dd}d| || |  }| 	|}| 
|}|dkrW|dkrL|| jd 7 }|dk rW|| jd 8 }|dk rq|dkrf|| jd 7 }|dk rq|| jd 8 }| |r|dkr| 	|}|S )N              ?Tr   r   rI                 ?)isinfr?   r^   r@   r   r3   r   r   r   r   r   r$   )r   r   jznjzr   zrealzimagr   r   r   r   P  s"   



r   c                 C   r   r"   )_sir&   _si_genericr+   r   r   r   sid  r   r   c                 C   s   |  |r|| jkrd| j S || jkrd| j S | |dkrc| j| j|dd}| j|dd}d| || |  }| 	|}|dkrL|d| j 8 }|dk rW|d| j 7 }| 
|ra| 	|}|S || dd	d	d
| |  S )Nr         r   Tr   y             rI   r   r   g      п)r   r?   r   r@   ry   r3   r   r   r   r   r$   hyp1f2)r   r   r   r   r   r   r   r   r   r   k  s    



r   c                 C   s   | j |dd}d| || |  }| |}| |}|dkr*|| jd 7 }|S |dk r7|| jd 8 }|S |dk rB|| jd 7 }|S )NTr   r   rI   r   r   )r   r   r   r   r   )r   r   nzr   r   r   r   r   r   chi  s   

r   c                 C   s   |  |dkr7| j|dd}d| || |  }| |}|dkr*|d| j 8 }|dk r5|d| j 7 }|S || dddd	| |  S )
Nr   Tr   r   rI   r   r   r   g      ?)ry   r   r   r   r   r   )r   r   r   r   r   r   r   r   shi  s   
r   c              	   C   s^   || j kr
| dS || jkr| dS | j|d  d | ddd| jd  |d	  d
  S )Nr   r   r      )r   r0   r   )   r0   r   r0      )r?   mpfr@   r   r   r+   r   r   r   fresnels  s
   



6r   c              	   C   sP   || j kr
| dS || jkr| dS || ddd| jd  |d  d  S )	Nr   r   )r   r0   r   )   r0   r   r0   r   )r?   r   r@   r   r   r+   r   r   r   fresnelc  s
   



(r   )r   F)rI   r   )rI   r   F)rI   NF)F)	functionsr   r   r   r    r,   r/   r
   r8   rH   rL   rM   r\   ra   rd   rc   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sn    




	
(&










