
    gF                         d dl mZ  G d de          Zd Zd Zd Zed             Zed             Zed	             Z	ed
             Z
ed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed8d            Zed             Zed             Zed             Zed             Zed             Zed             Zed9d            Zed:d            Zed              Zed!             Zed"             Zed#             Z ed$             Z!ed%             Z"ed&             Z#ed;d(            Z$ed)             Z%ed*             Z&ed+             Z'ed,             Z(d- Z)dd'l*Z*dd'l+Z+d. Z,d/ Z-ed9d0            Z.ed8d1            Z/d:d2Z0ed3             Z1ed4             Z2ed5             Z3ed:d6            Z4ed:d7            Z5d'S )<   )xrangec                   ~    e Zd ZdZi ZdZd Zed             Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )SpecialFunctionsa  
    This class implements special functions using high-level code.

    Elementary and some other functions (e.g. gamma function, basecase
    hypergeometric series) are assumed to be predefined by the context as
    "builtins" or "low-level" functions.
    gP?c           
      z   | j         }|j        D ])}|j        |         \  }}|                    |||           *|                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _	        |                     d          | _
        |                     d          | _        |                     d	          | _        |                     d
          | _        |                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _        |                     d          | _        i | _        | j                            dddddddd           |                     | j                  | _        d S )N)   r       r   )r   r   )   r   )r      )r      )r
   r   )   r   )r
   r   )   r   )r   r   )r   r
   )r   r
   )r   r
   )r      )r   r   )r   r
   argconjrootpsizetafibfac)phase	conjugatenthroot	polygammahurwitz	fibonacci	factorial)	__class__defined_functions_wrap_specfun_mpqmpq_1mpq_0mpq_1_2mpq_3_2mpq_1_4mpq_1_16mpq_3_16mpq_5_2mpq_3_4mpq_7_4mpq_5_4mpq_1_3mpq_2_3mpq_4_3mpq_1_6mpq_5_6mpq_5_3_misc_const_cache_aliasesupdatememoizezetazerozetazero_memoized)selfclsnamefwraps        V/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/functions/functions.py__init__zSpecialFunctions.__init__   s   n) 	- 	-D+D1GAtdAt,,,,YYu%%
YYu%%
yy''yy''yy''		&))		&))yy''yy''yy''yy''yy''yy''yy''yy''yy''yy''!# 
  
 
 	 	 	 "&dm!<!<    c                 (    t          | ||           d S N)setattr)r:   r;   r<   r=   s       r>   r    zSpecialFunctions._wrap_specfun=   s    T1r@   c                     t           rB   NotImplementedErrorctxnzs      r>   _besseljzSpecialFunctions._besseljD   s    #66r@   c                     t           rB   rE   rH   rJ   s     r>   _erfzSpecialFunctions._erfE   s    //r@   c                     t           rB   rE   rM   s     r>   _erfczSpecialFunctions._erfcF       00r@   c                     t           rB   rE   )rH   rJ   as      r>   _gamma_upper_intz!SpecialFunctions._gamma_upper_intG   s    +>%>r@   c                     t           rB   rE   rG   s      r>   _expint_intzSpecialFunctions._expint_intH   s    &9 9r@   c                     t           rB   rE   rH   ss     r>   _zetazSpecialFunctions._zetaI   rQ   r@   c                     t           rB   rE   )rH   rY   rS   rI   derivativesreflects         r>   _zetasum_fastzSpecialFunctions._zetasum_fastJ   s    AT;Tr@   c                     t           rB   rE   rM   s     r>   _eizSpecialFunctions._eiK       ..r@   c                     t           rB   rE   rM   s     r>   _e1zSpecialFunctions._e1L   ra   r@   c                     t           rB   rE   rM   s     r>   _cizSpecialFunctions._ciM   ra   r@   c                     t           rB   rE   rM   s     r>   _sizSpecialFunctions._siN   ra   r@   c                     t           rB   rE   rX   s     r>   _altzetazSpecialFunctions._altzetaO   s     33r@   N)__name__
__module____qualname____doc__r   THETA_Q_LIMr?   classmethodr    rK   rN   rP   rT   rV   rZ   r^   r`   rc   re   rg   ri    r@   r>   r   r      s          
 K(= (= (=V   [ 766///000>>>999000TTT............33333r@   r   c                 2    | dft           j        | j        <   | S )NTr   r   rj   r<   s    r>   defun_wrappedrt   Q   s    56W&qz2Hr@   c                 2    | dft           j        | j        <   | S )NFrr   rs   s    r>   defunrv   U   s    56X&qz2Hr@   c                 <    t          t          | j        |            | S rB   )rC   r   rj   rs   s    r>   defun_staticrx   Y   s    aj!,,,Hr@   c                 <    | j         |                     |          z  S rB   )onetanrM   s     r>   cotr|   ]       #''!**,,r@   c                 <    | j         |                     |          z  S rB   )rz   cosrM   s     r>   secr   `   r}   r@   c                 <    | j         |                     |          z  S rB   )rz   sinrM   s     r>   cscr   c   r}   r@   c                 <    | j         |                     |          z  S rB   )rz   tanhrM   s     r>   cothr   f       388A;;..r@   c                 <    | j         |                     |          z  S rB   )rz   coshrM   s     r>   sechr   i   r   r@   c                 <    | j         |                     |          z  S rB   )rz   sinhrM   s     r>   cschr   l   r   r@   c                 T    |s
| j         dz  S |                     | j        |z            S )N      ?)piatanrz   rM   s     r>   acotr   o   s.     %v|xx!$$$r@   c                 <    |                      | j        |z            S rB   )acosrz   rM   s     r>   asecr   v       #'A+...r@   c                 <    |                      | j        |z            S rB   )asinrz   rM   s     r>   acscr   y   r   r@   c                 T    |s
| j         dz  S |                     | j        |z            S )Ny              ?)r   atanhrz   rM   s     r>   acothr   |   s.     &v}yy1%%%r@   c                 <    |                      | j        |z            S rB   )acoshrz   rM   s     r>   asechr          ))CGaK000r@   c                 <    |                      | j        |z            S rB   )asinhrz   rM   s     r>   acschr      r   r@   c                     |                      |          }|r|                     |          r|S |                     |          r|dk    r| j        S | j         S |t	          |          z  S )Nr	   )convertisnan_is_real_typerz   absrH   xs     r>   signr      sn    AA 		! 
 q557NG8Os1vv:r@   r   c                     |dk    r|                      |          S |                     |          }|                     |          }|                     ||          S Nr   )agm1r   _agm)rH   rS   bs      r>   agmr      sK    Avvxx{{AAAA88Aq>>r@   c                 t    |                      |          rd|z  S |s|dz   S |                     |          |z  S r   )isinfr   r   s     r>   sincr      sB    
yy|| s
 s
771::a<r@   c                     |                      |          rd|z  S |s|dz   S |                     |          | j        |z  z  S r   )r   sinpir   r   s     r>   sincpir      sI    
yy|| s
 s
99Q<<""r@   c                      s j         S                                 j         k     rddz  z  z   S                       fdd          S )Nr   r   c                  L    t                                         dg          S N)iterexpr   s   r>   <lambda>zexpm1.<locals>.<lambda>   s    dCGGAJJr?&;&; r@   r   )zeromagprecsum_accuratelyr   s   ``r>   expm1r      sa     x
wwqzzSXI3q!t8|;;;;;A>>>r@   c                     |s| j         S |                     |          | j         k     r|d|dz  z  z
  S |                     |                     d|d| j        z                      S )Nr   r   r   r   )r   r   r   logfaddr   s     r>   log1pr      sf     x
wwqzzSXI3q!t8|77388Aqqz822333r@   c                 f   | j         }| j        }z  |z
  } ||          }|dk    r|S |srdv r|                               r|S |z
  } |          }|                               }	| ||	          z   | j         k     r|	z  |	z  dz  dz  z   S |                     fdd          S )Ni)r   r   y              ?y             r   c                  ,    t           z  dg          S r   )r   )r   ys   r>   r   zpowm1.<locals>.<lambda>   s    dAqD":&6&6 r@   r   )r   rz   isintlnr   r   )
rH   r   r   r   rz   wMx1magylnxs
    ``       r>   powm1r      s    
'C
'C	1s
AAA2vv  	q,,,1,H	
SB3q66D
&&))Ccc#hh#(""1uAz!|##66666:::r@   c                     t          |          }t          |          }||z  }|s| j        S d|z  |k    r| j         S d|z  |k    r| j        S d|z  d|z  k    r| j         S |                     d|                     |          z  |z            S )Nr   r   r
   )intrz   jexpjpimpf)rH   krI   s      r>   _rootof1r      s    AAAAFA w	
1x	
1u	
1!v::a

l1n%%%r@   r	   c                    t          |          }|                     |          }|r|dz  rRd|z  |dz
  k    rF|                     |          s1|                     |          dk     r|                     | |           S | j        }	 | xj        dz  c_        |                     ||d          |                     ||          z  }|| _        n# || _        w xY w|
 S |                     ||          S )Nr   r   r	   
   )r   r   imrer   r   r   _nthroot)rH   r   rI   r   r   vs         r>   r   r      s    AAAA E 	$acQqSjj366!99j366!99q==HHaROO##x	HHNHHAq!!CLLA$6$66ACHHtCHOOOOr	<<1s   >C 	CFc                       j          j        }	  xj        dz  c_        |r fdt                    D             }n fdt                    D             }| _        n# | _        w xY wd |D             S )Nr   c                 \    g | ](} |          d k                         |          )S r   r   ).0r   rH   gcdrI   s     r>   
<listcomp>zunitroots.<locals>.<listcomp>   s6    FFFqAaAa""r@   c                 <    g | ]}                     |          S rp   r   )r   r   rH   rI   s     r>   r   zunitroots.<locals>.<listcomp>  s'    555qa""555r@   c                     g | ]}|
 S rp   rp   )r   r   s     r>   r   zunitroots.<locals>.<listcomp>  s    ???1QB???r@   )_gcdr   range)rH   rI   	primitiver   r   r   s   ``   @r>   	unitrootsr      s    
(C8DB 	6FFFFFFE!HHFFFAA 65555E!HH555A4????s   AA' '	A0c                     |                      |          }|                     |          }|                     |          }|                     ||          S rB   )r   _re_imatan2)rH   r   r   r   s       r>   r   r     sC    AA	B	B99Rr@   c                 F    t          |                     |                    S rB   )r   r   r   s     r>   fabsr     s    s{{1~~r@   c                 ^    |                      |          }t          |d          r|j        S |S )Nreal)r   hasattrr   r   s     r>   r   r     s/    AAq& vHr@   c                 h    |                      |          }t          |d          r|j        S | j        S )Nimag)r   r   r   r   r   s     r>   r   r     s1    AAq& v8Or@   c                 z    |                      |          }	 |                                S # t          $ r |cY S w xY wrB   )r   r   AttributeErrorr   s     r>   r   r      sH    AA{{}}   s   + ::c                 V    |                      |          |                     |          fS rB   )r   r   rM   s     r>   polarr   (  s!    HHQKK$$r@   c                 B    | | j         |                     |           z  S rB   )mpccos_sin)rH   rphis      r>   rectr  ,  s"    wswC(()))r@   Nc                     ||                      |          S | j        dz   }|                      ||          |                      ||          z  S )N   r   )r   r   )rH   r   r   wps       r>   r   r   0  sM    yvvayy	BB66!"6qr 2 222r@   c                 .    |                      |d          S )Nr   )r   r   s     r>   log10r  7  s    771b>>r@   c                 X    |                      |          |                      |          z  S rB   )r   )rH   r   r   s      r>   fmodr	  ;  s!    ;;q>>CKKNN**r@   c                     || j         z  S rB   degreer   s     r>   degreesr  ?      sz>r@   c                     || j         z  S rB   r  r   s     r>   radiansr  C  r  r@   c                     |s|s|S | j         |z   S || j        k    r |dk    r|S |d|z  | j        z  | j        z  z   S || j         k    r| d|z  dz   | j        z  | j        z  z   S |                     |          S )Nr	   r   r   )ninfinfr   r   r   )rH   rJ   r   s      r>   _lambertw_specialr  G  s      	Hx!|CG||66Hqs36z#%'''CH}}qs1ucfnSU***66!99r@   c                    d}t          | d          r6t          | j                  }| j        }|r	d|dk     z  }t          |          }nt          |           }d}d}|sd}t	          ||          } |dk    rd|cxk     rdk     rn nd|cxk     rdk     rn n|rD|d	k    rd
d| dz
  z  z   S |dk    rdd| dz
  z  z   S |dk     rdd| dz
  z  z   S |dk     rdd| dz
  z  z   S |dk     r|dk    rdd| dz   z  z   S dd| dz   z  z   S d}|s||k    r|} |dk     rdd | |z
  d!z  z  z   d"| |z
  z  z
  S |d!k     r| S d#d$| z  z   S |s0|dk    r*t          j        |          }t          j        |          }nt          j        |           }t          j        |          }n|dk    rd}|s||cxk     rdk     rn n|} |dk    r-|d%k     r'd&|cxk     rdk     rn ndd | |z
  d!z  z  z
  d"| |z
  z  z
  S |s=d|cxk    rdk     r0n n-t          j        |           }|t          j        |           z
  S |dk    r |s|dk     rt          j        |           d'z
  }nt          j        |           d(z
  }t          j        |          }||z
  ||z  z   ||d)z
  z  d)|d)z  z  z  z   S )*Nr	   r   r   g        g      g      @g      g      @      ?yx&1?p=
ף?yh|?5?ʡEƿy      ?      @g      ?y)\(?&1?y      ?L7A`y      ?      ?yx&1?p=
ףyh|?5?ʡE?y      ?      g      пy)\(?&1ʿy      ?L7A`?y      ?      g      y'1ZԿq=
ףp?yM`"r   y'1ZԿq=
ףpyM`"?g2,6V׿gɿg4@r   g}tp?g?g333333?g?g333333y        -DT!	@y        -DT!@r   )r   floatr   r   complexmathr   cmath)rJ   r   	imag_signr   r   r   L1L2s           r>   _lambertw_approx_hybridr  Z  sU   Iq& 	!&MMF 	(QI!HH!HH	 !AAvv!>>>>c>>>>>dQnnnnnnnnn Ut88\lQ	]5S$SSt88\lQ	]5S$SSu99l|am6T%TTu99l|am6T%TT4xx>>(]QqS,AAA(]QqS,AAA"A 1q554xx,acCZ77:JAaC:PPP3wwqQ; 	2q3ww!B48B<<bb1BEIbMMrr	
b 	q1{{{{s{{{{{ANNCD1OOOOtOOOOO(!A#336F!6LLL 	tq31"B"%%Bq3wwYq\\$77Yq\\$772B7RU?RAY"a%000r@   c                                                     }d|cxk     rdk     r`n n\d|cxk     rdk     rNn nJ|dk     r%t          dz             dk     r|dk    s@|d	k    r                               dk    s!|dk    r                               dk     rȉ                      fd
          }                      |           } xj        |z  c_                             d j        z  dz   z            } xj        |z  c_                             d	                               d          d                     d                               d	          d}|dk    r| } j        }	t          t          d|                    D ]vr}                     fdt          d          D                       |<   dz
  dz
           dz  |dz
           dz  z   z  dz   z  |         dz  z
  dz
           dz   z  z
  <            |z  z  }
|	|
z  }	                      |
          | k     r|	dfc S dz   xj        |dz  z  c_        |	dfS |dk    s|d	k    rt          |          dfS |dk    r;|d	k     r
dz
  z  dfS                                }                     |          }n|d	k    ri                               sTd                               cxk     rdk     r4n n1                                }|                     |           z
  dfS                                d j        z  |z  z   }                     |          }||z
  ||z  z   ||dz
  z  d|dz  z  z  z   dfS )z
    Return rough approximation for W_k(z) from an asymptotic series,
    sufficiently accurate for the Halley iteration to converge to
    the correct value.
    ii  ii  r   g,6V?g?r	   r   c                  2                          d          gS r   )r   rM   s   r>   r   z"_lambertw_series.<locals>.<lambda>  s    Aswwr{{3C r@   r   r   c              3   F   K   | ]}|         d z   |z
           z  V  dS )r   Nrp   )r   r   lus     r>   	<genexpr>z#_lambertw_series.<locals>.<genexpr>  s7      'K'K!!Qqs1uX'K'K'K'K'K'Kr@   r   TFg,6V׿y               @)r   r   r   r   r   sqrter   r   r   maxfsumr  r   r   r   )rH   rJ   r   tolmagzdeltacancellationprS   rY   termr  r  r"  r#  s   ``           @@r>   _lambertw_seriesr/    s    771::DdSuq////4/////!88A..//$66Avv!r''cggajjAooq&&cggajj1nn**+C+C+C+C+CDD #L(HHQa	]++L(wwr{{cggajj11wwqzzSWWR[[1166AH  Al 3 344  Azz"xx'K'K'K'K'Kva{{'K'K'KKK! !!a!fQhq1vax&78!A#>qtAvEa!faPQclR!Q4!Q$;DIAwwt}}t++ $wFAAL!O+%x66Q"WW*1a00%77Avv"99ac7E>!VVAYYVVBZZ	
b#''!**+<swwqzz+M+M+M+MA+M+M+M+M+MVVQBZZCFFB3KK&& VVAYYCF1$VVBZZ7RU?RAY"a%00%77r@   c                    |                      |          }t          |          }|                     |          st          | ||          S | j        }| xj        d|                     |pd          z   z  c_        | j        }|dz
  }t          | |||          \  }}|s|                     d          }t          d          D ]v}	| 	                    |          }
||
z  }||z
  }||||
z   ||z   |z  ||z  |z   z  z
  z  z
  }|                     ||z
            |                     |          |z
  k    r|} n|}w|	dk    r| 
                    d|z             || _        |
 S )Nr  r   r   r   d   z1Lambert W iteration failed to converge for z = %s)r   r   isnormalr  r   r   r/  r   r   r   warn)rH   rJ   r   r   r  r)  r   donetwoiewwewwewzwns                 r>   lambertwr;    st   AAAA<<?? , a+++8DHHSWWQV!__$$HH	B
q&CsAq#..GAt Nggajj 		 		ABB$Cq5DT3r61S5$,Ac	"::;;Bwwr!t}}c 11188HHH1LMMMCH2Ir@   c                    |                      |          }|s/|                     |          r|S  t          |          d          S |                     |          s?|                     |          s*|                     |          s|                     |          r||z  S |dk    r|S |dk    r||dz   z  S |dk    r|                     |          S t          | ||d          |                     |          z  S )Nr   r   r	   T)r   r   typer   r   _polyexpr   )rH   rI   r   s      r>   bellr?    s    AA 99Q<< 	HtAwwqzz
yy|| syy|| syy|| syy|| !tAvvaxAvva1g~Avvcjjmm#CAt$$swwqzz11r@   c                 H      fd}                      |d          S )Nc               3   t   K   r                               V  } d}	 |z  | z  V  |dz  }| z  |z  } r   )r   )tr   rH   extrarI   r   s     r>   _termsz_polyexp.<locals>._terms  s`       	 **Q--	Q$(NNNFA!AA	r@   r   )
check_step)r   )rH   rI   r   rC  rD  s   ```` r>   r>  r>    sI            f333r@   c                    |                      |          s?|                      |          s*|                     |          s|                     |          r||z  S |dk    r||z  S |dk    r|                     |          S |dk    r|                     |          |z  S |dk    r|                     |          |z  |dz   z  S t	          | ||          S )Nr	   r   r   )r   r   r   r   r>  )rH   rY   rJ   s      r>   polyexprG    s    
yy|| syy|| syy|| syy|| !tAvvaczAvvciill"Avvcggajjl"AvvcggajjlAaC((CAr@   c                    t          |          }|dk     rt          d          | j        }|dk    r|S |dk    r||z
  S |dk    r||z   S d}d}d}d}t          d|dz             D ]b}||z  s[|                     ||z            }	|                     ||           }
|
r	||
|	z  z  }A|	dk    r||z  }|dz  }R|	dk    r
||z  }|dz  }c|r||k    r|dz  }n
||z  }||z  }|S )Nr	   zn cannot be negativer   r   r   )r   
ValueErrorrz   r   moebiusr   )rH   rI   rJ   r-  a_prodb_prod	num_zeros	num_polesdr   r   s              r>   
cyclotomicrP    sK   AA1uu/000AAvvAvv1uAvv1u FFII1QqS\\ # #1u 	#AqD!!A 1a A #QT	66aKFNII"WWaKFNI y  FAAKAKAHr@   c                 V   t          |          }|dk     r| j        S |dz  dk    r||dz
  z  dk    r| j        
 S | j        S dD ]O}||z  sH||z  d}}|dk    r$t          ||          \  }}|r	| j        c S |dk    $|                     |          c S P|                     |          r|                     |          S |dk    rt          d}	 t          |d|z  z  dz             }|dk     r| j        S ||z  |k    r*|                     |          r|                     |          S |dz  }^)a  
    Evaluates the von Mangoldt function `\Lambda(n) = \log p`
    if `n = p^k` a power of a prime, and `\Lambda(n) = 0` otherwise.

    **Examples**

        >>> from mpmath import *
        >>> mp.dps = 25; mp.pretty = True
        >>> [mangoldt(n) for n in range(-2,3)]
        [0.0, 0.0, 0.0, 0.0, 0.6931471805599453094172321]
        >>> mangoldt(6)
        0.0
        >>> mangoldt(7)
        1.945910149055313305105353
        >>> mangoldt(8)
        0.6931471805599453094172321
        >>> fsum(mangoldt(n) for n in range(101))
        94.04531122935739224600493
        >>> fsum(mangoldt(n) for n in range(10001))
        10013.39669326311478372032

    r   r	   r   )
r
   r   r                        l       73Me'r  r   )r   r   ln2divmodr   isprimerF   )rH   rI   r-  qr   r   s         r>   mangoldtr]  ;  so   0 	AA1uux1uzz!9>>G8O8O
 *  1u 	61qAa%%a||1 $8OOO a%% 66!99	 {{1~~ vvayy6zz!!	ABqD	C  q558O6Q;;{{1~~ !vvayy 	Qr@   c                     |                      t          |          t          |                    }|rt          |          S |                     |          S rB   )
_stirling1r   r   rH   rI   r   exactr   s        r>   	stirling1rb  w  D    s1vvs1vv&&A 1vvwwqzzr@   c                     |                      t          |          t          |                    }|rt          |          S |                     |          S rB   )
_stirling2r   r   r`  s        r>   	stirling2rf    rc  r@   r   )r	   )FrB   )6libmp.backendr   objectr   rt   rv   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r	  r  r  r  r  r  r  r/  r;  r?  r>  rG  rP  r]  rb  rf  rp   r@   r>   <module>ri     s   " " " " " "L4 L4 L4 L4 L4v L4 L4 L4\        , ,  , , ,  , , ,  , . .  . . .  . . .  .% % %  . .  . . .  .& & &  0 0  0 0 0  0	 	 	        # # # ? ? ? 4 4 4 ; ; ;* & & &    "                    % % % * * * 3 3 3 3    + + +           =1 =1 =1~48 48 48l    8 2 2 2 2
4 
4 
4 
4    ( ( (T 9 9 9v          r@   