K i/: dZddlmZmZddlmZmZmZmZm Z m Z ddl m Z m Z mZddlmZmZmZmZmZddlmZmZmZmZmZmZmZmZddlmZm Z ddl!m"Z"dd l#m$Z$d d l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0d Z1e&jded Z3e&jdedZ3e&jdedZ3e&jdedZ3e&jde dZ3e&jheedZ3e&jdedZ3e'jdedZ3e'jdedZ3e(jdedZ3e(jdedZ3e(jdedZ3e(jdedZ3e(jde dZ3e(jdedZ3e(jdedZ3e)jdedZ3e)jdedZ3e)jdedZ3e*jded Z3e*jded!Z3d"Z5e+jded#Z3e+jded$Z3e+jded%Z3e+jded&Z3e+jde d'Z3e+jded(Z3e+jded)Z3e+jded*Z3e+jded+Z3e+jded,Z3e+jde d-Z3e+jded.Z3e+jde"d/Z3e+jded0Z3e+jded1Z3e+jded2Z3e+jded3Z3e+jded4Z3e,jde6d5Z3e0jde6d6Z3e/jde6d7Z3e.jde6d8Z3e-jde6d9Z3y:);z? Handlers related to order relations: positive, negative, etc. )Qask)AddBasicExprMulPowS) fuzzy_not fuzzy_andfuzzy_or)E ImaginaryUnitNaNIpi)Absacosacotasinatanexp factoriallog) DeterminantTrace) MatrixElement)MDNotImplementedError) NegativePredicateNonNegativePredicateNonZeroPredicate ZeroPredicateNonPositivePredicatePositivePredicateExtendedNegativePredicateExtendedNonNegativePredicateExtendedNonPositivePredicateExtendedNonZeroPredicateExtendedPositivePredicatec`|j\}}|tjk(s|tjk(ry|s&|jd}|jdk7r|dkSy|jd}|jdk7r,|dk7ry|jd}|jdk7r|dkSyyNrrF) as_real_imagr revalf_precexpr assumptionsris f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/assumptions/handlers/order.py_NegativePredicate_numberr7s    DAqAEEzQ!%%Z GGAJ 77a<q5L  GGAJ 77a<Av Aww!|1u  c4|jr t||SyN) is_numberr7r2r3s r6_r=/ ~~({;;r8c.|j}|t|Sr:) is_negativerr2r3rets r6r=r=4   C {## Jr8cj|jr t||Sttj||}|dur|Sd}|j D]L}ttj ||dus%ttj||dur|dz }Ly|t|j kryy)zN Positive + Positive -> Positive, Negative + Negative -> Negative TrFr-N) r;r7rrrealargsnegativepositivelen)r2r3r4nonposargs r6r=r=;s  ~~({;; AFF4L+&A} Fyy qzz# ,D 81::c?K0E9!   C N " #r8c|jr t||Sd}|jD]J}|d}tt j ||r| }*tt j ||rJy|SNF)r;r7rFrrrGrHr2r3resultrKs r6r=r=Ssp ~~({;; Fyy >F qzz# ,ZF C+ .   Mr8c|jtk(r+ttj|j |ryy|j r t||Sttj|j|rttj|j|r*ttj|j |ryttj|j |ryttj|j |r)ttj|j|Syy)zq Real ** Even -> NonNegative Real ** Odd -> same_as_base NonNegative ** Positive -> NonNegative FN) baserrrrErr;r7rHevenoddrGr<s r6r=r=cs yyA~ qvvdhh - ~~({;; 166$)) k* qzz$))$k 2166$((#[1 qvvdhh - quuTXX ,qzz$)),k: : - +r8cyrMr<s r6r=r={ r8cbttj|j|rytrM)rrrErrr<s r6r=r=s" 166$(( [) r8c|jr8tt||}|rtt j ||S|Syr:)r;r r7rrrE)r2r3 notnegatives r6r=r=> ~~ 9$ LM qvvd|[1 1  r8c.|j}|t|Sr:)is_nonnegativerrAs r6r=r=   C {## Jr8c.|j}|t|Sr:) is_nonzerorrAs r6r=r=s //C {## Jr8cttj|dury|jr6|j d}dt fd|j DSy)NFrc,|jdk7r|dk7Sy)Nr-r)r0)r5s r6nonzz_..nonzsww!|Av r8c3.K|] }|ywr:rU).0r5rbs r6 z_..s:AQ:s)rrrEr;r/r r.)r2r3r5rbs @r6r=r=sS 166$<E! ~~ JJqM :)9::: r8ctfd|jDstfd|jDryy)Nc3\K|]#}ttj|%ywr:)rrrHrdxr3s r6rez_..s >q3qzz!}k * >),c3\K|]#}ttj|%ywr:)rrrGrhs r6rez_..s Fq3qzz!}k2FrjT)allrFr<s `r6r=r=s0 >DII >>FDIIFFGr8cp|jD]'}ttj||}|r%|cSyNT)rFrrnonzero)r2r3rKrOs r6r=r=s9yyQYYs^[1    r8cTttj|j|Sr:)rrrorQr<s r6r=r=s qyy#[ 11r8cZttj|jd|SNr)rrrorFr<s r6r=r=s qyy1& 44r8cyr:rUr<s r6r=r= r8c.|j}|t|Sr:)is_zerorrAs r6r=r=s ,,C {## Jr8c ttttj||ttj ||gSr:)r r rrrorEr<s r6r=r=s< iAIIdO[ AB AFF4L+&( ))r8c@tfd|jDS)Nc3\K|]#}ttj|%ywr:)rrzero)rdrKr3s r6rez_..s GcCs [1Grj)r rFr<s `r6r=r=s GTYYG GGr8c.|j}|t|Sr:)is_nonpositiverrAs r6r=r=r]r8c|jr8tt||}|rtt j ||S|Syr:)r;r _PositivePredicate_numberrrrE)r2r3 notpositives r6r=r=rZr8c|j\}}|s&|jd}|jdk7r|dkDSy|jd}|jdk7r,|dk7ry|jd}|jdk7r|dkDSyyr,)r.r/r0r1s r6r~r~s    DAq GGAJ 77a<q5L  GGAJ 77a<Av Aww!|1u  r8c.|j}|t|Sr:) is_positiverrAs r6r=r=rCr8c4|jr t||Syr:)r;r~r<s r6r=r= r>r8c|jr t||Sd}|jD]H}tt j ||r#tt j ||r|dz }Hy|Srn)r;r~rFrrrHrGrNs r6r=r=sh ~~({;; Fyy qzz# ,  C+ .d]F   Mr8cj|jr t||Sttj||}|dur|Sd}|j D]L}ttj ||dus%ttj||dur|dz }Ly|t|j kryy)NTrFr-) r;r~rrrErFrHrGrI)r2r3r4nonnegrKs r6r=r= s ~~({;; AFF4L+&A} Fyy qzz# ,D 81::c?K0E9!   C N " #r8c|jtk(rttj|j |ryttj |j |r7ttj|j ttzz |Sy|jr t||Sttj|j|r*ttj|j |ryttj|j|rUttj|j |ryttj|j |ryyy)NTF)rQrrrrEr imaginaryrRrrr;r~rHrGrSr<s r6r=r=4s yyA~ qvvdhh - q{{488$k 2qvvdhh"o. < < ~~({;; 1::dii +. qvvdhh - 1::dii +. qvvdhh - quuTXX , -/r8cttj|j|ryttj|j|r7ttj |jt tzz |Syrn)rrrErrrRrrr<s r6r=r=HsZ 166$(( [) 1;;txx +.166$((AbD/*K88/r8c(ttj|jd|}|dur|Sttj|jddz |ryttj |jddz |ryy)NrTr-F)rrrErFrHrG)r2r3r4s r6r=r=Osv AFF499Q< +.A} 1::diilQ& '5 1::diilQ& '56r8c|jd}ttj|tj|z|ryy)NrT)rFrrintegerrHr2r3ris r6r=r=Ys6 ! A 199Qr8c|jd}ttj|dz tj|dzz|ryy)Nrr-T)rFrrrrrs r6r=r=sA ! A 1==Q !--A"6 6 DEr8cZttj|jd|Srr)rrrErFr<s r6r=r=s qvvdiil#[ 11r8cyr:rUr<s r6r=r=rtr8clttj|tj|z|Sr:)rrrGnegative_infiniter<s r6r=r=( qzz$!"5"5d";;[ IIr8clttj|tj|z|Sr:)rrrHpositive_infiniter<s r6r=r=rr8cttj|tj|ztj|ztj |z|Sr:)rrrrGrHrr<s r6r=r=sM  D!AJJt$44qzz$7GG!J]J]^bJcc r8cttj|tj|ztj|z|Sr:)rrrrGrzr<s r6r=r=s;  D!AJJt$44qvvd|C r8cttj|tj|ztj|z|Sr:)rrrzrHrr<s r6r=r=s;  t qzz$''!*=*=d*CC r8N)7__doc__sympy.assumptionsrr sympy.corerrrrr r sympy.core.logicr r r sympy.core.numbersrrrrrsympy.functionsrrrrrrrrsympy.matricesrr"sympy.matrices.expressions.matexprrsympy.multipledispatchrpredicates.orderr r!r"r#r$r%r&r'r(r)r*r7registerr= register_manyr~objectrUr8r6rs.%44;;;;LLL-<8    .E"<#<D!" C !.C  ! C ;!;.!  m45C  ! u%&t$%4 ! 5! ;" ;3  3 32 235 53   ))HHt$% u%&&D!" E"<#<C  ! C !&C !&C 9!9 C !I&' M*+C -!-E"#K()M*+ D!6"6D!"D!" D!2"2C ! $##F+J,J $##F+J,J #""6*+'&&v./'&&v./r8