+
    iE                        ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHtH	t	H
t
HtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ^ R	I H!t! R
 t"R t#]!R 4       t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R# )    )Abs)sqrt)SRational)	decomposebest_origindistance_to_sidepolytope_integrate
point_sorthyperplane_parametersmain_integrate3dmain_integratepolygon_integratelineseg_integrateintegration_reductionintegration_reduction_dynamic	is_vertex)	Segment2D)Polygon)PointPoint2D)xyz)slowc                  	   \        \        4      ^\        /8X  g   Q h\        \        ^,          4      ^\        ^,          /8X  g   Q h\        \        \        ,          4      ^\        \        ,          /8X  g   Q h\        \        \        ,           4      ^\        \        ,           /8X  g   Q h\        \        ^,          \        ,           4      ^\        ^\        ^,          /8X  g   Q h\        ^\        ^,          ,          ^\        ,          ,           ^,           4      ^ ^^^\        ,          ^^\        ^,          ,          /8X  g   Q h\        \        ^,          ^\        ,          \        ,          ,           4      ^\        ^,          ^\        ,          \        ,          ,           /8X  g   Q h\        ^	\        ^,          ,          \        ,           ^\        ,          ,           \        ^,          ,           \        ^,          \        ,          ,           ^,           4      ^ ^^^\        ,          \        ,           ^^	\        ^,          ,          ^\        ^,          \        \        ^,          ,          ,           /8X  g   Q h\        \        R4      \        08X  g   Q h\        \        ^,          R4      \        ^,          08X  g   Q h\        \        \        ,          R4      \        \        ,          08X  g   Q h\        \        \        ,           R4      \        \        08X  g   Q h\        \        ^,          \        ,           R4      \        \        ^,          08X  g   Q h\        ^\        ^,          ,          ^\        ,          ,           ^,           R4      ^^\        ,          ^\        ^,          ,          08X  g   Q h\        \        ^,          ^\        ,          \        ,          ,           R4      \        ^,          ^\        ,          \        ,          08X  g   Q h\        ^	\        ^,          ,          \        ,           ^\        ,          ,           \        ^,          ,           \        ^,          \        ,          ,           ^,           R4      ^\        ^\        ,          ^	\        ^,          ,          \        \        ^,          ,          \        ^,          08X  g   Q hR# )   TN)r   r   r        `/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/integrals/tests/test_intpoly.pytest_decomposer!      s   Q<Aq6!!!QT?q!Q$i'''QqS>a1X%%%QU1q5z)))QTAX1aAqD/111Qq!tVac\A%&1aAaCAadF*CCCCQTAaCE\"q!Q$1Q,&7777Qq!tVaZ!A#%1,q!tAv59:	
Aq!A#'1a1faA!Q$78 8 8 Q!$$$Q!VT"q!tf,,,QUD!a!eW,,,QUD!aV+++Q!VaZ&1a1f+555QaZ!a%'!+T2q!A#qAv6FFFFQ!Va!eai'.161q5192EEEEQaZ!^a!e+a1f4qAvzAAEtLq!A#qAvqAvq!t,- - -r   c            	      F   \         ^,          \        ^,          ,          \         ^,          \        ^,          ,          ,           ^\        ,          ,           \        ^,          ,           \         ^,          \        ,          ,           p \        \        ^ ^4      \        ^^4      4      p\        \        \	        ^4      ^,          ^ 4      \        \	        ^4      ^,          ^4      4      p\        \        ^ \	        ^4      ^,          4      \        ^\	        ^4      ^,          4      4      p\        \        ^ ^4      \        ^^ 4      4      p\        \        ^ ^4      \        ^^4      4      p\        \        ^^ 4      \        ^^4      4      p\        R^W4      R8X  g   Q h\        R^V\        ^,          4      R8X  g   Q h\        R^V\        ^,          4      R8X  g   Q h\        R^V\        ^,          \         ^,          ,          4      R8X  g   Q h\        R^V\        ^,          \         ^,          ,          4      R8X  g   Q h\        R^V\        ^,          \         ^	,          ,          4      R8X  g   Q h\        R^V\        ^	,          \         ^,          ,          4      R8X  g   Q hR# )	   N)r#   r   r      )r#   r   )      ?r   )r   r#   )r   r&   r   r   )r   r   r   r   r   r   )expr1l1l2l3l4l5l6s          r    test_best_originr/   +   s   FQ!VOa1fqAvo-A5R?!q&1*LE	5A;a	,B	511%uQqTAXq'9	:B	5AaD1H%uQ!q'9	:B	5A;a	,B	5A;a	,B	5A;a	,Bvq",666 vq"a1f-999vq"a1f-999vq"a1fqAvo6&@@@vq"a1fqAvo6&@@@vq"a1fqAvo6&@@@vq"a1fqAvo6&@@@r   c                  0   \        \        \        ^ ^ 4      \        ^ ^4      \        ^^ 4      4      ^4      ^8X  g   Q h\        \        \        ^ ^ 4      \        ^ ^4      \        ^^4      \        ^^ 4      4      \        \        ,          4      \        ^^4      8X  g   Q h\        \        \        ^ ^4      \        ^^4      \        ^^4      4      ^\        ^,          ,          ^(\        ,          ,
          4      \        R'^4      8X  g   Q h\        \        \        ^ ^ 4      \        ^ \        ^4      4      \        \        ^4      \        ^4      4      \        \        ^4      ^ 4      4      ^4      ^8X  g   Q h\        \        ^ ^ 4      \        \        ^4      ) ^,          \        P                  4      \        \        ^4      ) ^,          \        ^4      ^,          4      \        ^ ^4      \        \        ^4      ^,          \        ^4      ^,          4      \        \        ^4      ^,          \        P                  4      4      p \        V ^4      \        ^\        ^4      ,          4      ^,          8X  g   Q h\        . R,O^4      ^8X  g   Q h\        . R.O\        \        ,          4      \        ^^4      8X  g   Q h\        . R/O^\        ^,          ,          ^(\        ,          ,
          4      \        R'^4      8X  g   Q h\        R*^ \        ^4      3^3\        ^4      ^ 3^3R+.^4      ^8X  g   Q h\        R(^4      \        ^4      ) ^,          3^ 3R)\        ^4      ^,          3\        R(^4      \        ^4      ^,          3\        ^4      3\        P                  \        ^4      ^,          3\        ^4      3R-\        ^4      ^,          3\        P                  \        ^4      ) ^,          3^ 3.p \        V ^4      \        ^\        ^4      ,          4      ^,          8X  g   Q h\        \        \        R(R(4      \        R(^4      \        ^^4      \        ^ ^ 4      \        ^R(4      4      ^4      ^8X  g   Q h\        \        \        R(R(4      \        R(^4      \        ^ ^ 4      \        ^^4      \        ^R(4      \        ^ ^ 4      4      ^4      ^8X  g   Q h\        . R0O^4      ^8X  g   Q h\        . R1O^4      ^8X  g   Q h\        \        RR24      \        R3R44      \        R5R64      \        R7R84      \        R9^4      \        R:R4      \        RR4      4      p\        V\        ^,          \        \        ,          ,           \        ^,          ,           4      \        R4      R<,          8X  g   Q h\        \        RR4      \        RR=4      \        R>R?4      \        R@RA4      \        RBR	4      4      p\        V\        ^,          \        \        ,          ,           \        ^,          ,           4      \        R
4      RC,          8X  g   Q h\        \        RDRE4      \        RFR4      \        RGRH4      \        RIRJ4      4      p\        V\        ^,          \        \        ,          ,           \        ^,          ,           4      \        R4      R<,          8X  g   Q h\        \        RRK4      \        RLR4      \        RR4      \        RRM4      \        RNRO4      4      p\        V\        ^,          \        \        ,          ,           \        ^,          ,           4      \        R4      R;,          8X  g   Q h\        \        ^ ^4      \        ^^4      \        ^^4      4      p. p\        ^	,          \        ,          \        ^,          \        ^,          ,          ,           ^\        ^,          ,          \        ^,          ,          ,           p\        ^,          \        ^,          ,          \        ^,          \        ^,          ,          ,           ^\        ^
,          ,          ,           p\        ^
,          \        ^	,          \        ,          ,           \        ^,          \        ^,          ,          ,           \        ^,          \        ^,          ,          ,           p	VP                  WxV	34       \        WV^
R7      p
W,          \        RR4      8X  g   Q hW,          \        R^4      8X  g   Q hW,          \        RR4      8X  g   Q h\        \        ^ ^4      \        ^^4      \        ^^4      4      p\        ^,          \        ^,          ,          ^\        ^,          ,          \        ^,          ,          ,           p\        ^,          \        ^,          ,          \        ^,          \        ^,          ,          ,           ^\        ^
,          ,          ,           p\        ^
,          \        ^	,          \        ,          ,           \        ^,          \        ^,          ,          ,           \        ^,          \        ^,          ,          ,           p	VP                  WxV	34       \        WV^	R7      \        ^,          \        ,          ^\        ^,          ,          \        ^,          ,          ,           \        R^	4      /8X  g   Q h\        \        \        ^ ^ 4      \        ^ ^4      \        ^^4      \        ^^ 4      4      ^R7      / ^ ^ b^^b\        \        P                  b\        ^,          \        ^,          ,          \        P                  ^	,          b\        ^,          \        P                  ^,          b\        ^,          \        P                  ^,          b\        \        P                  b\        \        ^,          ,          \        P                  ^,          b\        ^,          \        P                  ^,          b\        ^,          \        P                  ^,          b\        ^,          \        ,          \        P                  ^,          b\        ^,          \        ,          \        P                  ^,          b\        \        ,          \        P                  ^,          b\        ^,          \        P                  ^,          b\        ^,          \        P                  ^,          b\        \        ^,          ,          \        P                  ^,          b8X  g   Q h. RQO. RRO. RSO. RTO. RUO. RVO. RWO.p\        V^4      \        ^4      8X  g   Q h. RXO. RYO. RZO. R[O. R\O. R]O. R^O.p. R_O. R`O. RaO. RbO. RcO. RdO. ReO. RfO. RgO.	pRPRhRiRj\        P                  ^,          \        P                  ^,          \        P                  ^,          3.. RkO. RlO. RmO. RnO. RoO. RpO. RqO.p\        V\        ^,          \        ^,          ,           \        \        ,          ,           \        ^,          ,           4      \        R^4      8X  g   Q h\        V\        ^,          \        ^,          ,           \        \        ,          ,           \        ^,          ,           4      \        R4      ^,          8X  g   Q h\        V\        ^,          \        ^,          ,           \        \        ,          ,           \        ^,          ,           4      \        ^%4      R,          8X  g   Q h\        P                  \        ^4      ,          ^ ^ 3^ \        P                  \        ^4      ,          ^ 3^ ^ \        P                  \        ^4      ,          3^ ^ \        P                  \        ^4      ,          3^ \        P                  \        ^4      ,          ^ 3\        P                  \        ^4      ,          ^ ^ 3.. RrO. RsO. RtO. RuO. RvO. RwO. RxO. RyO.	p\        V^4      \        ^4      ^,          8X  g   Q h. RzO. R{O. R|O. R}O. R~O. RO. RO. RO. RO. RO. RO. RO. RO.p\        \        V^4      R,
          4      R8  g   Q h\        ^,          \        ^,          ,           \        ^,          ,           p. . RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RONp\        \        VV4      4      R,
          R 8  g   Q h. . RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RON. RONp\        \        VV4      R!,
          4      R8  g   Q h. . RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNER NERNERNERNERNERNERNERNERNER	NER
NERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNERNER NER!NER"NER#NER$NER%NER&NER'NER(NER)NER*NN. ER+ON. ER,ON. ER-ON. ER.ON. ER/ON. ER0ON. ER1ON. ER2ON. ER3ON. ER4ON. ER5ON. ER6ON. ER7ON. ER8ON. ER9ON. ER:ON. ER;ON. ER<ON. ER=ON. ER>ON. ER?ON. ER@ON. ERAON. ERBON. ERCON. ERDON. EREON. ERFON. ERGON. ERHON. ERION. ERJON. ERKON. ERLON. ERMON. ERNON. EROON. ERPON. ERQON. ERRON. ERSON. ERTON. ERUON. ERVON. ERWON. ERXON. ERYON. ERZON. ER[ON. ER\ON. ER]ON. ER^ON. ER_ON. ER`ON. ERaON. ERbON. ERcON. ERdON. EReON. ERfON. ERgON. ERhON. ERiON. ERjON. ERkON. ERlON. ERmON. ERnON. ERoON. ERpON. ERqON. ERrON. ERsON. ERtON. ERuON. ERvON. ERwON. ERxON. ERyON. ERzON. ER{ON. ER|ON. ER}ON. ER~ON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERON. ERONp\        \        V^4      R",
          4      R8  g   Q h\        \        VV4      R#,
          4      R8  g   Q h\        V\        ^,          \        \        ,          .^R7      \        \        ,          R$\        ^4      ,          \        ^,          R$\        ^4      ,          /8X  g   Q h\        V^R7      ^^}\        R%\        ^4      ,          \        \        ,          R$\        ^4      ,          \        R%\        ^4      ,          \        \        ,          R$\        ^4      ,          \        ^,          R$\        ^4      ,          \        ^,          R$\        ^4      ,          \        R%\        ^4      ,          \        \        ,          R$\        ^4      ,          \        ^,          R$\        ^4      ,          /
8X  g   Q hR&# (  r   gQ?g}?5^@gL7A`?gS@l   le4_9 gX9v>@gK7@gB`"?gZd;?l   ;U(h*Y g;O@l   Euj g5^I?g+@gʡE?gjt@gQ@l   K[+r 
max_degreei$iR  iP iti  i.w i	=  i+  i  gZ?g-q=gÜ?gư>g      ?gfI@g1:o@i5  iq  NiYr3   r   r4   r   r   r3   r   )r5   ))r   r#      r6   r   r   )r5   r   r   r   r9   r   r6   ))r;   r%   ))r   r3   ))r=   r3   )r4   r   r:   )r   r3   r   r'   r   )r7   r   )r?   rA   ))r3   r   r   r<   ))r3   r3   r   r@   gX9vgףp=
gPngT㥛 gʡEg(\gKgHzG	g1Zdl    J)l     QJg
ףp=
g{Gz
gZd;O	zGagzGg-Fl     gQgh|?5gtV
gbX9gMg~jtgh|?5	grh|gFxg333333gMڿgNbX9r   r   r   )rC   )r      rD   )rD   rD   rD   )r%   rD   r   )r   rD   r   )rD   r   rD   )r%   r   r   )r   r   rD   )r   r#   r%   r8   )r%   r#      rD   )r      rE   r#   )r   rD   rE   rF   )r   r8   r   rF   )r   r8   r%   rD   rC   r   r   rE   r   rE   r   r   rE   rE   rE   r   r   rE   r   rE   rE   rE   r   rE   rE   rE   )r%   rF   rD   r#   )r   rE   rF   r%   )rE   r8   rD   rF   )r   r8   rE   r   )r#   r   r   r%   )r#   rD   r8   r   )rC   rK   )rE   r8   r   )r%   r#   r   )r%   rE   r   rI   rH   rL   )rE   r8   rE   )r%   r#   rE   )r%   rE   rE   rJ   )rD      rE   r   )r   rF   rD   r   )rE   r8   r%   r#   r   r   )rO   
   r8   rE   )rP   	   r%   r8   )rQ      r#   r%   )rR   rF   r   r#   )rF   rR   rQ   rP   rO   rD   r   r   r   r   r   r   r   r   r   )r   r#   r   )r   r%   r   )r8   r#   r%   )r8   r%   r   )r   r   r#   )r#   r8   r   )r   r%   r#   )r%   r8   rE   )r%   rE   r   )r%   r   r   )r%   r   r8   )r8   r   r#   )r8   r#   rE   )r#   r   r   )rE   r#   r   ))gaI{Կr   F8?)gaI{?r   F8ۿ)Sr   ׈?0?)S?r   ׈?0)r[   P/7ӿrV   )r[   P/7?rV   )rY   r\   rW   )rY   r]   rW   )aI{Ŀ      rY   )r^         ?rY   )aI{?r_   r[   )ra   r`   r[   )rW   r\   r[   )rW   r]   r[   )Sпa-!r?rW   )rb   a-!rȿrW   )S?rc   rV   )re   rd   rV   )rV   r\   rY   )rV   r]   rY   )   r%   r   rD      )   rF   r   r%      )rQ   rD   r   rF   rR   )   r#   r   r8      )   rE   r   r#      )rO   r8   r   rE   rP   )rR   rm   r#   rj   rQ   )rP   ri   r%   rf   rO   )rg   rk   r8   rO   rf   )ri   rP   rE   rl   rh   )rk   rg   rD   rQ   rj   )rm   rR   rF   rh   rl   ))r   g;fr   )r   g;f?r   )ب/h?;fֿHH~?)rn   ;f?rp   )%D?SN%D?)rr   SN?rt   )HH~??z5˿HH~??)rv   z5?rx   )[ $?ro   %D׿)rz   rq   r{   )rp   r   r{   )HH~?ӿrw   rp   )r|   ry   rp   )rx   r   rt   )~E?rs   r   )r}   ru   r   )rt   r   rp   )~Eڿrs   r   )r~   ru   r   )orw   r   )r   ry   r   )o?rw   r   )r   ry   r   )r{   r   rx   )[ $߿ro   rt   )r   rq   rt   )%Dǿrs   r{   )r   ru   r{   )ب/hro   rx   )r   rq   rx   )r   rP   rg   )   rP   r   )rg   ri   r   )r   ri   r   )rg   rP   r   )r   rP   r   )r   ri   rg   )r   ri   r   )r#   r8   rm   )   r8   r#   )r#   rm      )r   r   r#   )   rE   r%   )r%   rE      )   r   r%   )r%   r   r   )   rm   r8   )r8   r   r   )rE   r      )r   r   rE   )rD   rR   rl   )rh   rR   rD   )rD   rl      )r   rh   rD   )rk   rQ   rF   )rF   rQ   rj   )   rk   rF   )rF   rj   r   )rR   rf   rl   )rh   rf   rR   )rk   rO   rQ   )rQ   rO   rj   )rO   rk   r   )r   rj   rO   )r   rl   rf   )rf   rh   r   )r   r   rm   )r   r   r   )r   r   r   )r   r   r   ))r^   r_   ys)r^   r`   r   )ra   r_   ys?)ra   r`   r   )rX   r   r   )rZ   r   r   )rb   wr^   )rb   w?r^   )re   r   ra   )re   r   ra   )rW   r\   r   )rW   r]   r   )rV   r\   r   )rV   r]   r   )r   r_   ra   )r   r`   ra   )r   r_   r^   )r   r`   r^   )F8r   r^   )F8?r   ra   )rj   rP   r%   rF   )ri   rm   rR   r   )rj   r   rR   rP   )r%   rm   ri   rF   )rj   rF   ri   r   )rR   rm   r%   rP   )rD   r#   rO   rj   )r   rQ   rm   rf   )rO   rQ   r   rj   )rD   rf   rm   r#   )r   rf   rD   rj   )rO   r#   rm   rQ   )r8   rk   rO   rF   )rh   rE   rR   rf   )r8   rf   rR   rk   )rO   rE   rh   rF   )r8   rF   rh   rf   )rR   rE   rO   rk   )rD   rP   rl   r8   )ri   rQ   rE   rg   )rl   rQ   ri   r8   )rD   rg   rE   rP   )ri   rg   rD   r8   )rl   rP   rE   rQ   )rk   rl   r   r   )rg   rh   r%   r#   )rk   r#   r%   rl   )r   rh   rg   r   )rk   r   rg   r#   )r%   rh   r   rl   )r   r   O)r   r   O@)r   Tͻr   )r   r   r   )r   Tͻ@r   )r   r   r   )wVnTͻr   )r   r   r   )r   Tͻ?r   )r   r   r   )wVn@r   r   )r   r   r   )r   r   r   )r   r   r   )r   ~jr   )r   r   r   )r   ~j@r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )k)#r   V)r   r   r   )k)#@r   V?)r   r   r   )1*Tͻ r   )r   Tͻ @r   )1*@r   r   )r   r   r   )gr,Er   q
)gr,E@r   q
@)r   r   r   )r   r   r   )r   r   r   )r   r   r   )A(`Rr   r   )r   r   r   )A(`R@r   r   )r   r   r   )Vr   r   )r   r   r   )r   r   r   )V@r   r   )r   r   r   )r   r   r   )r,Er   r   )r   r   r   )r,E?r   r   )r   r   r   )ysr   r   )r   r   re   )ys?r   r   )r   r   rb   )r   r   r   )r   r   r   )r   r   rb   )r   r   r   )r   r   rb   )r   r   r   )r   r   r   )r   r   r   )r   r   re   )r   r   r   )r   r   re   )r   r   r   )r   r   r   )r   r   r   )r   r_   r   )r   r`   r   )r   Tͻr   )r   r   r   )r   r   r   )r   Tͻ@r   )r   r_   r   )r   r`   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rW   r   r   )rW   r   re   )rW   r   r   )rW   r   re   )rb   r   r   )rb   r   r   )re   r   r   )re   r   r   )rV   r   r   )rV   r   rb   )rV   r   r   )rV   r   rb   )rQ   B   /   ),   >   M   )r   [   1   )!   r   S   )r%   r   T   )rf   r   5   )$   r   r   )r   r   r   )I   r   r   )rl   r   .   )r   @   +   )rg   :   H   )r   r   3   )rO   r   J   )r8   r   r   )<   r   r   )#   r   r   )r   r   r   )rm   r   r   )O   r   N   )rD   8   (   )L   r   Q   )r   r   K   )rR   r   r   )   r   r   )*   r   r   ))   r   r   )ri   r   r   )r   r   r   )r#   Y   G   )r   r   r   )rh   r   U   )rk   r   r   )A   r   r   )r   r   r   )"   r   r   )rE   r   r   )    r   r   )rP   r   0   )-   r   r   )rF   r   r   )rj   r   r   )%   r   r   )F   r   r   )r   r   r   )X   r   r   )&   C   r   )r   r   r   )9   r   r   )r   r   r   );   r   W   )rm   r   r   )?   r   r   )rh   r   r   )4   r   r   )'   r   r   )r   r   r   )7   r   r   )r   r   r   )   r   E   )ri   r   r   )R   r   r   )rF   r   r   )Z   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )6   r   D   )rE   r   r   )2   r   r   )r%   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   V   )rQ   r   r   )P   r   r   )rO   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rl   r   r   )=   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rP   r   r   )rR   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rk   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rg   r   r   )rj   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rD   r   r   )rf   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r#   r   r   )r8   r   r   )r   r   r   )r   r   r   )rj   r   r   )r   r   r   )rE   r   r   )r   r   r   )rD   r   r   )r   r   r   )r   r   r   )r   r   r   )rh   r   r   )rf   r   r   )r   r   r   )rQ   r   r   )r   r   r   )r#   r   r   )r   r   r   )r   r   r   )r   r   r   )rF   r   r   )r8   r   r   )r   r   r   )rl   r   r   )r   r   r   )rP   r   r   )r   r   r   )r   r   r   )r   r   r   )r%   r   r   )rR   r   r   )r   r   r   )rm   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )rO   r   r   )rk   r   r   )r   r   r   )ri   r   r   )r   r   r   )rg   r   r   )r   r   r   )r   r   r   )r   r   r   )r
   r   r   r   r   r   r   r   HalfextendOner   NegativeOner   )hexagonfig1fig2fig3fig4tripolysr(   expr2expr3result_dictcube1cube2cube3cube4
octahedrongreat_stellated_dodecahedronexproctahedron_five_compoundcube_five_compoundechidnahedrons                        r    test_polytope_integrater  @   s!    geAqk5A;&+Aqk3457:;< < <geAqk5A;&+Aqk5A;@ABQH&.q!n5 5 5 geAqk5A;aL1fr!tm-08q0AB B B geAqk5DG3D&+DGT!W&=&+DGQ&79:;=@AB B B eAqk5$q'Aqvv#>T!WHqL!A$(3U1a[DGaK12E$q'A+qvv4NPG gq)Qqay\A-====  -./1456 6 6 :;<q5BEMaQR^T T T /01!Q$A?BJ4QRBST T T|q$q'lA->!%a!a0,@ABDGHI I I "a47(Q,/3a1%"a$q'A+.Q8a1%tAw/Q!$$q'A&*,G gq)Qqay\A-==== geBmU2q\&+Aqk5A;&+Arl4568;<= = = geBmU2q\&+Aqk5A;&+ArlE!QKABCEHIJ J J  :;<>ABC C C -./1456 6 6 5'vv)>(%*?#U65%9&(D dAqD1Q3JA$56	
X&' ' ' 5&eV(<(%*?')D dAqD1Q3JA$56	/I&' ' ' 5(%*>(%*?ADdAqD1Q3JA$56	/H%& & & 5'vu)=&eV(<(*D dAqD1Q3JA$56	/F#$ $ $ %1+uQ{E!QK
8CEqDFQT!Q$Y1a41,EqDAI1QT	!AaeG+ErEAqDFNQT!Q$Y&Aad2E	LL%&'$SB?K)S!9999(B!7777*c!::::
%1+uQ{E!QK
8CqDAI!Q$q!t#EqDAI1QT	!AaeG+ErEAqDFNQT!Q$Y&Aad2E	LL%&'cQ7	
Aa!AqD&A+	x234 4 4
 geAqk5A;&+Aqk5A;@)*,0G1 0Ga 0GAqvv 0G01Qa0G01Q	0G 12Q	0G 12166	0G
 12AF
AEEAI0G 12Q	0G 12Q	0G 12Q
AEEAI0G 12Q
AEEAI0G 12Aquuqy0G 12Q	0G 12Q	0G 12AF
AEEAI0GG G G$:<|<)E eQ'1S6111.<|<)E
$ L*<nL,8L	NE Iyuuqy!%%!)QUUQY/1	9i	9.E
 eQ!Va1f_q1u%<qAv%EFE1  eQ!Va1f_q1u%<qAv%EFU8b=  eQ!Va1f_q1u%<qAv%EFR53;   MMDG+Q2QQ4Kq!--$q'12Q15547?4Kq}}tAw.2QUUT!W_a4KM Y	9iY		3J j!,Q!;;;
T( 
-	+	-	/	1	/3	1 !8 !">B "# # # q516>AF"D; / -!: ; /\ "-]; /\ /:]; /\ <G]; /^ "-_; /^ /:_; /^ <G_; /` "-a; /` /:a; /` <Fa; /b ",c; /b .9c; /b ;Fc; /d ",e; /d .8e; /d :Ee; /f "-g; /f /:g; /f <Gg; /h "-i; /h /:i; /h <Fi; /j ",k; /j .9k; /j ;Fk; /l ",m; /l .8m; /l :Em; /n "-o; /n /:o; /n <Go; /p "-q; /p /:q; /p <Hq; /r ".s; /r 0<s; /r >Js; /t ".u; /t 0<u; /t >Ju; /v ".w; /x !":DABXM
  %J N %J8 )9%J8 +99%J8 ;I9%J: );%J: +9;%J: ;I;%J< )=%J< +9=%J< ;I=%J> )?%J> +9?%J> ;I?%J@ )A%J@ +9A%J@ ;IA%JB )C%JB +9C%JB ;IC%JD )E%JD +9E%JD ;IE%JF )G%JF +9G%JF ;IG%JH )I%JH +9I%JH ;II%JJ )K%JJ +9K%JJ ;IK%JL !"4d;dBCeKKKHN [`4 [`3[`I[` I[` I	[`
 H[` _[` ^[` ^[` ][` ^[` ][` ][` \[` _[` ^[`  ^![`" ]#[`$ ^%[`& ]'[`( ])[`* \+[`, _-[`. ^/[`0 ^1[`2 ]3[`4 _5[`6 ^7[`8 ^9[`: ];[`< J=[`> H?[`@ _A[`B ^C[`D ^E[`F ]G[`H ^I[`J ]K[`L ^M[`N ]O[`P JQ[`R _S[`T ^U[`V IW[`X ^Y[`Z ][[`\ _][`^ ^_[`` ^a[`b ]c[`d Je[`f Jg[`h Ii[`j Kk[`l _m[`n ^o[`p `q[`r ]s[`t _u[`v ^w[`x ^y[`z _{[`| _}[`~ ^[`@ ^A[`B ]C[`D KE[`F JG[`H MI[`J LK[`L _M[`N _O[`P ^Q[`R ^S[`T MU[`V LW[`X _Y[`Z _[[`\ ^][`^ ^_[`` `a[`b `c[`d _e[`f _g[`h `i[`j _k[`l _m[`n ^o[`p ^q[`r `s[`t ]u[`v _w[` HNx "yHNx $0yHNx 2>yHNx @LyHNz "{HNz $0{HNz 2>{HNz @L{HN| #}HN| %1}HN| 3?}HN| AM}HN~ #HN~ %1HN~ 3>HN~ @LHN@ #AHN@ %1AHN@ 3?AHN@ AMAHNB "CHNB $0CHNB 2>CHNB @KCHND #EHND %1EHND 3?EHND AMEHNF #GHNF %0GHNF 2>GHNF @LGHNH #IHNH %1IHNH 3?IHNH AMIHNJ "KHNJ $0KHNJ 2>KHNJ @LKHNL "MHNL $0MHNL 2>MHNL @LMHNN #OHNN %0OHNN 2>OHNN @LOHNP "QHNP $0QHNP 2>QHNP @LQHNR #SHNR %1SHNR 3>SHNR @LSHNT #UHNT %0UHNT 2>UHNT @LUHNV #WHNV %1WHNV 3>WHNV @KWHNX #YHNX %1YHNX 3>YHNX @LYHNZ #[HNZ %0[HNZ 2>[HNZ @K[HN\ "]HN\ $0]HN\ 2>]HN\ @K]HN^ #_HN^ %1_HN^ 3>_HN^ @L_HN` #aHN` %0aHN` 2>aHN` @LaHNb "cHNb $0cHNb 2>cHNb @LcHNd #eHNd %1eHNd 3?eHNd ALeHNf #gHNf %1gHNf 3>gHNf @LgHNh #iHNh %0iHNh 2>iHNh @LiHNj "kHNj $0kHNj 2>kHNj @KkHNl #mHNl %1mHNl 3?mHNl AMmHNn #oHNn %0oHNn 2>oHNn @LoHNp "qHNp $0qHNp 2>qHNp @LqHNr #sHNr %1sHNr 3>sHNr @LsHNt #uHNt %0uHNt 2>uHNt @KuHNv #wHNv %1wHNv 3?wHNv ALwHNx #yHNx %1yHNx 3>yHNx @LyHNz "{HNz $/{HNz 1={HNz ?K{HN| #}HN| %1}HN| 3>}HN| @L}HN~ "HN~ $0HN~ 2>HN~ @LHN@ #AHN@ %1AHN@ 3?AHN@ ALAHNB #CHNB %0CHNB 2>CHNB @LCHND #EHND %0EHND 2=EHND ?KEHNF #GHNF %1GHNF 3?GHNF AMGHNH #IHNH %1IHNH 3>IHNH @KIHNJ #KHNJ %1KHNJ 3?KHNJ AMKHNL #MHNL %1MHNL 3?MHNL AMMHNN #OHNN %1OHNN 3?OHNN AMOHNP #QHNP %1QHNP 3?QHNP AMQHNMT !-36FFG%OOO!-69IIJ	
 
 
 eadAaC[Q?	
QqtQ!VTAaD[12 2 2 e2	
CC!A$JAtad{AsQqTz	
QqtQ!VTAaD[!q&$1+	
C!A$JAtad{AFD1Q4K	AA A Ar   c                  |   \        \        ^ ^ 4      \        ^^ 4      \        ^^4      .4      \        ^^4      \        ^^ 4      \        ^ ^ 4      .8X  g   Q h\        RRR4      p \	        V \
        \        ,          4      \        R^4      8X  g   Q h\	        V \
        \        ,          RR7      \        ^^4      8X  g   Q hR# )r   T)	clockwiseNr   r   r9   r'   r3   )r   r   r   r   r
   r   r   r   )fig6s    r    test_point_sortr    s    uQ{E!QKq!=>	A1wq!}56 6 6 666*DdAaC(HRO;;;dAaCT:hq!nLLLr   c                     \        \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      4      p \        V \        ^,          \        \        ,          ,           \        ^,          ,           4      \        R4      R,          8X  g   Q h\        \        RR4      \        RR4      \        RR4      \        RR4      \        R	R
4      4      p\        V\        ^,          \        \        ,          ,           \        ^,          ,           4      \        R4      R,          8X  g   Q hR# ) g)\@gJ+?gX9v?g/$
@g$C@g\(\@l   #ShK6. g/$@gMb@gZd;@gd;O?l   QMQ@ Ng)\g9vgMbXgT㥛 
gq=
ףpgp=
ף gB`"rB   gGzg&1g9v
l     ^OWg/$g1Zg|?5^gGzgX9vgy&1l    0{
)r   r   r
   r   r   r   )fig5r  s     r    !test_polytopes_intersecting_sidesr    s   5(%*>'vv)>'uf)='vv)>@D dAqD1Q3JA$56	
Y'( ( ( 5(%*>(%v*>&(D dAqD1Q3JA$56	.8$% % %r   c                      \        RRRR4      p ^\        \        \        \        ,          \        ^,          \        ,          \        \        ^,          ,          .p\        W^R7      ^^\        \        P
                  \        \        P
                  \        \        ,          \        ^^4      \        ^,          \        ,          \        ^^4      \        \        ^,          ,          \        ^^4      /8X  g   Q h\        W^R7      ^^\        \        P
                  \        \        P
                  \        \        ,          \        ^^4      /8X  g   Q h\        W^R7      ^^\        \        P
                  \        \        P
                  /8X  g   Q hR# )r   r1   Nr  r;   r'   r9   )r   r   r   r
   r   r   r   polygonr   s     r    test_max_degreer    s   ffff5G1ac1a461QT6*Eg;	
Aq!&&!QVVQqS(1a.!Q$q&(1a.RSTUWXTXRXZbcdfgZhij j jg;	
Aq!&&!QVVQqS(1a.9: : :g;	
Aq!&&!QVV$% % %r   c                  &   . RO. RO. RO. RO. RO. R	O. R
O.p V ^ ,          pV R,          p\        W!4      p\        ^W!V4      R8X  g   Q h\        ^W!V^R7      ^R\        \        R^4      \        \        R^4      \
        \        R^4      /8X  g   Q hR# )r   r   NNr1   NrG   r#   rD   rF   r%   r%   rF   rE   r   rF   rD   r8   rE   r   rE   r8   r   r%   r   r   r#   r   r8   rD   r#   ii)r   r   r   r   r   r   )cubeverticesfaces	hp_paramss       r    test_main_integrate3dr!  !  s    .,l,(D AwHHE%e6IAu	:dBBBAu	aH	
D!XdA&8D!+<a$PQARST T Tr   c            
      Z   \        RRR4      p V P                  p\        V 4      p\        \        ^,          \
        ^,          ,           W4      \        R^4      8X  g   Q h\        \        ^,          \
        ^,          ,           W^R7      ^ ^ ^^\
        \        ^#^4      \        ^
/8X  g   Q hR# )r   iE  r1   Nr$   )rE   r%   r'   )r   sidesr   r   r   r   r   )trianglefacetsr   s      r    test_main_integrater&  .  s    vvv.H^^F%h/I!Q$A+v9Xc1=MMMM!Q$A+vQG	
Aq!QQB/0 0 0r   c            	          . RO. RO. RO. RO. RO. RO. R	O.p V ^,          pV R,          pV ^ ,          p\        VR
^.^ W#^^ 4      R8X  g   Q hR# )r   r  NrG   r  r  r  r  r  r  rT   i)r   )r  facetr%  r  s       r    test_polygon_integrater)  7  s[    .,l,(D GE"XFAwHUYNAvANRUUUUr   c                  X    Rp \        V RR.R4      \        ^4      ) ^,          8X  g   Q hR# )r   NrC   rU   rT   rS   )r	   r   )points    r    test_distance_to_sider,  B  s.    EEIy#99E$q'RSSSSr   c                  n    . ROp RR.p\        V ^ V^^ 4      ^8X  g   Q h\        V ^ V^ ^ 4      ^ 8X  g   Q hR# )r   NrI   rM   )rI   rM   rN   rJ   )r   )r  line_segs     r    test_lineseg_integrater/  G  sG    :G9%HWa1a8A===Wa1a8A===r   c            	          \        \        ^ ^4      \        ^^4      \        ^^4      4      p V P                  p\        V 4      ^ ,          w  r#\	        V^ W#^\
        \        3^ 4      ^8X  g   Q h\	        V^ W#^ \
        \        3^ 4      ^ 8X  g   Q hR# r   N)r   r   r#  r   r   r   r   )r$  r%  abs       r    test_integration_reductionr4  N  s~    uQ{E!QKq!=H^^F *1-DA A!aVQ?1DDD A!aVQ?1DDDr   c                     \        \        ^ ^4      \        ^^4      \        ^^4      4      p V P                  p\        V 4      ^ ,          w  r#V^ ,          P                  ^ ,          p. RO. RO\
        ^ ^^.\        ^^ R..p\        V^ W#\        ^\        \
        3^^ ^WE^4      \        ^^4      8X  g   Q h\        V^ W#^ ^\        \
        3^^ ^WE^4      ^ 8X  g   Q hR# )r   N)r   r   r   r   )r   r   r   rE   )	r   r   r#  r   pointsr   r   r   r   )r$  r%  r2  r3  x0monomial_valuess         r    "test_integration_reduction_dynamicr9  V  s    uQ{E!QKq!=H^^F *1-DA			!	B#\1a}q!Qo7O )A!QA)*ArAGJRSUWX/Z Z Z(A!QA)*ArAGJKL L Lr   c                      \        ^4      RJ g   Q h\        R4      RJ g   Q h\        \        ^^4      4      RJ g   Q h\        R4      RJ g   Q h\        R4      RJ g   Q hR# )r#   FTN)r#   r%   )r#   r%   r8   )r#   r%   r8   rE   )r   r   r   r   r    test_is_vertexr;  d  sf    Q<5   V$$$U1a[!T)))Y4'''\"e+++r   c                  R   \        \        ^ ^ 4      \        ^ ^4      \        ^^4      \        ^^ 4      4      p ^\        \        \        \        ,          \        ^,          \        ,          \        \        ^,          ,          .p\	        W4      ^^\        \
        P                  \        \
        P                  \        \        ,          \        ^^4      \        ^,          \        ,          \        ^^4      \        \        ^,          ,          \        ^^4      /8X  g   Q h^\        \        \        \        ,          ^\        ^,          \        ,          ,           \        \        \        ^,          ,          ,           .p\	        W4      ^^\        \
        P                  \        \
        P                  \        \        ,          \        ^^4      \        ^,          \        ,          ^,           \        ^^4      \        \        ^,          ,          \        ,           \        ^^4      /8X  g   Q hR# r1  )r   r   r   r   r
   r   r   r   r  s     r    test_issue_19234r=  l  sc   eAqk5A;aU1a[IG!Q!QT!VQq!tV,Eg-	
Aq!&&!QVVQqS(1a.!Q$q&(1a.RSTUWXTXRXZbcdfgZhij j j!Q!QAaZQq!tV4Eg-	
Aq!&&!QVVQqS(1a.!Q$q&1*hrSToWXYZ\]Y]W]`aWacklmopcqrs s sr   N)1$sympy.functions.elementary.complexesr   (sympy.functions.elementary.miscellaneousr   
sympy.corer   r   sympy.integrals.intpolyr   r   r	   r
   r   r   r   r   r   r   r   r   r   sympy.geometry.liner   sympy.geometry.polygonr   sympy.geometry.pointr   r   	sympy.abcr   r   r   sympy.testing.pytestr   r!   r/   r  r  r  r  r!  r&  r)  r,  r/  r4  r9  r;  r=  r   r   r    <module>rG     s    4 9 "O O O O * * /   %-,A* {A {AzM%%
T0VT
>EL,sr   