K i9dZddlmZddlmZddlmZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy)zC The module contains implemented functions for interval arithmetic.reduce)interval) import_modulec t|ttfrtt |St|tr|j dkrW|j dkDrHtdtt |j t |j |jStt |j t |j St)Nris_valid) isinstanceintfloatrabsstartendmaxr NotImplementedErrorxs n/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/plotting/intervalmath/lib_interval.pyAbsrs!c5\"A Ax 77Q;15519As3qww<QUUzimin..G3z#UH56G%'rc38K|]}|jduywFNrr@as rrBzimin..511::&5FrN) rallrr r r r lenrrrrr.argsrrHnew_args start_array end_arrays riminrRs) w B G$G G""##!z!c5\'Bzz## x=A 555%@@$?? (*'q3,7qQWWD* *'(%Qe 5Q155@( (K(#i.99#*(+D;?+E0+Ectd}td|DstS|Dcgc]&}t|tt fs |j r|(}}t|dk(rXtd|Dr#t|j |jdSt|j |jdS|Dcgc]&}t|tt fr|n |j(}}|Dcgc]&}t|tt fr|n |j(}}tt|t|Scc}wcc}wcc}w)z,Evaluates the maximum of a list of intervalsrc3RK|]}t|tttf!ywr=r>r?s rrBzimax..rCrDrc38K|]}|jduywrFrrGs rrBzimax..rIrJFrN) rrKrr r r r rLrrrrrrMs rimaxrWs+ w B G$G G""##!z!c5\'Bzz## x=A 555%@@$?? (*'q3,7qQWWD* *'(%Qe 5Q155@( (K(#i.99#*(rScXtd}t|ttfr*t |j ||j |St|trJt |j |j |j |j|jSt)z,Evaluates the hyperbolic sine of an intervalrr) rr r r rsinhrrr rrs rrYrYs w B!c5\" BGGAJ// Ax ("''!%%.1::NN!!rcHtd}t|ttfr*t |j ||j |St|tr|j dkre|jdkDrVt|j |j |j |j}t d||jS|j |j }|j |j}t |||jSt)z+Evaluates the hyperbolic cos of an intervalrrr'r) rr r r rcoshrrrr r)rrrrs rr\r\s w B!c5\" BGGAJ// Ax 77Q;15519bggagg&7CAsQZZ8 8GGAGG$E''!%%.CE3< <!!rcXtd}t|ttfr*t |j ||j |St|trJt |j |j |j |j|jSt)z+Evaluates the hyperbolic tan of an intervalrr) rr r r rtanhrrr rrs rr^r^rZrctd}t|ttfr[t |dkDr#t |j |j dSt |j||j|St|t r|jdus|jdkDs|jdkr#t |j |j dS|jdks|jdkDr#t |j |j dS|j|j}|j|j}t |||jSy)z)Evaluates the inverse sine of an intervalrr'Frr&N) rr r r r rrarcsinr rrr#s rasinras w B!c5\" q6A:RVVGRVVe< <BIIaL"))A,7 7 Ax :: !''A+RVVGRVVe< < WWr\QUUQYRVVGRVVd; ;IIagg&E))AEE"CE3< < !rctd}t|ttfr[t |dkDr#t |j |j dSt |j||j|St|t r|jdus|jdkDs|jdkr#t |j |j dS|jdks|jdkDr#t |j |j dS|j|j}|j|j}t |||jSy)z(Evaluates the inverse cos of an intervalrr'Frr&N) rr r r r rrarccosr rrr#s racosrds w B!c5\" q6A:RVVGRVVe< <BIIaL"))A,7 7 Ax :: !''A+RVVGRVVe< < WWr\QUUQYRVVGRVVd; ;IIagg&E))AEE"CE3< < !rctd}t|ttfrt |j |St|tr|j dur#t |j |jdS|j |j}|j |j}||k(rt |||j St ||dStS)z$Evaluates the ceiling of an intervalrFrN) rr r r rceilr rrrrr#s rrfrf4s w B!c5\" ## Ax :: RVVGRVVe< <GGAGG$E''!%%.C|sQZZ@@ sT::""rctd}t|ttfrt |j |St|tr|j dur#t |j |jdS|j |j}|j |j}||k(rt |||j St ||dStS)z"Evaluates the floor of an intervalrFrN) rr r r rfloorr rrrrr#s rrhrhIs w B!c5\" $$ Ax :: RVVGRVVe< <HHQWW%E((155/C|sQZZ@@ sT::""rcXtd}t|ttfrB|dkr#t |j |j dSt |j |St|tr|jdkr#t |j |j dS|jdkr#t |j |j dS|j |j}|j |j}t |||jStS)z6Evaluates the inverse hyperbolic cosine of an intervalrr'FrN) rr r r rrarccoshrrr rr#s racoshrk^s w B!c5\" q5RVVGRVVe< <BJJqM* * Ax 5519RVVGRVVe< < WWq[RVVGRVVd; ;JJqww'E**QUU#CE3< <""rc@td}t|ttfrt |j |St|trN|j |j }|j |j}t |||jStS)z4Evaluates the inverse hyperbolic sine of an intervalrr) rr r r rarcsinhrrr rr#s rasinhrnwst w B!c5\" 1 && Ax  177#jjsQZZ88""rctd}t|ttfrKt |dk\r#t |j |j dSt |j|St|t r|jdus|jdk\s|jdkr#t |j |j dS|jdks|jdk\r#t |j |j dS|j|j}|j|j}t |||jStS)z7Evaluates the inverse hyperbolic tangent of an intervalrr'Frr&N) rr r r r rrarctanhr rrrr#s ratanhrqs w B!c5\" q6Q;RVVGRVVe< <BJJqM* * Ax :: !''Q,!%%2+RVVGRVVe< < WW]aeeqjRVVGRVVd; ;JJqww'E**QUU#CE3< <""rc d}t||S)zZDefines the three valued ``And`` behaviour for a 2-tuple of three valued logic valuesc|ddus|ddurd}n|d|dd}nd}|ddus|ddurd}||fS|d|dd}||fSd}||fS)NrFTr' cmp_intervala cmp_intervalbfirstseconds r reduce_andzAnd..reduce_ands  u $ a(8E(AE 1  %q)9)AEE  u $ a(8E(AF v 1  %q)9)AFvFvrr)rNrzs rAndr{s  *d ##rc d}t||S)zYDefines the three valued ``Or`` behaviour for a 2-tuple of three valued logic valuesc|ddus|ddurd}n|d|dd}nd}|ddus|ddurd}||fS|d|dd}||fSd}||fS)NrTFr'rtrus r reduce_orzOr..reduce_ors  t #}Q'74'?E 1  %q)9)AEE  t #}Q'74'?F v 1  %q)9)AFvFvrr)rNr~s rOrrs )T ""rN)__doc__ functoolsrsympy.plotting.intervalmathrsympy.externalrrrrr r$r+r6r8r:rRrWrYr\r^rardrfrhrkrnrqr{rrtrrrsI0( ""","* "":"< ",:*:.""("=,=,#*#*#2 ##4$(#r