K i<XdZddlmZddlmZddlmZddlmZGddZ d Z d Z y ) a Interval Arithmetic for plotting. This module does not implement interval arithmetic accurately and hence cannot be used for purposes other than plotting. If you want to use interval arithmetic, use mpmath's interval arithmetic. The module implements interval arithmetic using numpy and python floating points. The rounding up and down is not handled and hence this is not an accurate implementation of interval arithmetic. The module uses numpy for speed which cannot be achieved with mpmath. ) int_valued) fuzzy_and) nsimplify)intervalMembershipceZdZdZdddZedZedZdZdZ d Z d Z d Z d Z d ZdZdZeZdZdZdZdZeZdZdZdZdZdZdZy)intervala: Represents an interval containing floating points as start and end of the interval The is_valid variable tracks whether the interval obtained as the result of the function is in the domain and is continuous. - True: Represents the interval result of a function is continuous and in the domain of the function. - False: The interval argument of the function was not in the domain of the function, hence the is_valid of the result interval is False - None: The function was not continuous over the interval or the function's argument interval is partly in the domain of the function A comparison between an interval and a real number, or a comparison between two intervals may return ``intervalMembership`` of two 3-valued logic values. Tis_validc||_t|dk(rdt|dtr*|dj|dj c|_|_yt |d|_t |d|_yt|dk(rY|d|dkr't |d|_t |d|_yt |d|_t |d|_ytd)Nrrz9interval takes a maximum of two float values as arguments)r len isinstancer startendfloat ValueError)selfr argskwargss u/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/plotting/intervalmath/interval_arithmetic.py__init__zinterval.__init__<s  t9>$q'8,'+Aw}}d1gkk$ DH"47^  a> Y!^Awa "47^  a>"47^  a>+, ,c:|j|jzdz S)Ng@rrrs rmidz interval.midPs TXX%,,rc4|j|jz SN)rrrs rwidthzinterval.widthTsxx$**$$rc8d|j|jfzS)Nzinterval(%f, %f)rrs r__repr__zinterval.__repr__Xs!TZZ$:::rc8d|j|jfzS)Nz[%f, %f]rrs r__str__zinterval.__str__[sTZZ222rct|ttfr`|j|krt d|j S|j |kDrt d|j St d|j St|trwt|j |j g}|j|j kr t d|S|j |jkDr t d|St d|StSNTF rintrrrr rr rNotImplementedrothervalids r__lt__zinterval.__lt__^s ec5\ *xx%)$ >>e#)%??)$ >> x (t}}enn=>Exx%,,&)$66zzEII%)%77%dE2 2! !rc<t|ttfr`|j|kDrt d|j S|j |krt d|j St d|j St|tr|j|StSr&) rr(rrrr rr r-r)rr+s r__gt__zinterval.__gt__qsz ec5\ *zzE!)$ >>E!)%??)$ >> x (<<% %! !rc8t|ttfrd|j|k(r%|j|k(rt d|j S||vrt d|j St d|j St|trt|j |j g}|j|jk(r%|j|jk(r t d|S|j|d t d|St d|StS)NTFr rr(rrrrr r rr-r)r*s r__eq__zinterval.__eq__~s ec5\ *zzU"txx5'8)$ >>})$ >>)%?? eX &t}}enn=>EzzU[[(TXX-B)$66U#A&2)%77)$66! !rc8t|ttfrd|j|k(r%|j|k(rt d|j S||vrt d|j St d|j St|trt|j |j g}|j|jk(r%|j|jk(r t d|S|j|d t d|St d|StS)NFTrr2r*s r__ne__zinterval.__ne__s ec5\ *zzU"txx5'8)%??})$ >>)$ >> eX &t}}enn=>EzzU[[(TXX-B)%77;;u%a(0)$66%dE2 2! !rct|ttfr`|j|krt d|j S|j |kDrt d|j St d|j St|trwt|j |j g}|j|j kr t d|S|j |jkDr t d|St d|StSr&r'r*s r__le__zinterval.__le__s ec5\ *xx5 )$ >>zzE!)%??)$ >> eX &t}}enn=>Exx5;;&)$66zzEII%)%77%dE2 2! !rc2t|ttfr`|j|k\rt d|j S|j |krt d|j St d|j St|tr|j|Syr&) rr(rrrr rr r7r/s r__ge__zinterval.__ge__sy ec5\ *zzU")$ >>E!)%??)$ >> x (<<% %)rct|ttfrh|jr&t |j |z|j |zS|j |z}|j |z}t |||jSt|tra|j |j z}|j |j z}t|j|jg}t |||StSNr ) rr(rr r rrrr)rr+rrr,s r__add__zinterval.__add__s ec5\ *}} U 2DHHu4DEE U*hh&sT]]CC x (JJ,E((UYY&Ct}}enn=>EE37 7! !rct|ttfr6|j|z }|j|z }t |||j St|t ra|j|jz }|j|jz }t|j |j g}t |||StSr;) rr(rrrr r rr)r<s r__sub__zinterval.__sub__s ec5\ *JJ&E((U"CE3? ? x (JJ*E((U[[(Ct}}enn=>EE37 7! !rct|ttfr6||jz }||jz }t |||j St|t r|j|StSr;) rr(rrrr r r?r))rr+rrs r__rsub__zinterval.__rsub__s^ ec5\ *DHH$E$**$CE3? ? x (==& &! !rc|jr"t|j |j St|j |j |jSr;)r r rrrs r__neg__zinterval.__neg__sA ==TXXI {3 3TXXI {T]]K Krc4t|tr:|jdus|jdur!ttd tddS|j |j!ttd tddSg}|j |j |j z|j |j |j z|j |j |j z|j |j |j zt|}t|}t||St|ttfr2t|j |z|j |z|jStS)NFinfr ) rr r rappendrrminmaxr(r))rr+intersrrs r__mul__zinterval.__mul__s( eX &}}%5)@u uU|eLL&%..*@u uU|dKK djj5;;67 dhh45 djj59945 dhh23F &ks++ U| ,DJJu,dhhunt}}U U! !rct|ttfr |j|kxr|j|k\S|j|jkxr|j|jkSr)rr(rrrr/s r __contains__zinterval.__contains__ sR ec5\ *::&<488u+< <::,Fdhh1F Frct|ttfrt|}|j |St|tr|j |St Sr)rr(rr __truediv__r)r/s r __rtruediv__zinterval.__rtruediv__sK ec5\ *UOE$$T* * x ($$T* *! !rcN|js+ttd td|jSt|ttfrL|dk(r!ttd tddSt|j |z |j |z St|trv|jdus|jdur!ttd tddS|j |j!ttd tddSd|vr!ttd tddS|}|j dkr| }| }g}|j|j |j z |j|j |j z |j|j |j z |j|j |j z t|}t|}t||StS)NrEr rF) r r rrr(rrrFrHrGr))rr+thisrIrrs rrNzinterval.__truediv__s}}U5\M5<$--P P ec5\ *zu uU|eLL U 2DHHu4DEE x (~~&$--5*@u uU|eLL'4==+@u uU|dKK:#U5\M5<$OO99q= 5D"FE djj5;;67 dhh45 djj59945 dhh23F &ks++! !rc2ddlm}m}|js|St |t r||||zSt |t tfrE|dkrd|jt|z St|r t||St||StS)Nr)explogr) lib_intervalrSrTr rr rr(__pow__absr_pow_int _pow_floatr))rr+rSrTs rrVzinterval.__pow__Bs*}}K eX &us4y() ) s| ,qy4<<E 333e$#D%00%dE22! !rc>t|ttfr|js|S|dkr|jdkDr!t td tddSt |j}|j\}}|dzdk(r!t td tddSt||jz }|}t ||St ||jz||jzSt|t r|j|StS)NrrEFr r ) rrr(r r r rras_numer_denomrWrrVr))rr+power_rationalnumdenomrrs r__rpow__zinterval.__rpow__Ts eeS\ *== ::>#U5\M5<%PP%.tzz%:N!/!>!>!@JCqyA~'u uU|16 88"%UTZZ!7 7#'s33tzz 15$((?CC x (==& &! !rcZt|j|j|jfSr)hashr rrrs r__hash__zinterval.__hash__ms T]]DJJ9::rN)__name__ __module__ __qualname____doc__rpropertyrr r"r$r-r0r3r5r7r9r=__radd__r?rArCrJ__rmul__rLrOrNrVr_rbrrr r *s"(,,(--%%;3"& ""("&"& &""H ""L "(HG "'"R"$"2;rr c$t|}|j\}}|dzdk(r[t|j|z}t|j|z}|dkrt dt ||}|St ||}|S|dzdk(r|jdkr!t td tddS|jdkrt d|j|zdSt |j|z|j|zS|jdkrt|j|z }n|j|z}|jdkrt|j|z }n|j|z}t |||jS)z1Evaluates an interval raised to a floating point.r rrEFr N) rr[rWrrr rHrr )interpowerr\r]r^rrrets rrYrYqsbu%N..0JC Qw!|EKK %'%))ne# 191c%o.C 5#&C a 99q=U5\M5<%H H [[1_Auyy%/$? ?EKK. 50@A A ;;?%u,,EKK&E 99q=uyy>5((C))U"CsU^^<rts2 D*&-3D;D;N =B Br