K iEddlmZddlmZddlmZmZddlmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZddlmZddlmZddlmZmZddlmZmZmZdd l m!Z!d Z"d Z#e!d Z$d Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0y))Abs)sqrt)SRational) decompose best_origindistance_to_sidepolytope_integrate point_sorthyperplane_parametersmain_integrate3dmain_integratepolygon_integratelineseg_integrateintegration_reductionintegration_reduction_dynamic is_vertex) Segment2D)Polygon)PointPoint2D)xyz)slowcttdtik(sJttdzdtdzik(sJtttzdttzik(sJtttzdttzik(sJttdztzttdzdk(sJtdtdzzdtzzdzddtzdtdzzdk(sJttdzdtztzzdtdzdtztzzik(sJtd tdzztzdtzztdzztdztzzdzddtztzd tdzztdzttdzzzd k(sJttd thk(sJttdzd tdzhk(sJtttzd ttzhk(sJtttzd tthk(sJttdztzd ttdzhk(sJtdtdzzdtzzdzd ddtzdtdzzhk(sJttdzdtztzzd tdzdtztzhk(sJtd tdzztzdtzztdzztdztzzdzd dtdtzd tdzzttdzztdzhk(sJy) Nrrrrr )rrrr$T)rrrh/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/integrals/tests/test_intpoly.pytest_decomposer)s Qa1X %% % QU 1q5z )) ) QTAX aAqD/ 11 1 Qq!tVac\A% &aAaCAadF*C CC C QTAaCE\ "q!Q$1Q,&7 77 7 Qq!tVaZ!A#%1,q!tAv59 : !A#'a1fA!Q$7 88 8 Q ! $$ $ Q!VT "q!tf ,, , QUD !a!eW ,, , QUD !aV ++ + Q!VaZ &1a1f+ 55 5 QaZ!a%'!+T 2q!A#qAv6F FF F Q!Va!eai' .161q5192E EE E QaZ!^a!e+a1f4qAvzAAEt L q!A#qAvqAvq!t , -- -r'c *tdztdzztdztdzzzdtzztdzztdztzz}ttddtdd}ttt ddz dtt ddz d}ttdt ddz tdt ddz }ttddtdd}ttddtdd}ttddtdd}t dd||d k(sJt d d|tdzd k(sJt d d|tdzd k(sJt dd|tdztdzzd k(sJt dd|tdztdzzd k(sJt dd|tdztdzzd k(sJt dd|tdztdzzd k(sJy)Nrr" rr$r)rrrr$)rr)?r)rr)rr.rrr%)rrrrrr)expr1l1l2l3l4l5l6s r(test_best_originr7+s FQ!VOa1fqAvo -A 5R ?!q&1* LE 5A;a ,B 511%uQqTAXq'9 :B 5AaD1H%uQ!q'9 :B 5A;a ,B 5A;a ,B 5A;a ,B vq"e , 66 6 vq"a1f - 99 9 vq"a1f - 99 9 vq"a1fqAvo 6& @@ @ vq"a1fqAvo 6& @@ @ vq"a1fqAvo 6& @@ @ vq"a1fqAvo 6& @@ @r'cx'tttddtddtddddk(sJtttddtddtddtddttzt ddk(sJtttddtddtdddtdzzdtzz t d dk(sJtttddtdt dtt dt dtt ddddk(sJttddtt d dz tjtt d dz tddz tddtt ddz tddz tt ddz tj}t|dtdt dzdz k(sJtgd ddk(sJtgd ttzt ddk(sJtgd dtdzzdtzz t d dk(sJtd dt dfdft ddfdfdgddk(sJt ddt d dz fdfdt ddz ft ddt ddz ft dftjt ddz ft dfdt ddz ftjt d dz fdfg}t|dtdt dzdz k(sJtttddtddtddtddtddddk(sJtttddtddtddtddtddtddddk(sJtgdddk(sJtgdddk(sJttddtddtddtddtddtddtdd }t|tdzttzztdzztd!d"z k(sJttd#d$td%d&td'd(td)d*td+d,}t|tdzttzztdzztd-d.z k(sJttd/d0td1d2td3d4td5d6}t|tdzttzztdzztd7d"z k(sJttd8d9td:d;tdd?td@dA}t|tdzttzztdzztdBdCz k(sJttddtddtdd}g}tdDztztdEztdzzzdtdzztdFzzz}tdztdzztdztdzzzdtdGzzz}tdGztdDztzztdFztdzzztdztdzzz} |j||| ft||dGH} | |t dIdJk(sJ| |t dKdLk(sJ| | t dMdNk(sJttddtddtdd}tdEztdzzdtdzztdzzz}tdztdzztdztdzzzdtdGzzz}tdGztdDztzztdFztdzzztdztdzzz} |j||| ft||dDHtdEztzdtdzztdzzzt dOdDik(sJtttddtddtddtdddHiddddttjtdztdzztjdDz tdztjdz tdztjdz ttjttdzztjdz tdztjdz tdztjdz tdztztjdz tdztztjdFz ttztjdz tdztjdz tdztjdz ttdzztjdFz k(sJgdPgdQgdRgdSgdTgdUgdVg} t| dtdWk(sJgdXgdYgdZgd[gd\gd]gd^g} gd_gd`gdagdbgdcgddgdegdfgdgg } dhdidjdktjdz tjdz tjdz fggdlgdmgdngdogdpgdqgdrg}t| tdztdzzttzztdzzt dsdk(sJt| tdztdzzttzztdzztdtduz k(sJt|tdztdzzttzztdzztdvdwz k(sJtjt dz ddfdtjt dz dfddtjt dz fddtjt dz fdtjt dz dftjt dz ddfggdxgdygdzgd{gd|gd}gd~gdg }t|dt ddz k(sJgdgdgdgdgdgdgdgdgdgdgdgdgdg }tt|ddz dksJtdztdzztdzz}ggdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgd}tt||dz dksJggdgdgdgdgdgdgdgdgd¢gdâgdĢgdŢgdƢgdǢgdȢgdɢgdʢgdˢgd̢gd͢gd΢gdϢgdТgdѢgdҢgdӢgdԢgdբgd֢gdעgdآ}tt||dz dksJggdڢgdۢgdܢgdݢgdޢgdߢgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgd gd gd gd gd gdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgd gd!gd"gd#gd$gd%gd&gd'gd(gd)gd*gd+gd,gd-gd.gd/gd0gd1gd2gd3gd4gd5gd6gd7gd8gd9gd:gd;gd<gd=gd>gd?gd@gdAgdBgdCgdDgdEgdFgdGgdHgdIgdJgdKgdLgdMgdNgdOgdPgdQgdRgdSgdTgdUgdVgdWgdXgdYgdZgd[gd\gd]gd^gd_gd`gdagdbgdcgddgdegdfgdggdhgdigdjgdkgdlgdmgdngdogdpgdqgdrgdsgdtgdugdvgdwgdxgdygdzgd{gd|gd}gd~gdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgd}tt|ddz dksJtt||dz dksJt| tdzttzgdHttzdtdz tdzdtdz ik(sJt| dHddtdtdz ttzdtdz tdtdz ttzdtdz tdzdtdz tdzdtdz tdtdz ttzdtdz tdzdtdz i k(sJy(Nrrr!rr$r+(iY)rr)rr!rr=r)r;rrrrrrr>))rAr$))rr=))rDr=r;r>r=r<rC)r<rr@)rr=rr/r)r?r)rFrH))r=rrrB))r=r=rrGgQ?gX9vgףp= gPngT㥛 gʡEg(\gKgHzG g1Zdg}?5^@gL7A`?gS@lle4_9lQJgX9v>@gK7@gB`"?g ףp= g{Gz gZd;O zGagzGg-FgZd;?l;U(h*YlgQgh|?5gtV g;O@gbX9gMg~jtgh|?5 lEujg5^I ?grh|gFxg+@gʡE?gjt@gQ@g333333gMڿgNbX9lK[+rlJ)r%r"r  max_degreei $iRiPitii.w)rrr)rr9r9)r9r9r9)r$r9r)rr9r)r9rr9)r$rr)rrr9)rrr$r!)r$rr+r9)rr"r+r)rr9r+r")rr!rr")rr!r$r9rNrrr+rr+rrr+r+r+rrr+rr+r+r+rr+r+r+)r$r"r9r)rr+r"r$)r+r!r9r")rr!r+r)rrrr$)rr9r!r) rNrT)r+r!r)r$rr)r$r+rrRrQrU)r+r!r+)r$rr+)r$r+r+rS)r9 r+r)rr"r9r)r+r!r$rrr)rXrJr!r+)rJr%r$r!)r%r rr$)r r"rr)r"r r%rJrXr9rNrrrrrrrrr)rrr)rr$r)r!rr$)r!r$rr#)rr!r)rr$ri =i+r,%i)r$r!r+)r$r+r)r$rr)r$rr!)r!rr)r!rr+)rrr)r+rr))gaI{ԿrF 8?)gaI{?rF 8ۿ) S r׈?0?) S ?r׈?0)rbP/7ӿr])rbP/7?r])r`rcr^)r`rdr^)aI{Ŀr`)re?r`)aI{?rfrb)rhrgrb)r^rcrb)r^rdrb) S пa-!r?r^)ria-!rȿr^) S ?rjr])rlrkr])r]rcr`)r]rdr`)r,r$rr9)r"rr$ )r%r9rr"r )rrr!)r+rr)rXr!rr+rJ)r rsrrpr%)rJror$r,rX)rmrqr!rXr,)rorJr+rrrn)rqrmr9r%rp)rsr r"rnrrgZž?g-q=))rg;fr)rg;f?r)ب/h?;fֿHH~?)rt;f?rv)%D? SN%D?)rx SN?rz)HH~??z5˿HH~??)r|z5?r~)[ $?ru%D׿)rrwr)rvrr)HH~?ӿr}rv)rrrv)r~rrz)~E?ryr)rr{r)rzrrv)~Eڿryr)rr{r)or}r)rrr)o?r}r)rrr)rrr~)[ $߿rurz)rrwrz)%Dǿryr)rr{r)ب/hrur~)rrwr~)rrJrm)rJr)rmror)rror)rmrJr)rrJr)rrorm)rror)rr!rs)r!r)rrsrM)rMrr)r+r$)r$r+)rr$)r$rr)rsr!)r!rr)r+r)rrr+)r9r rr)rnr r9)r9rr)rrnr9)rqr%r")r"r%rp)rqr")r"rpr)r r,rr)rnr,r )rqrXr%)r%rXrp)rXrqr)rrprX)rrrr,)r,rnr)rrMrs)rrr)rrr)rrMrgÜ?gư>))rerfys )rergr)rhrfys ?)rhrgr)r_rr)rarr)riwre)riw?re)rlrrh)rlrrh)r^rcr)r^rdr)r]rcr)r]rdr)rrfrh)rrgrh)rrfre)rrgre)F 8rre)F 8?rrh)rprJr$r")rorsr r)rprr rJ)r$rsror")rpr"ror)r rsr$rJ)r9rrXrp)rr%rsr,)rXr%rrp)r9r,rsr)rr,r9rp)rXrrsr%)r!rqrXr")rnr+r r,)r!r,r rq)rXr+rnr")r!r"rnr,)r r+rXrq)r9rJrrr!)ror%r+rm)rrr%ror!)r9rmr+rJ)rormr9r!)rrrJr+r%)rqrrrr)rmrnr$r)rqrr$rr)rrnrmr)rqrrmr)r$rnrrrg?)\)rrO)rrO@)rTͻr)rrr)rTͻ@r)rrr)wVnTͻr)rrr)rTͻ?r)rrr)wVn@rr)rrr)rrr)rrr)r~j r)rrr)r~j @r)rrr)rrr)rrr)rrr)rrr)k)#rV )rrr)k)#@rV ?)rrr) 1*Tͻr)rTͻ@r) 1*@rr)rrr)gr,E rq )gr,E @rq @)rrr)rrr)rrr)rrr)A(`Rrr)rrr)A(`R@rr)rrr)V rr)rrr)rrr)V @rr)rrr)rrr)r,Err)rrr)r,E?rr)rrr)ys rr)rrrl)ys ?rr)rrri)rrr)rrr)rrri)rrr)rrri)rrr)rrr)rrr)rrrl)rrr)rrrl)rrr)rrr)rrr)rrfr)rrgr)rTͻr)rrr)rrr)rTͻ@r)rrfr)rrgr)rrr)rrr)rrr)rrr)r^rr)r^rrl)r^rr)r^rrl)rirr)rirr)rlrr)rlrr)r]rr)r]rri)r]rr)r]rri)r%B/),>M)r[1)!rS)r$rT)r,r5)$rr)rrr)Irr)rrr.)r@+)rm:H)rr3)rXrJ)r!rr)<rr)#rr)rrr)rsrr)OrN)r98r:)LrQ)rrK)r r:r)rr)*rr))rr)rorr)rMrr)rYG)rrr)rnrU)rqrr)Arr)rrr)"rr)r+rr) rr)rJr0)-rr)r"rr)rprr)r\rr)Frr)rrr)Xrr)&Cr)rrr)9rr)rrr);rW)rsrr)?rr)rnrr)4rr)'rr)rrr:)7rr)rrr)r:E)rorr)Rrr)r"rr)Zrr)rrr)rrr)rrr)rrr)6rD)r+rr)2rr)r$rr)rrr)rrr:)rrr)rrr)rr:r)rrV)r%rr)Prr)rXrr)rrr)rrr)rrr)rrr)rrr)rrr)rrrr)=rr)rrr)rrr)rrr)r\rr)rrr)rrr)rMrr)rJrr)r rr)rrr)rrr)rrr)rrr)rrr)rrr)rrr)rrr)rqrr)rrr)rrr)rrr)rrr)r\rr)rrr)rrr)rmrr)rprr)rrr)rrr)rrr)rrr)rrr)rrr)rrr)r9rr)r,rr)rrr)rrr)rrr)rrr)rrr)rrr)rrr)rrr)r!rr)rrr)rrr)rprr)rrr:)r+rr)rrr)r9r:r)rrr)rrr)rrr)rnrr)r,rr)rrr)r%rr)rrr)rrr)rrr)rrr)rrr)r"rr)r!rr)rrr)rrrr)rrr)rJrr)rMrr)rrr)rrr)r$rr)r rr:)rrr)rsrr)rr:r)rrr)rrr)rrr)rrr)rXrr)rqrr)rrr)rorr)rrr)rmrr)rrr)rrr)rrrgfI@g1:o@i5 }iq)r rrrrrrrHalfextendOner NegativeOner)hexagonfig1fig2fig3fig4tripolysr0expr2expr3 result_dictcube1cube2cube3cube4 octahedrongreat_stellated_dodecahedronexproctahedron_five_compoundcube_five_compound echidnahedrons r(test_polytope_integrater @s geAqk5A;&+Aqk345 7:; << < geAqk5A;&+Aqk5A;@ABQ H&.q!n 55 5 geAqk5A;a L1fr!tm -08q0A BB B geAqk5DG3D&+DGT!W&=&+DGQ&79:; =@A BB BeAqk5$q'Aqvv#>T!WHqL!A$(3U1a[DGaK12E$q'A+qvv4NPG gq )Qqay\A-= == = -./ 145 66 6 :;!%a! a0,@AB DGH II I"a47(Q,/3a1%"a$q'A+.Q8a1%tAw/Q! $$q'A&* ,G gq )Qqay\A-= == = geBmU2q\&+Aqk5A;&+Arl456 8;< == = geBmU2q\&+Aqk5A;&+ArlE!QKABC EHI JJ J :;< >AB CC C -./ 145 66 6 5'vv)>(%*?#U65%9& (D dAqD1Q3JA$5 6 X& '' ' 5&eV(<(%*?' )D dAqD1Q3JA$5 6 /I& '' ' 5(%*>(%*? AD dAqD1Q3JA$5 6 /H% && & 5'vu)=&eV(<( *D dAqD1Q3JA$5 6 /F# $$ $ %1+uQ{E!QK 8C E qDFQT!Q$Y 1a41 ,E qDAI1QT !AaeG +E rEAqDFNQT!Q$Y &Aad 2E LL%&'$S%B?K u )S!9 99 9 u (B!7 77 7 u *c!: :: : %1+uQ{E!QK 8C qDAI!Q$q!t #E qDAI1QT !AaeG +E rEAqDFNQT!Q$Y &Aad 2E LL%&' c5Q 7 Aa!AqD&A+ x23 44 4 geAqk5A;&+Aqk5A;@)* , 0G1 0Ga 0GAqvv 0G01Qa 0G01Q  0G12Q  0G12166 0G 12AF AEEAI 0G 12Q 0G12Q  0G12Q AEEAI 0G12Q AEEAI 0G12Aquuqy 0G12Q  0G12Q  0G12AF AEEAI 0G GG G$: <| < )E eQ '1S6 11 1. <| < )E $L*B " ## # q516>AF "D; /-!:; /\"-]; /\/:]; /\Js; /t".u; /t0Ju; /v".w; /x !":DA BX M   %JN%J8)9%J8+99%J8;I9%J:);%J:+9;%J:;I;%J<)=%J<+9=%J<;I=%J>)?%J>+9?%J>;I?%J@)A%J@+9A%J@;IA%JB)C%JB+9C%JB;IC%JD)E%JD+9E%JD;IE%JF)G%JF+9G%JF;IG%JH)I%JH+9I%JH;II%JJ)K%JJ+9K%JJ;IK%JL !"4d;dB Ce KK KHN[`HNx"yHNx$0yHNx2>yHNx@LyHNz"{HNz$0{HNz2>{HNz@L{HN|#}HN|%1}HN|3?}HN|AM}HN~#HN~%1HN~3>HN~@LHN@#AHN@%1AHN@3?AHN@AMAHNB"CHNB$0CHNB2>CHNB@KCHND#EHND%1EHND3?EHNDAMEHNF#GHNF%0GHNF2>GHNF@LGHNH#IHNH%1IHNH3?IHNHAMIHNJ"KHNJ$0KHNJ2>KHNJ@LKHNL"MHNL$0MHNL2>MHNL@LMHNN#OHNN%0OHNN2>OHNN@LOHNP"QHNP$0QHNP2>QHNP@LQHNR#SHNR%1SHNR3>SHNR@LSHNT#UHNT%0UHNT2>UHNT@LUHNV#WHNV%1WHNV3>WHNV@KWHNX#YHNX%1YHNX3>YHNX@LYHNZ#[HNZ%0[HNZ2>[HNZ@K[HN\"]HN\$0]HN\2>]HN\@K]HN^#_HN^%1_HN^3>_HN^@L_HN`#aHN`%0aHN`2>aHN`@LaHNb"cHNb$0cHNb2>cHNb@LcHNd#eHNd%1eHNd3?eHNdALeHNf#gHNf%1gHNf3>gHNf@LgHNh#iHNh%0iHNh2>iHNh@LiHNj"kHNj$0kHNj2>kHNj@KkHNl#mHNl%1mHNl3?mHNlAMmHNn#oHNn%0oHNn2>oHNn@LoHNp"qHNp$0qHNp2>qHNp@LqHNr#sHNr%1sHNr3>sHNr@LsHNt#uHNt%0uHNt2>uHNt@KuHNv#wHNv%1wHNv3?wHNvALwHNx#yHNx%1yHNx3>yHNx@LyHNz"{HNz$/{HNz1={HNz?K{HN|#}HN|%1}HN|3>}HN|@L}HN~"HN~$0HN~2>HN~@LHN@#AHN@%1AHN@3?AHN@ALAHNB#CHNB%0CHNB2>CHNB@LCHND#EHND%0EHND2=EHND?KEHNF#GHNF%1GHNF3?GHNFAMGHNH#IHNH%1IHNH3>IHNH@KIHNJ#KHNJ%1KHNJ3?KHNJAMKHNL#MHNL%1MHNL3?MHNLAMMHNN#OHNN%1OHNN3?OHNNAMOHNP#QHNP%1QHNP3?QHNPAMQHNMT !-36FF G% OO O !-69II J     eadAaC[Q ? Qqt Q!VTAaD[1 22 2 e 2 CC!A$JAtad{AsQqTz Qqt Q!VTAaD[!q&$1+ C!A$JAtad{AFD1Q4K A AA Ar'c^ttddtddtddgtddtddtddgk(sJtddd}t |t t ztddk(sJt |t t zd tddk(sJy) NrrrrrCr/r=r T) clockwise)r rrrr rrr)fig6s r(test_point_sortrs uQ{E!QKq!= > A1 wq!}5 66 6 666 *D dAaC (HRO ;; ; dAaCT :hq!n LL Lr'c :ttddtddtddtddtd d td d td dtdd}t|tdzttzztdzzt ddz k(sJttddtddtddtddtdd}t|tdzttzztdzzt ddz k(sJy) Ng)\g9vgMbX gJ +?gT㥛 gX9v?gq= ףpgp= ףg/$ @gB`"g$C@rIgGzg\(\@g&1g9v rl#ShK6.l^OWg/$g1Zg|?5^g/$@gGzgX9vgMb@gy&1gZd;@gd;O?lQMQ@l0{ )rrr rrr)fig5rs r(!test_polytopes_intersecting_sidesrs 5(%*>'vv)>'uf)='vv)> @D dAqD1Q3JA$5 6 Y' (( ( 5(%*>(%v*>& (D dAqD1Q3JA$5 6 .8$ %% %r'ctdddd}dttttztdztzttdzzg}t||dddttj ttj ttzt dd tdztzt dd ttdzzt dd ik(sJt||dddttj ttj ttzt dd ik(sJt||dddttj ttj ik(sJy) NrrAr/rCrrr$rKr!r9)rrrr rrrpolygonrs r(test_max_degreersffff5G 1ac1a461QT6 *E gu ; Aq!&&!QVVQqS(1a.!Q$q&(1a.RSTUWXTXRXZbcdfgZhi jj j gu ; Aq!&&!QVVQqS(1a.9 :: : gu ; Aq!&&!QVV$ %% %r'c gdgdgdgdgdgdgdg}|d}|d d}t||}td |||d k(sJtd |||d d d ttd d ttd d t td d ik(sJy)NrPrr9r"r$r$r"r+rr"r9r!r+rr+r!rr$rrrrr!r9rrrirKir)r r rrrr)cubeverticesfaces hp_paramss r(test_main_integrate3dr$!s . , l , (DAwH HE%eX6I Auh :d BB B Auh a H D!XdA&8D!+rIs49"OOOO**/%-,A*{A{Az M %% T0VT >E L,sr'