+
    i0                         ^ RI HtHt ^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht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 ^ RIHt ^ RIHt R	 tR
 tR tR# )    )Rationalpi)S)Dummysymbols)sqrt)asincossin)
LinePointRaySegmentPoint3DLine3DRay3D	Segment3DPlaneCircle)are_coplanar)raisesc                  <4  aa \        R RR7      w  rr#p\        ^ ^ ^ 4      o\        ^^^4      p\        ^^^4      p\        SWV4      p\        SRR7      p\        SV4      p	\        VRR7      p
\        \        ^^^4      RR7      p\        \        ^RR4      RR7      p\        SR R7      p\        SR!R7      p\        SR"R7      p\        VR R7      p\        \        ^^ ^ 4      \        ^R#^4      4      p\        \        ^ R^ 4      \        ^^^4      4      p\        \        ^ R#^ 4      \        ^R#^	4      4      p\	        \
        V3R l4       \        SWV4      \        SWe4      8w  g   Q h\        SWV4      P                  \        SWe4      4      '       g   Q h\        SWV4      P                  S4      '       g   Q h\        SWV4      P                  \        S^4      4      RJ g   Q h\        SR R7      P                  \        S^4      4      '       g   Q hV\        \        ^ ^ ^ 4      RR7      8X  g   Q hWx8w  g   Q hW8X  g   Q hV
\        \        ^^^4      RR7      8X  g   Q hV
P                  WV4      V ^V,          ,           ^V,          ,           ^,
          8X  g   Q hVP                  WV4      V ^V,          ,
          V,           8X  g   Q hVP                  S8X  g   Q hVP                  S8X  g   Q hV
P                  V8X  g   Q hVP                  R8X  g   Q hV
P                  R8X  g   Q hSV9   g   Q hSV9   g   Q hWj9   g   Q hVP                  \        ^ ^ 4      4      S8X  g   Q hVP                  \        ^^^ 4      4      oS\        \        ^^4      \        ^^4      \        ^^4      4      8X  g   Q hSV9   g   Q hVP                  \        \        ^ ^ 4      \        ^^4      4      4      pV\        \        ^ ^ ^ 4      \        \        ^^4      \        ^^4      \        ^^4      4      4      8X  g   Q hVV9   g   Q h\!        4       pVP#                  4       pVP%                  V4      P'                  V4      p\)        VP+                  V^4      VP+                  V^4      4      pVP                  V9  d   VP,                  V9  g   Q hVP                  V4      P/                  V4      '       g   Q hVP                  \1        \        ^^ 4      \        ^^4      4      4      \)        \        \        ^^4      \        ^^4      \        R#^4      4      \        \        ^^4      \        ^^4      \        ^^4      4      4      8X  g   Q hVP                  \3        \        ^^ 4      \        ^^4      4      4      \5        \        \        ^^4      \        ^^4      \        ^^4      4      \        \        ^^4      \        ^^4      \        ^
^4      4      4      8X  g   Q hVP%                  VP6                  4      VP%                  V4      8X  g   Q hVP9                  V4      RJ g   Q hVP9                  V4      '       g   Q hVP9                  \        SV4      4      '       g   Q hVP9                  V4      RJ g   Q hVP;                  V4      '       g   Q hVP;                  V4      '       g   Q hVP;                  V4      '       g   Q hVP;                  V4      RJ g   Q hVP;                  V4      RJ g   Q hVP;                  \        R$R4      4      '       g   Q hVP;                  R%4      RJ g   Q hVP=                  VP'                  W44      4      ^ 8X  g   Q hVP=                  VP'                  W44      4      ^ 8X  g   Q hVP=                  VP'                  V4      4      ^ 8X  g   Q hVP=                  VP'                  V4      4      ^ 8X  g   Q hVP                  P=                  VP'                  V4      4      P?                  4       ^8X  g   Q hVP                  P=                  VP'                  V4      4      P?                  4       ^8X  g   Q hVP'                  V4      \        \A        ^4      ) \C        V4      ,          ^,          ^\A        ^4      ,          \E        V4      ,          ^,          ,           \A        ^4      \C        V4      ,          ^,          \A        ^4      \E        V4      ,          ^,          ,           \A        ^4      \C        V4      ,          ^,          4      8X  g   Q hVP'                  W44      \        ^V,          V,
          V^V,          ,           ^V,          4      8X  g   Q hVP=                  \        ^^^4      4      ^\A        ^4      ,          ^,          8X  g   Q hVP=                  \        ^ ^ ^ 4      4      ^\A        ^4      ,          8X  g   Q hVP=                  VP                  4      ^ 8X  g   Q hVP=                  V4      ^ 8X  g   Q hVP=                  V4      ^ 8X  g   Q hVP=                  \)        \        ^^^4      \        ^^^4      4      4      VP=                  \        ^^^4      4      u;8X  d    ^\A        ^4      ,          ^,          8X  g   Q h Q hVP=                  \)        \        ^^^4      \        ^ ^^4      4      4      VP=                  \        ^ ^^4      4      u;8X  d    ^\A        ^4      ,          ^,          8X  g   Q h Q hVP=                  \)        \        ^ ^^4      \        R#^^
4      4      4      ^ 8X  g   Q hVP=                  \)        \        R#^^
4      \        R^^4      4      4      ^ 8X  g   Q hVP=                  \)        \        R^^4      \        R&^^4      4      4      VP=                  \        R^^4      4      u;8X  d    ^\A        ^4      ,          ^,          8X  g   Q h Q hVP=                  \        \        ^^^4      R'R7      4      \A        ^4      8X  g   Q hVP=                  \5        \        ^^^4      . R(OR7      4      ^\A        ^4      ,          ^,          8X  g   Q hVP=                  \5        \        ^^^4      . R)OR7      4      ^ 8X  g   Q hVPG                  V4      \H        ^,          8X  g   Q hVPG                  V4      ^ 8X  g   Q hVPG                  V4      ^ 8X  g   Q hVPG                  \        \        ^^^4      \        ^^^4      4      4      \K        \A        ^4      ^,          4      ) 8X  g   Q hVPG                  \5        \        ^^^4      \        ^^^4      4      4      \K        \A        ^4      ^,          4      8X  g   Q hVPG                  \)        \        ^^^4      \        ^^^4      4      4      \K        ^\A        ^4      ,          ^,          4      8X  g   Q h\M        VVV4      RJ g   Q h\M        V4      RJ g   Q h\M        \        ^^^4      \        ^ ^ ^4      \        ^^^4      \        ^^^4      4      '       g   Q h\M        \        SWV4      \        SWe4      4      '       g   Q h\        PN                  ! WxV
4      RJ g   Q h\        PN                  ! V4      RJ g   Q h\	        \
        R 4       \	        \
        R 4       VPQ                  \        ^^^4      4      \        \        ^^^4      RR7      8X  g   Q h\        R$R*4      oSPS                  4       \        \        ^ ^ ^ 4      R+4      8X  g   Q hSPS                  \        ^^ ^4      4      \        \        ^^ ^4      R+4      8X  g   Q hSPS                  R,R4      \        \        ^^ ^4      R-4      8X  g   Q h\	        \
        V3R	 l4       \        ^ ^ ^ 4      \        ^ ^^ 4      ppR p\        VVR7      oSPS                  VV4      \        VR*4      8X  g   Q h\        V!  pSPS                  VV4      \        VR.4      8X  g   Q h\        VVP6                  R7      PS                  VVV,           4      \        \        ^ ^ ^ 4      R*4      8X  g   Q h\        VVR7      PS                  VVV,           4      \        \        ^ ^^ 4      R.4      8X  g   Q h\        VVP6                  R7      PS                  VVV,           4      \        \        ^ ^ ^4      R*4      8X  g   Q h\        VR R7      oSPS                  4       \        VR*R7      8X  g   Q hVPU                  V4      V.8X  g   Q hVPU                  VP                  4      VP                  .8X  g   Q hVPU                  V4      \        \        ^^^ 4      \        ^^^4      4      .8X  g   Q hVPU                  \        \        ^^^4      \        ^^^4      4      4      \        ^\        ^^4      \        ^
^4      4      .8X  g   Q hVPU                  \        \        ^^ ^ 4      R/R7      4      \        \        R0R1^ 4      \        R2R3R#4      4      .8X  g   Q hVPU                  \5        \        ^^^4      \        ^^^4      4      4      \        R#^^
4      .8X  g   Q hVPU                  \)        \        ^^^4      \        ^^^4      4      4      . 8X  g   Q hVPU                  \        \        ^^4      \        ^^4      4      4      \        \        ^^4      \        ^^4      ^ 4      .8X  g   Q h\3        \        ^^4      \        ^^4      4      p\        R4R R7      PU                  V4      \5        \        ^^4      \        ^^4      4      .8X  g   Q hVPU                  V4      \        \        ^ ^ ^ 4      \        ^^ ^ 4      4      .8X  g   Q hVPU                  V4      \        \        ^ ^ ^4      \        ^ ^^4      4      .8X  g   Q hVPU                  V4      \        \        ^ ^ ^ 4      \        ^R#^ 4      4      .8X  g   Q hVPU                  V4      . 8X  g   Q hVPU                  V4      \        \        ^ ^ ^4      \        ^^ ^4      4      .8X  g   Q hVPU                  V4      \        \        ^ ^ ^ 4      \        ^^ R14      4      .8X  g   Q hVP#                  4       V9   g   Q hVP#                  ^R
7      V9   g   Q hVPU                  VP                  4      ^ ,          P/                  VP                  4      '       g   Q hVPU                  V4      ^ ,          P/                  \        \        ^^^ 4      \        ^^^4      4      4      '       g   Q h\        R4R R7      pVPU                  \        SR54      4      ^ ,          P/                  \        R$R64      4      '       g   Q hVPU                  \5        SR54      4      ^ ,          P/                  \3        R$R54      4      '       g   Q hVPU                  \)        SR74      4      ^ ,          P/                  \)        SR74      4      '       g   Q hVPU                  \        SR8R7      4      ^ ,          P/                  V4      '       g   Q hVPU                  \        SR!R7      4      ^ ,          P/                  \        S^p\H        ,          ^ ^ 3R7      4      '       g   Q hVPU                  \        SR9R7      4      ^ ,          P/                  \        SR:R7      4      '       g   Q hVPU                  \        SR;R7      4      ^ ,          P/                  \        SR<R7      4      '       g   Q hVPU                  \        SR=R7      4      ^ ,          P/                  \        SR>R7      4      '       g   Q hVP#                  4       V9   g   Q h\W        VPU                  \5        \        ^ ^^4      \        ^^ ^4      4      4      4      ^ 8X  g   Q hVPU                  V4      ^ ,          P/                  V4      '       g   Q hVP/                  \        SR!R7      4      RJ g   Q hVP/                  V4      '       g   Q hVP/                  \        SR?R7      4      '       g   Q hVP/                  \        S^ ^ R1\A        ^4      ,          3R7      4      '       g   Q hVP/                  S4      RJ g   Q h\        \        \        RR4      \        R@R4      \        RR4      4      \        \        RR4      \        RAR4      \        RR4      4      4      p\        \        \        RR4      \        RBR4      \        RR4      4      \Y        R4      ) \Y        R4      ) \Y        R4      34      p\[        VPU                  V4       Uu. uF  pVP]                  ^4      NK  	  up4      R8X  g   Q hR# u upi )Cz	x y z u vT)realnormal_vectorc                     < \        S S S 4      # )Nr   )p1s   ]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/geometry/tests/test_plane.py<lambda>test_plane.<locals>.<lambda>   s    uRR0    F)direction_ratioc                  D    \         P                  ! \        ^ ^ ^ 4      4      # r   )r   are_concurrentr    r"   r   r    r!      s    u33GAq!4DEr"   c                      \        RRR7      # )   r   r)         r   r   r   r   r'   r"   r   r    r!      s    uYiHr"   c                  *   < S P                  RRR4      # )r)   r)   r   r)   r)   r)   r)   )r)   r)   r   )perpendicular_plane)ps   r   r    r!      s    q44Y	9Ur"   )seedl   q,5 l    PrN0l     I5 l   AP<IK l    @ k l     z5 l     cR~ l   muJ9 l   n!c z9.00000087501922z4.81170658872543e-13z0.0z[Point3D(4.0, -0.89, 2.3)]Nr0   r*   )r+   r+   r+   i)r)   r5   r)   r   r   r)   )r      r   )r5   r   r   r-   )r)   r)   )   r:   r:   )r)   r   r9   )r8   r   r,   r)   r   r   )r   r)   r   r/   )r   r   r8   )r8   r   r   )r+   r4   r,   iii)r)   r+   r   )r)   r7   r   )g?g333333?r   )   r)   r   )r   r   p   )   r   r)   )r   r   )r)   r   r?   )r   r?   r   )r8   r8   r@   )r)   r8   r   )r   r   r<   l6/, lAk3+ l1a )/r   r   r   r   r   
ValueErroris_coplanarr   equationr   r   
projectionr   r   projection_liner   r   random_pointperpendicular_linearbitrary_pointr   subsp2equalsr   r   r   argsis_parallelis_perpendiculardistancesimplifyr   r   r
   angle_betweenr   r	   r   r&   parallel_planer1   intersectionlenr   strn)xyzuvrJ   p3pl3pl4pl4bpl5pl6pl7pl8pl9pl10pl11l1l2l3ltrasbZrV   ir2   r   s                                @@r   
test_planerr      s_   Kd3MA!	Aq	B	Aq	B	Aq	B
B
C
)
,CR=D
)
,C
1a 	
:C
2r"*
=C
)
,C
*
-C:.D9-D	1a '!R"3	4B	2q!71a#3	4B	2q!71b!#4	5B
:01Rb" 1111R((r2):;;;;R((,,,,R((A75@@@9-99&Q-HHHH%1a(
CCCC::;;%1a(	BBBB<<a A!GacMB$6666<<a A!GaK///66R<<66R<<66R<<	)))	)))999999>>%1+&",,,wq!Q'(AAAAGGGG8O8Dq!eAqk:;Awq!Q'!Q!QQYZ[]^Q_)`aaaa8O8 	AAq!11!4A!&&A,q!-A44s?qtt3..q!((++++wuQ{E!QK@A!Q!Q"aQSZ[cdegh[ikstuwxky  |D  EF  HI  |J  TK  LL L Ls5A;a<=WXb!_hr1oxAOQXYabdfgYhjrsuwxjy  |D  EG  IJ  |K  RL  MM M M!!!&&)S-C-CA-FFFF??35(((??3??4B<((((??2%'''$$$$$$$$$$$$$---#u,,,Y	 :;;;;'5000<<++A12a777<<++A12a777<<++A./1444<<++A./144466??3..q12;;=BBB66??3..q12;;=BBBq!Wd2hYs1v-=b-@	$q'	#a&. HSVOB.aQ1AA48CPQF?STCT&V V V Vq$!aQqS!A#(FFFF<<1a()QtAwYq[888<<1a()QtAwY666<<1$$$<<!!!<<q   <<	'!Q"2GAq!4DEFWQ1%&6*+DG)A+6 6 6 6 6<<	'!Q"2GAq!4DEFWQ1%&6*+DG)A+6 6 6 6 6<<	'!Q"2GB24FGHAMMM<<	'"a"4gb!R6HIJaOOO<<	'"a"4gb!R6HIJWRB'(8,-d1gIaK8 8 8 8 8<<gaA.iHITRSWTTT<<gaA.
KLPQRVWXRYPYZ[P[[[[<<gaA.
KLPQQQQ S!RT)))S!Q&&&S!Q&&&VGAq!$4gaA6FGH	d1gai  U71a#3WQ15EFGT!WQY  Ywq!Q'7Aq9IJKQtCy[_   B#u,,,u$$$1a('!Q*:1a'!Q*, , , ,b")5R+<====#.%777$---
:EF
:HIgaA./5Aq9IDN4P P P P 	i#A  "eGAq!,<i&HHHH  Aq!12gaA	*+ + +   I6gaA
+, , , :UV1aWQ1-qAAaq!A  A&%9*====A  A&%:*>>>>!&&)==aQGgaA	*+ + + !$88AEBgaA
+, , , !&&)==aQGgaA	*+ + + 	ay)A  "eAY&GGGGC SE)))CFF#x///C wq!QAq!12%4 4 4 4F71Qq>71Qq>BC8Aq>8B?3H5 5 5 5E'!Q"2*M 
WS#q)73R+@ABC C CE'!Q"2GAq!4DEFArK   IgaA&61a8HIJbPPPDq!eAqk:;Q!Q3@5 5 5 5E!QKq!%A0==a@eAqk5A;'E) ) ) )C VGAq!,<gb!Q>O%P$QQQQT"vgaA.>1a@P'Q&RRRRC VGAq!,<gaQ>O%P$QQQQS!R'''D!fWQ1-=wr1a?P&Q%RRRRC VGAq!,<gb!S>Q%R$SSSS$$$#s*** CFF#A&--cff5555C #**6'!Q2BGAqRSDT+UVVVV
	
3CF2z23A6==d9m>\]]]]E"j1215<<SJ=WXXXXIb*56q9@@2zAZ[[[[E"K@A!DKKCPPPPE"J?@CJJrC"Ha#346 6 6 6E"J?@CJJr;/1 1 1 1E"J?@CJJr:.0 0 0 0E"MBCAFMMr:.0 0 0 0$$$sgaA&61a8H IJKqPPPC #**3////::eBj9:eCCC::c???::eBk:;;;;::eBq!Sa[.ABCCCC::b>U""" 
? !13CD /BD @ !1?C /BD
EB 
wxAAAC %&&+A)B(B%
B  34 31A 345'( ( (4s   g/Ahc            	         \        \        ^^^4      RR7      p \        ^^4      pV P                  V4      \        \	        ^^4      \	        ^^4      \	        ^^4      4      8X  g   Q h\        ^ ^ 4      \        ^ ^4      rRp\        W#R7      pVP                  W!4      \        \        ^ ^ ^ 4      R4      8X  g   Q h\        RRR4      P                  R	4      \        ^^^ 4      .8X  g   Q hR# )
r)   r   Nr0   r6   r;   )r)   r+   r)   )r+   r)   r   )r,   r)   r+   )r+   r)   )r   r   r   rD   r   r1   rS   )Aro   rm   rp   r2   s        r   test_dimension_normalizationru      s    gaAi8AaA<<?eHQNHQNHQPQNSSSSA;1qAa!A  &%1a0@)*LLLLIy 

,v
5Aq>"23 3 3r"   c                    aa \        R 4      w  or\        ^ ^ ^ 4      \        ^ ^ ^4      \        ^ ^^ 4      rCp\        W#V4      oSP                  RS4      S\	        ^\        ^4      ,          ^,          4      /8X  g   Q hSP                  RW4      V ^V^/8X  g   Q hSP                  VS4      V8X  g   Q h\        \        VV3R l4       \        \        VV3R l4       \        \        VV3R l4       R# )zt, u vc                  (   < S P                  RS4      # )r)   r;   parameter_valuer2   rk   s   r   r    &test_parameter_value.<locals>.<lambda>
  s    q00A>r"   c            	      d   < S P                  \        \        ^ ^ 4      \        ^^4      4      S4      # r%   )ry   r   r   rz   s   r   r    r{     s&    q00eAqk5A;1OQRSr"   c                  *   < S P                  RS^4      # )r   r   r9   r+   rx   rz   s   r   r    r{     s    q00QBr"   Nr~   )r   r   r   ry   r	   r   r   rA   )rZ   r[   r   rJ   r\   r2   rk   s        @@r   test_parameter_valuer     s    hGAqq!Qq!Qq!QBBbbAZ+4$r(
23F/GGGGZ.1aA,>>>R#r)))
:>?
:ST
:BCr"   N) sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr	   r
   r   sympy.geometryr   r   r   r   r   r   r   r   r   r   sympy.geometry.utilr   sympy.testing.pytestr   rr   ru   r   r'   r"   r   <module>r      s8    - " . 9 E E f f f , 'h(V
3	Dr"   