K ikdZddlmZddlmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7ddl8m9Z9m:Z:m;Z;meefZ?dZ@dZAd ZBd ZCd ZDd ZEdKd ZFdKdZGdZHdZIdZJdKdZKdKdZLdZMdZNdKdZOdKdZPdZQdZRdZSdZTdZUdZVdZWdZXd ZYd!ZZd"Z[d#Z\d$Z]d%Z^d&Z_d'Z`d(Zad)ZbdLd*Zcd+Zdd,ZedKd-Zfd.Zgd/Zhd0Zid1Zjd2Zkd3Zld4Zmd5Znd6Zod7Zpd8Zqd9Zrd:Zsd;Ztd<Zued=Zved>ZwevewfZxed?Zyed@ZzdAZ{dKdBZ|dKdCZ}dDZ~dEZdFZdGZdHZdIZyJ)Mz3 Computational functions for interval arithmetic. )xrange)+ ComplexResult round_downround_up round_floor round_ceiling round_nearest prec_to_dpsrepr_dps dps_to_precbitcount from_floatfnanfinffninffzerofhalffonefnonempf_signmpf_ltmpf_lempf_gtmpf_gempf_eqmpf_cmp mpf_min_max mpf_floorfrom_intto_intto_strfrom_strmpf_absmpf_negmpf_posmpf_addmpf_submpf_mul mpf_mul_intmpf_div mpf_shift mpf_pow_int from_man_expMPZ_ONE)mpf_logmpf_expmpf_sqrtmpf_atan mpf_atan2mpf_pimod_pi2 mpf_cos_sin) mpf_gamma mpf_rgamma mpf_loggamma mpc_loggammacb|\}}t|dz}dt||dt||dS)N[z, ])r r!)sprecsasbdpss Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mpmath/libmp/libmpi.pympi_strrEs1 FB d a CC&S/ ::c ||k(SNr?ts rDmpi_eqrL) 6MrFc ||k7SrHrIrJs rDmpi_nerO,rMrFcL|\}}|\}}t||ryt||ryyNTF)rrr?rKrArBtatbs rDmpi_ltrU/- FB FB b"~d b"~e rFcL|\}}|\}}t||ryt||ryyrQ)rrrRs rDmpi_lerX6rVrFct||SrH)rUrJs rDmpi_gtrZ= 1%rFct||SrH)rXrJs rDmpi_ger]>r[rFc|\}}|\}}t|||t}t|||t}|tk(rt}|tk(rt }||fSrH)r&rrrrr r?rKr@rArBrSrTabs rDmpi_addrb@S FB FBBk*ABm,ADye!Dyd! a4KrFc|\}}|\}}t|||t}t|||t}|tk(rt}|tk(rt }||fSrH)r'rrrrrr_s rDmpi_subreIrcrFc0|\}}t|||tSrH)r'rr?r@rArBs rD mpi_deltarhRs FB 2r4 **rFcD|\}}tt|||tdS)N)r+r&r rgs rDmpi_midrkVs# FB WRT=92 >>rFcX|\}}t||t}t||t}||fSrH)r%rrr?r@rArBr`ras rDmpi_posrnZ0 FBD+&AD-(A a4KrFcX|\}}t||t}t||t}||fSrH)r$rrrms rDmpi_negrq`rorFcr|\}}t|}t|}|dk\r&t||t}t||t}||fS|dk\rGt}t |}t ||rt||t}||fSt||t}||fSt ||t}t ||t}||fSN)rr%rrrr$r) r?r@rArBsassbsr`ranegsas rDmpi_absrxfs FB 2,C 2,C ax Bk * Bm , a4K    % D-0A a4K t]3A a4K Bk * Bm , a4KrFc t|||f|SrH)mpi_mulr?rKr@s rD mpi_mul_mpfr|} 1q!fd ##rFc t|||f|SrH)mpi_divr{s rD mpi_div_mpfrr}rFc|\}}|\}}t|}t|}t|} t|} ||cxk(rdk(r-nn*|tk(s |tk(r ttfSttfS| | cxk(rdk(r-nn*|tk(s |tk(r ttfSttfS|dk\r| dk\rFt |||t } t |||t } | tk(rt} | tk(rt} | | fS| dkrFt |||t } t |||t } | tk(rt} | tk(rLt} | | fSt |||t } t |||t } | tk(rt} | tk(rt} | | fS|dkr| dk\rFt |||t } t |||t } | tk(rt} | tk(rt} | | fS| dkrFt |||t } t |||t } | tk(rt} | tk(rLt} | | fSt |||t } t |||t } | tk(rt} | tk(rt} | | fSt ||t ||t ||t ||g} t| vrtt} } | | fSt| \} } t| |t } t| |t } | | fSrs) rrrrr(rrrrr%)r?rKr@rArBrSrTrurvtastbsr`racasess rDrzrzs FB FB 2,C 2,C 2,C 2,C cQ ;"*$; e| cQ ;"*$; e| ax !8Bk2ABm4ADye!Dyd!V a4KSAXBk2ABm4ADye!Dye!J a4KEBk2ABm4ADye!Dyd!> a4K=  !8Bk2ABm4ADye!Dye!0 a4K-AXBk2ABm4ADye!Dyd!$ a4KBk2ABm4ADye!Dyd! a4KR'"b/72r?GBPROT 5=4qA a4Ku%DAq4-A4/A a4KrFcZ|\}}t|tr(t|||t}t|||t}||fSt |tr(t|||t}t|||t}||fSt |}t||g\}}t}t|||t}||fSrH)rrr(rrrr$rrms rD mpi_squarers FB b% BD+ . BD- 0 a4K E  BD+ . BD- 0 a4K R[b"X&B  BD- 0 a4KrFc|\}}|\}}t|}t|}t|} t|} ||cxk(rdk(r/nn,| dkr| dkDs | dk(s| dk(r ttfSttfS| dkr| dkDr ttfS| dkrt t |t ||S| dk(re|dkr|dkDr ttfS| | k(r ttfS|dk\rt |||t} t} |dkrt} t |||t}   fS|dk\rFt |||t} t |||t} | tk(rt} | tk(rt} | | fS|dkrFt |||t} t |||t} | tk(rt} | tk(rt} | | fSt |||t} t |||t} | tk(rt} | tk(rt} | | fSrs) rrrrrrqr*rrr) r?rKr@rArBrSrTrurvrrr`ras rDrrs FB FB 2,C 2,C 2,C 2,C cQ !GaSAX$; e| Qw37d{ Qwwqz71:t44 ax 7sQw$;  #:$;  !8Bk2AA !8ABm4A, a4K# !8Bk2ABm4ADye!Dyd! a4KAXBk2ABm4ADye!Dye! a4K Bk2ABm4ADye!Dyd! a4KrFcJt|t}t|t}||fSrH)r4rr)r@r`ras rDmpi_pirs#t[!At]#A a4KrFcX|\}}t||t}t||t}||fSrH)r0rrrms rDmpi_expr0 FBD+&AD-(A a4KrFcX|\}}t||t}t||t}||fSrH)r/rrrms rDmpi_logrrrFcX|\}}t||t}t||t}||fSrH)r1rrrms rDmpi_sqrtr$s0 FBT;'AT=)A a4KrFcX|\}}t||t}t||t}||fSrH)r2rrrms rDmpi_atanr+s0 FBT;'AT=)A a4KrFc |\}}|dkr&tttft|| |dz|S|dk(r ttfS|dk(r|S|dk(r t||S|dzr(t |||t }t |||t }||fSt|}t|}|dk\r(t |||t }t |||t }||fS|dkr(t |||t }t |||t }||fSt}t|}t||rt |||t }||fSt |||t }||fSNrtr) rr mpi_pow_intrr,rrrrr$r) r?nr@rArBr`rarurvs rDrr1s` FB1ud|[QBR%@$GGAvd|AvAv!T""1u At[ 1 At] 3, a4K'rlrl !8B45AB47A a4KAXB45AB47A a4KABb"~At]; a4K At]; a4KrFc |\}}||k(rP|ttfvrB|tt|k(rt |t||S|t k(r t ||St||dz}t|||dz}t||SNr) rrrr rrrrrzr)r?rKr@rSrTuvs rDmpi_powrVs FB RxBtUm+ &*% %q&*d3 3 ;At$ $4"9A1dRi A 1d rFc"t||r|S|SrH)rxys rDMINra a| HrFc"t||r|S|SrH)rrs rDMAXrfrrFc|\}}}}|tk(r ttdfSt||\}}t||||zd\}} } |rd| z } ||| fS)Nrtrj)rrr6r5) rwpsignmanexpbccr?rKrwp_s rDcos_sin_quadrantrksdD#sBEzUA~ q" DAqS#b&"-IAq# qD a7NrFc6 |\}}||cxk(r tk(rnnttfttffSt|vst|vrttfttffSdz}t ||\}}}t ||\}} } t ||g\}}t || g\}} || k(rnv| |z dk\rttfttffS|dz| dzk7rt}|dz dz| dz dzk7rt}|dz dz| dz dzk7rt} |dz dz| dz dzk7rt}tt|ztdzz|  tt|ztdzz |  fd} | |t}| |t}| |t}| | t} ||f|| ffS)Nrrr ct|d|tk(k(r}n}t|| |}|\}}}}||zdk\r|rtStS|S)Nrtr)boolrr(rr) rroundingprrrrlessmorer@s rDfinalizezmpi_cos_sin..finalizes] !:(k1 2AA Aq$ )c3 r6Q; KrF) rrrrrrrr-r.rr)rr@r`rarcarAnacbrBnbrrrs ` @@rD mpi_cos_sinrvs DAqAd|eU^++  uzt}udm++ B!!R(JBB!!R(JBB "b "FB "b "FB Rx bAt}udm++ q5BE>B qD19A !B qD19A !B qD19A !B ""5s ;D ""5s ;D  "k "B "m $B "k "B "m $B r7RG rFc t||dSrsrrr@s rDmpi_cosr q$  ""rFc t||dSNrrrs rDmpi_sinrrrFc@t||dz\}}t|||Srrrrr@cossins rDmpi_tanr%1d2g&HC 3T ""rFc@t||dz\}}t|||Srrrs rDmpi_cotrrrFc||dz}t||t}t||t}t||t}t|tsJ|rIt t t|t|||t}t|td|t}t|||t}t|||t}||fS)Nrd) r"rrrrr(rr#r*rr'r&) rrpercentr@rxaxbr`ras rDmpi_from_str_a_brs B !R %B !R 'BB &A !U   C WR[11b- H Ax}b- 8At[)AAt]+A a4KrFctd|z}|jdd}|dz}d|vr"|jd\}}t||d|Sd|vrf|ddk(sd |vr||jd d}d}d |vr|d d k7r|d }|jd d}|jd\}}t||||Sd |vrd|vsd|vr||ddk(r^|jdd}|jdd}|jd \}}t ||t }t ||t }||fS|jd\}}|jd \}} d|vr| jd\} }n| jdd}} t ||z|z|t }t || z|z|t }||fSt ||t }t ||t }||fS)a Parse an interval number given as a string. Allowed forms are "-1.23e-27" Any single decimal floating-point literal. "a +- b" or "a (b)" a is the midpoint of the interval and b is the half-width "a +- b%" or "a (b%)" a is the midpoint of the interval and the half-width is b percent of a (`a imes b / 100`). "[a, b]" The interval indicated directly. "x[y,z]e" x are shared digits, y and z are unequal digits, e is the exponent. z&Improperly formed interval number '%s' r+-F(rt)%rjT,r=r>e) ValueErrorreplacesplitrr"rrrstrip) r?r@rrrrrr`razs rD mpi_from_strrs& ;a?@A #rA B qywwt}11eT22  Q43;#Q,G IIc2  !8u|G #r"Awws|11gt44  qLclG Q43; #r"A #r"A773>> from mpmath import mpi, mp >>> mp.dps = 30 >>> x = mpi(1, 2)._mpi_ >>> mpi_to_str(x, 2, mode='plusminus') '1.5 +- 0.5' >>> mpi_to_str(x, 2, mode='percent') '1.5 (33.33%)' >>> mpi_to_str(x, 2, mode='brackets') '[1.0, 2.0]' >>> mpi_to_str(x, 2, mode='brackets' , brackets=('<', '>')) '<1.0, 2.0>' >>> x = mpi('5.2582327113062393041', '5.2582327113062749951')._mpi_ >>> mpi_to_str(x, 15, mode='diff') '5.2582327113062[4, 7]' >>> mpi_to_str(mpi(0)._mpi_, 2, mode='percent') '0.0 (0.0%)' rrr plusminusrjrrrrrz%)bracketsrdiffrrrrtNz%'%s' is unknown mode for printing mpi)r rkrhr!r+rr(rr*rlenappendrminjoinr)rrC use_spacesrmode error_dpskwargsr@rr`ramiddeltaa_strb_strmid_strspbr1br2 delta_strr?ris rD mpi_to_strrs+P s D B DAq !T C a E 1c $V $E 1c $V $ES#((G B HC {9U2.>v> bL4 " $y 0H HG   %<Ax}-A73 4b9A bL3 9!5 5 <8 H7   %K#  "U *S 04 H3  E>1c!e.v.E1c!e.v.E KK  q6Q; HHRL KK  q6Q; HHRL Q41Q4<tqt|AaD A .AtAw!A$q')qT"1X^ad12h.4r9AaDHDsJ3s1Q4y!,,-/0t4 H aD3J$s3s1Q4y!+<'<9Qq> ))rFc|dz}t||}tt||}t|||}t |||}t |d}t |d}||fS)Nrrj)rrmpi_onerbrer)rr@re1e2rr?s rD mpi_cosh_sinhr sa bB BB "b !BBABA!RA!RA a4KrFc|\}}|dz}t||\}}t||\}}t|||} t|||} | t| fSNr)rr rzrq rr@r`rarrr?chshr rs rDmpci_cosr&s^ DAq bB q" DAq 1b !FB B B B B wr{?rFc|\}}|dz}t||\}}t||\}}t|||} t|||} | | fSr")rr rzr#s rDmpci_sinr(sY DAq bB q" DAq 1b !FB B B B B r6MrFc|\}}|tk(r t|S|tk(r t|St|}t|}t|||dz}t ||Sr)mpi_zerorxrrbr)rr@r`rarKs rDmpci_absr+s^ DAqH}qzH}qz1 A1 A1d2gA At rFc4|\}}|\}}||cxk(r tk(r$nn!t|trtSt|St|trqt|trt |||t }nt |||t }t|trt |||t }||fSt |||t }||fSt|trNt |||t }t|trt |||t }||fSt |||t }||fSt|trNt |||t }t|trt |||t }||fSt |||t }||fSt|t }t|}||fSrH) rrr*rr3rrrr4r$) rrr@yaybrrr`ras rD mpi_atan2r/s FB FB R5 "e Od| b% "e "b$ 4A"b$ 4A "e "b$ 6A* a4K'"b$ 6A& a4K# E  b"dM 2 "e "b$ 4A a4K"b$ 4A a4K E  b"dK 0 "e "b$ 6A a4K "b$ 6A a4K 4 ' AJ a4KrFc&|\}}t|||SrH)r/)rr@rrs rDmpci_argr1s DAq Q4  rFc^|\}}tt||dz|}t||}||fSr)rr+r1)rr@rrr rs rDmpci_logr3s7 DAq !T"W%t ,B !T B r6MrFc |\}}|tk(rM|\}}||k(rC|\}}} } |r$| dk\rt|d|zt|| zz|S|tk(r t|d|S|dz} t t |t || | |S)Nrtrjr)r* mpci_pow_intintrrrr3) rrr@yreyimr-r.rrrrrs rDmpci_powr9sHC hB 8!# D#sBsax#ATzCSM'A4HHU{#Aq$// bB HQB4d ;;rFc|\}}tt|t||}t|||}t|d}||fSr)rerrzr)rr@r`rar rs rD mpci_squarer;sD DAq A 1 t 4B At B 2q B r6MrFc R|dkr&tttft|| |dz|S|dk(r ttfS|dk(r t ||S|dk(r t ||S|dz}ttf}|r+|dzrt |||}|dz}t ||}|dz}|r+t ||Sr)rrr*r5r r;r)rrr@rresults rDr5r5 s1u*LQBR,H$OOAv  Av4  Av1d## Bx F q5fa,F FA 2  a FD !!rFg#+Vcb?gVcb?gg?cL|\}}|\}}t||ryt||ryy)NFT)rr)rrr`rarrs rD mpi_overlapr?&s- DAq DAq a|E a|E rFc|\}}|dz}|dk(rtt|t||dSt|tr|dk(r&t ||t }t ||t}||fS|dk(r&t||t }t||t}||fS|dk(r"t||t }t||t}fSt|trt|tr|dk(r&t ||t }t ||t}||fS|dk(r&t||t }t||t}||fS|dk(r"t||t }t||t}fSt|t|}|dk(rtt||dzd||S|dk(rtt||dzd||S|dk(r(tt||dzdt!||dz|SfS)Nrrrtrr) mpi_gammarbrr gamma_min_br7rrr8r9rr gamma_min_arrzrer) rr@typer`rarrrznews rDrArA2s DAq bB qyGR0$::a 19!T;/A!T=1A0 a4K/QY1dK0A1dM2A* a4K)QYQk2AQm4A$ a4K! 5 fQ 4 19!T;/A!T=1A a4KQY1dK0A1dM2A a4KQYQk2AQm4A a4K q'2& 19WYtT!VQ%?DII 19WYtT!VQ%?DII 19WYtT!VQ%?DQRFASUYZZ a4KrFcL|\\}}\}}||cxk(r tk(r+nn(|dk7st|trt|||tfS|dz}|dk7r|d|dz}|d|dz} |tk7r t || } n| } t t |} t t |} t | | } t d| | z}|t|z }|dk(r t||ft|\}}||f||ff}d}t|trt||fttfrt||ft|||ff}|dk(rtt!||dzd||S|dk(rt#t!||dzd||S|dk(r(t%t!||dzdt'||dz|St)|trMt+||f|t,}t+||f|t.}t+||f|t,}t+||f|t.}nt1|trMt+||f|t,}t+||f|t.}t+||f|t,}t+||f|t.}nyt+|tf|t.}tt3||rt+||f|t.}nt+||f|t.}t+||f|t,}t+||f|t,}|d|df|d|dff}|dk(rt5|d|t5|d|fS|dk(r t7|}t9||S)Nrrrrtr)rrrAr*maxabsr r rbrrrBr?gamma_mono_imag_agamma_mono_imag_br mpci_gammarrr3rr:rrrr$rnrr)rr@rDa1a2b1b2ramagbmagmaganbnabsn gamma_sizerEminremaxreminimmaximws rDrKrKWs6GRWb R5dai6"U+;D$'11 bB qy!uRU{!uRU{ ;dD/CC _ _2r{48_  hz"" qy2b'7B/BbWr"g5Eb+ 2w!24E F GBr7GR02b'9Dqy*T461*Eq$!OOqy*T461*Eq$!OOqy*T461*ExPQRVWXRXGY[_!`` b%bWb+6bWb-8bWb+6bWb-8 E bWb+6bWb-8bWb+6bWb-8bZ]; '"+r " "R"m>rFct||dSNrr^r_r`s rD mpi_rgammargs !T ::rFct||dSrfrcr`s rD mpci_rgammarisAt!!<rus              IH; 5> ,&%+?  .$$BH 9v  #J   2h#### @DZ x4 4 ..  *  $L! <"&' ' + & t$sO#JGR=>:<=?rF