K iFddlmZGddeZdZdZdZedZedZed Z ed Z ed Z ed Z ed Z edZedZedZedZedZedZed6dZedZedZedZedZedZedZed7dZed8dZedZedZed Zed!Z ed"Z!ed#Z"ed$Z#ed9d&Z$ed'Z%ed(Z&ed)Z'ed*Z(d+Z)dd%l*Z*dd%l+Z+d,Z,d-Z-ed7d.Z.ed6d/Z/d8d0Z0ed1Z1ed2Z2ed3Z3ed8d4Z4ed8d5Z5y%):)xrangecveZdZdZiZdZdZedZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZy)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. gP?c |j}|jD]'}|j|\}}|j|||)|jd|_|jd|_|jd|_|jd|_|jd|_|jd|_ |jd|_ |jd|_ |jd |_ |jd |_ |jd |_|jd |_|jd |_|jd|_|jd|_|jd|_|jd|_i|_|j,j/dddddddd|j1|j2|_y)N)rr)rr)r)r)r)r r )r)r r )r )r r )rr )rr )r r )r)r r)r r argconjrootpsizetafibfac)phase conjugatenthroot polygammahurwitz fibonacci factorial) __class__defined_functions _wrap_specfun_mpqmpq_1mpq_0mpq_1_2mpq_3_2mpq_1_4mpq_1_16mpq_3_16mpq_5_2mpq_3_4mpq_7_4mpq_5_4mpq_1_3mpq_2_3mpq_4_3mpq_1_6mpq_5_6mpq_5_3_misc_const_cache_aliasesupdatememoizezetazerozetazero_memoized)selfclsnamefwraps `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mpmath/functions/functions.py__init__zSpecialFunctions.__init__snn)) -D++D1GAt   dAt , -YYu% YYu% yy' yy' yy'  &)  &) yy' yy' yy' yy' yy' yy' yy' yy' yy' yy' !#      "&dmm!<ct|||yN)setattr)r:r;r<r=s r>r zSpecialFunctions._wrap_specfun=sT1r@ctrBNotImplementedErrorctxnzs r>_besseljzSpecialFunctions._besseljDs#66r@ctrBrErHrJs r>_erfzSpecialFunctions._erfEs//r@ctrBrErMs r>_erfczSpecialFunctions._erfcF00r@ctrBrE)rHrJas r>_gamma_upper_intz!SpecialFunctions._gamma_upper_intGs+>%>r@ctrBrErGs r> _expint_intzSpecialFunctions._expint_intHs&9 9r@ctrBrErHss r>_zetazSpecialFunctions._zetaIrQr@ctrBrE)rHrYrSrI derivativesreflects r> _zetasum_fastzSpecialFunctions._zetasum_fastJsAT;Tr@ctrBrErMs r>_eizSpecialFunctions._eiK..r@ctrBrErMs r>_e1zSpecialFunctions._e1Lrar@ctrBrErMs r>_cizSpecialFunctions._ciMrar@ctrBrErMs r>_sizSpecialFunctions._siNrar@ctrBrErXs r>_altzetazSpecialFunctions._altzetaOs 33r@N)__name__ __module__ __qualname____doc__r THETA_Q_LIMr? classmethodr rKrNrPrTrVrZr^r`rcrergrir@r>rrsV K(=V 7/0>90T....3r@rcD|dftj|j<|S)NTrrrjr<s r> defun_wrappedrtQs 56W&&qzz2 Hr@cD|dftj|j<|S)NFrrrss r>defunrvUs 56X&&qzz2 Hr@c<tt|j||SrB)rCrrjrss r> defun_staticrxYs ajj!, Hr@c>|j|j|z SrB)onetanrMs r>cotr|]#''!*,,r@c>|j|j|z SrB)rzcosrMs r>secr`r}r@c>|j|j|z SrB)rzsinrMs r>cscrcr}r@c>|j|j|z SrB)rztanhrMs r>cothrf388A;..r@c>|j|j|z SrB)rzcoshrMs r>sechrirr@c>|j|j|z SrB)rzsinhrMs r>cschrlrr@c`|s|jdzS|j|j|z S)N?)piatanrzrMs r>acotros* vv|xx! $$r@c>|j|j|z SrB)acosrzrMs r>asecrv#''A+..r@c>|j|j|z SrB)asinrzrMs r>acscryrr@c`|s|jdzS|j|j|z S)Ny?)ratanhrzrMs r>acothr|s* vv}yy1%%r@c>|j|j|z SrB)acoshrzrMs r>asechr))CGGaK00r@c>|j|j|z SrB)asinhrzrMs r>acschrrr@c|j|}|r|j|r|S|j|r|dkDr |jS|j S|t |z S)Nr )convertisnan _is_real_typerzabsrHxs r>signrsX AA  !   q577NGG8O s1v:r@c|dk(r|j|S|j|}|j|}|j||SNr)agm1r_agm)rHrSbs r>agmrsAAvxx{ AA AA 88Aq>r@cd|j|rd|z S|s|dzS|j||z Sr)isinfrrs r>sincrs4 yy|s s 771:a<r@c~|j|rd|z S|s|dzS|j||j|zz Sr)rsinpirrs r>sincpirs= yy|s s 99Q< ""r@cs jSjj kr ddzzzSjfddS)Nrrc<tjdgSN)iterexprsr>zexpm1..sdCGGAJr?&;r@r)zeromagprecsum_accuratelyrs``r>expm1rsK xx wwqzSXXI3q!t8|   ;A >>r@c|s |jS|j||j kr |d|dzzz S|j|j d|d|jzS)Nrrrr)rrrlogfaddrs r>log1prs\ xx wwqzSXXI3q!t8| 77388Aqqz82 33r@cV|j}|j}z|z }||}|dkDr|S|srdvr|jr|S|z }|}|j} ||| z|j kr| z| zdzdz zS|j fddS)Ni)rry?yrc$tzdgSr)r)rysr>rzpowm1..sdAqD":&6r@r)rrzisintlnrr) rHrrrrzwMx1magylnxs `` r>powm1rs ''C ''C 1s A AA2v q,,1H SB q6D &&)C c#h#(("1uAz!|##   6 ::r@c"t|}t|}||z}|s |jSd|z|k(r |j Sd|z|k(r |jSd|zd|zk(r |j S|jd|j |z|z S)Nrr r )intrzjexpjpimpf)rHkrIs r>_rootof1rs AA AAFA ww 1x 1uu 1!v ::a l1n %%r@r ct|}|j|}|r|dzrDd|z|dz k(r9|j|s(|j|dkr|j | | S|j } |xj dz c_|j ||d|j ||z}||_|S|j||S#||_wxYw)Nrrr )rrimrerrr_nthroot)rHrrIrrvs r>rrs AA AA EacQqSj366!9366!9q=HHaRO# #xx  HHNHAq!CLLA$66ACHr <<1 CHs 5;C Cc|j}|j} |xjdz c_|r6t|Dcgc]!}|||dk(s|j||#}}n(t|Dcgc]}|j||}}||_|Dcgc]}|c}Scc}wcc}w#||_wxYwcc}w)Nrr)_gcdrranger)rHrI primitivegcdrrrrs r> unitrootsrs ((C 88D B ,1!HFqAaA a"FAF-2!H5qa"5A5?1QB? G6 s4$B1B'B'$B14B, B1 B=' B11 B:c|j|}|j|}|j|}|j||SrB)r_re_imatan2)rHrrrs r>rrs: AA B B 99R r@c6t|j|SrB)rrrs r>fabsrs s{{1~ r@cX|j|}t|dr |jS|S)Nreal)rhasattrrrs r>rrs' AAq&vv Hr@cl|j|}t|dr |jS|jS)Nimag)rrrrrs r>rrs+ AAq&vv 88Or@ch|j|} |jS#t$r|cYSwxYwrB)rrAttributeErrorrs r>rr s4 AA{{} s # 11cF|j||j|fSrB)rrrMs r>polarr(s HHQK $$r@cD||j|j|zSrB)mpccos_sin)rHrphis r>rectr,s! wsww C() ))r@Nc||j|S|jdz}|j|||j||z S)Nr)rr)rHrrwps r>rr0sGyvvay BB 66!"6 qr 2 22r@c&|j|dS)Nr)rrs r>log10r7s 771b>r@cH|j||j|zSrB)r)rHrrs r>fmodr;s ;;q>CKKN **r@c ||jz SrBdegreers r>degreesr? szz>r@c ||jzSrBrrs r>radiansr Crr@c(|s|s|S|j|zS||jk(r)|dk(r|S|d|z|jz|jzzS||jk(r&| d|zdz|jz|jzzS|j |S)Nr rr)ninfinfrrr)rHrJrs r>_lambertw_specialr Gs Hxx!|CGG| 6Hqs366z#%%'' 'CHH}qs1ucffnSUU*** 66!9r@cd}t|dr7t|j}|j}|rd|dkz}t|}nt|}d}d}|sd}t ||}|dk(rd|cxkrdkrnnd|cxkrdkrnn|r@|d kDr d d |d z zzS|d kDr dd|dz zzS|dkr dd|dz zzS|dkr dd|dz zzS|dkr|dk\r dd|dzzzSdd|dzzzSd}|s||kDr|}|dkrdd ||z d!zzzd"||z zz S|d!kr|Sd#d$|zzS|s1|dkDr,t j |}t j |}ntj |}tj |}n|dk(rd}|s||cxkrdkrnn|}|dk\r*|d%kr%d&|cxkrdkrnndd ||z d!zzz d"||z zz S|s=d|cxkrdkr2nn/t j | }|t j | z S|dk(r |s|dkrtj |d'z }ntj |d(z }tj |}z ||z z||d)z zd)|d)zzz zS)*Nr rrggg@gg@?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?gy'1ZԿq= ףp?yM`"ry'1ZԿq= ףpyM`"?g2,6V׿gɿg4@rg}tp?g?g333333?g?g333333y-DT! @y-DT!@r)rfloatrrcomplexmathrcmath)rJr imag_signrrrL1L2s r>_lambertw_approx_hybridrZsIq& !&&M FF QI !H !H  ! AAv !>c>dQnnt8\lQ ]5S$SSt8\lQ ]5S$SSu9l|am6T%TTu9l|am6T%TT4x>(]QqS,AAA(]QqS,AAA"A1q54x,acCZ77:JAaC:PPP3wqQ; q3w!B488Brz"_lambertw_series..sAswwr{3Cr@rrc3@K|]}|dz|z zyw)rNrp).0rlus r> z#_lambertw_series..s%'K!!Qqs1uX 'Ksr TFg,6V׿y@)rrrrrsqrterrrmaxfsumrrrr)rHrJrtolmagzdelta cancellationprSrYtermrrrrs`` @@r>_lambertw_seriesr)s 771:D dSuq/4/ !8A../$6Av!r'cggajAoq&cggaj1n**+CD # L(HHQa ]+L(wwr{cggaj1wwqzSWWR[16AHH Al 34Az"xx'Kva{'KK! !!a!fQhq1vax&78!A#>qtAvEa!faPQclR!Q4!Q$;DIAwwt}t+ $wFAL!O+%x 6Q"W*1a0%7 7Av "9ac7E> ! VVAY VVBZ b#''!*+lambertwr5sF AA AA <<? a++ 88DHHSWWQV!_$$H B q&CsAq#.GAt ggaj ABB$Cq5DT3r61S5$,Ac "::;;Bwwr!t} c 11  8 HHH1L MCH 2Ir@c|j|}|s$|j|r|St|dS|j|s3|j|s"|j|s|j|r||zS|dk(r|S|dk(r||dzzS|dk(r|j |St |||d|j |z S)Nrrr T)rrtyperr_polyexpr)rHrIrs r>bellr9s AA 99Q<HtAwqz yy|syy|syy|syy|!t AvaxAva1g~Avcjjm# CAt $swwqz 11r@c@fd}j|dS)Nc3pKrj}d} |z|z|dz }|z|z }wr)r)trrHextrarIrs r>_termsz_polyexp.._termssM **Q-   Q$(N FA!AAs36r ) check_step)r)rHrIrr=r>s```` r>r8r8s    f  33r@c^|j|s3|j|s"|j|s|j|r||zS|dk(r||zS|dk(r|j|S|dk(r|j||zS|dk(r|j||z|dzzSt |||S)Nr rr)rrrrr8)rHrYrJs r>polyexprAs yy|syy|syy|syy|!t AvaczAvciil"Avcggajl"AvcggajlAaC(( CA r@ct|}|dkr td|j}|dk(r|S|dk(r||z S|dk(r||zSd}d}d}d}td|dzD]Z}||zr |j ||z} |j || } | r || | zz};| dk(r ||z}|dz }K| dk(sQ||z}|dz }\|r||kDr|dz}|S||z}||z}|S)Nr zn cannot be negativerrr)r ValueErrorrzrmoebiusr) rHrIrJr'a_prodb_prod num_zeros num_polesdrrs r> cyclotomicrJs' AA1u/00 AAvAv1u Av1u F FII 1QqS\#1u AqD!A1a AQT 6aKFNI"WaKFNI#  y FA H KA KA Hr@c<t|}|dkr |jS|dzdk(r$||dz zdk(r |jS|jSdD]K}||zr ||zd}}|dkDr%t||\}}|r|jcS|dkDr%|j |cS|j |r|j |S|dkDrt d} t|d|z zdz}|dkr |jS||z|k(r"|j |r|j |S|dz }U)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 rr r) r r r l73Me'rr)rrln2divmodrisprimerF)rHrIr'qrrs r>mangoldtrW;s30 AA1uxx1uz !9>GG8O88O *1u61qAa%a|188Oa%66!9  {{1~vvay6z!! A BqD C  q588O 6Q;{{1~vvay  Q r@c|jt|t|}|r t|S|j|SrB) _stirling1rrrHrIrexactrs r> stirling1r\w4 s1vs1v&A 1v wwqzr@c|jt|t|}|r t|S|j|SrB) _stirling2rrrZs r> stirling2r`r]r@)r)r )FrB)6 libmp.backendrobjectrrtrvrxr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r rrrr)r5r9r8rArJrWr\r`rpr@r>rcs>"L4vL4\   ,,,,,,......%% ....&&0000  ##??44;;* & &"      %%**33 ++  =1~48l8 2 2 4( ( T99vr@