+
    i)                         R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	H
t
 ^ RIHtHt ^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt  ! R R]
4      tR# )z4Parabolic geometrical entity.

Contains
* Parabola

)S)ordered)_symbolsymbols)GeometryEntityGeometrySet)PointPoint2D)LineLine2DRay2D	Segment2DLinearEntity3D)Ellipse)sign)simplify)solvec                      a  ] tR t^t o RtRR lt]R 4       t]R 4       t]R 4       t	]R 4       t
RR lt]R	 4       t]R
 4       tR t]R 4       t]R 4       tRtV tR# )Parabolaa  A parabolic GeometryEntity.

A parabola is declared with a point, that is called 'focus', and
a line, that is called 'directrix'.
Only vertical or horizontal parabolas are currently supported.

Parameters
==========

focus : Point
    Default value is Point(0, 0)
directrix : Line

Attributes
==========

focus
directrix
axis of symmetry
focal length
p parameter
vertex
eccentricity

Raises
======
ValueError
    When `focus` is not a two dimensional point.
    When `focus` is a point of directrix.
NotImplementedError
    When `directrix` is neither horizontal nor vertical.

Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7,8)))
>>> p1.focus
Point2D(0, 0)
>>> p1.directrix
Line2D(Point2D(5, 8), Point2D(7, 8))

Nc                    V'       d   \        V^R7      pM\        ^ ^ 4      p\        V4      pVP                  V4      '       d   \        R4      h\        P
                  ! WV3/ VB # )   )dimz*The focus must not be a point of directrix)r   r
   contains
ValueErrorr   __new__)clsfocus	directrixkwargss   &&&,w/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/geometry/parabola.pyr   Parabola.__new__A   sZ    %Q'E!QKEO	e$$IJJ%%c)FvFF    c                    ^# )a   Returns the ambient dimension of parabola.

Returns
=======

ambient_dimension : integer

Examples
========

>>> from sympy import Parabola, Point, Line
>>> f1 = Point(0, 0)
>>> p1 = Parabola(f1, Line(Point(5, 8), Point(7, 8)))
>>> p1.ambient_dimension
2

 selfs   &r   ambient_dimensionParabola.ambient_dimensionO   s    & r!   c                L    V P                   P                  V P                  4      # )a  Return the axis of symmetry of the parabola: a line
perpendicular to the directrix passing through the focus.

Returns
=======

axis_of_symmetry : Line

See Also
========

sympy.geometry.line.Line

Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7, 8)))
>>> p1.axis_of_symmetry
Line2D(Point2D(0, 0), Point2D(0, 1))

)r   perpendicular_liner   r$   s   &r   axis_of_symmetryParabola.axis_of_symmetryd   s    0 ~~00<<r!   c                (    V P                   ^,          # )a1  The directrix of the parabola.

Returns
=======

directrix : Line

See Also
========

sympy.geometry.line.Line

Examples
========

>>> from sympy import Parabola, Point, Line
>>> l1 = Line(Point(5, 8), Point(7, 8))
>>> p1 = Parabola(Point(0, 0), l1)
>>> p1.directrix
Line2D(Point2D(5, 8), Point2D(7, 8))

argsr$   s   &r   r   Parabola.directrix~       0 yy|r!   c                "    \         P                  # )a7  The eccentricity of the parabola.

Returns
=======

eccentricity : number

A parabola may also be characterized as a conic section with an
eccentricity of 1. As a consequence of this, all parabolas are
similar, meaning that while they can be different sizes,
they are all the same shape.

See Also
========

https://en.wikipedia.org/wiki/Parabola


Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7, 8)))
>>> p1.eccentricity
1

Notes
-----
The eccentricity for every Parabola is 1 by definition.

)r   Oner$   s   &r   eccentricityParabola.eccentricity   s    B uur!   c                @   \        VRR7      p\        VRR7      pV P                  P                  pV\        P                  J d`   ^V P
                  ,          WP                  P                  ,
          ,          pW P                  P                  ,
          ^,          pWE,
          # V^ 8X  d`   ^V P
                  ,          W P                  P                  ,
          ,          pWP                  P                  ,
          ^,          pWE,
          # V P                  w  rgV P                  P                  R,          w  rW,
          ^,          W',
          ^,          ,           pV P                  P                  W4      ^,          V^,          V	^,          ,           ,          pWE,
          # )a  The equation of the parabola.

Parameters
==========
x : str, optional
    Label for the x-axis. Default value is 'x'.
y : str, optional
    Label for the y-axis. Default value is 'y'.

Returns
=======
equation : SymPy expression

Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7, 8)))
>>> p1.equation()
-x**2 - 16*y + 64
>>> p1.equation('f')
-f**2 - 16*y + 64
>>> p1.equation(y='z')
-x**2 - 16*z + 64

Treal:Nr   N)r   r   sloper   Infinityp_parametervertexxyr   coefficientsequation)
r%   r<   r=   mt1t2abcds
   &&&       r   r?   Parabola.equation   s%   6 AD!AD!NN  

?d&&'1{{}}+<=Bkkmm#a'B w !Vd&&'1{{}}+<=Bkkmm#a'B w	 ::DA>>..r2DA%!quqj(B((.11a4!Q$;?Bwr!   c                b    V P                   P                  V P                  4      pV^,          pV# )a  The focal length of the parabola.

Returns
=======

focal_lenght : number or symbolic expression

Notes
=====

The distance between the vertex and the focus
(or the vertex and directrix), measured along the axis
of symmetry, is the "focal length".

See Also
========

https://en.wikipedia.org/wiki/Parabola

Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7, 8)))
>>> p1.focal_length
4

)r   distancer   )r%   rI   focal_lengths   &  r   rJ   Parabola.focal_length   s+    < >>**4::6zr!   c                (    V P                   ^ ,          # )a  The focus of the parabola.

Returns
=======

focus : Point

See Also
========

sympy.geometry.point.Point

Examples
========

>>> from sympy import Parabola, Point, Line
>>> f1 = Point(0, 0)
>>> p1 = Parabola(f1, Line(Point(5, 8), Point(7, 8)))
>>> p1.focus
Point2D(0, 0)

r-   r$   s   &r   r   Parabola.focus
  r0   r!   c           
     r   \        RRR7      w  r#V P                  4       p\        V\        4      '       dZ   W9   d   V.# \	        \        \        WAP                  4       .W#.RR7      ^,           Uu. uF  p\        V4      NK  	  up4      4      # \        V\        4      '       dK   \        VP                  W!P                  ^ ,          3W1P                  ^,          3.4      4      ^ 8X  d   V.# . # \        V\        \        34      '       d   \        V\        VP                  ^ ,          VP                  ^,          4      P                  4       .W#.RR7      ^,          p\	        \        V Uu. uF  qUV9   g   K  \        V4      NK  	  up4      4      # \        V\        \         34      '       dQ   \	        \        \        WAP                  4       .W#.RR7      ^,           Uu. uF  p\        V4      NK  	  up4      4      # \        V\"        4      '       d   \%        R4      h\%        R4      hu upi u upi u upi )ab  The intersection of the parabola and another geometrical entity `o`.

Parameters
==========

o : GeometryEntity, LinearEntity

Returns
=======

intersection : list of GeometryEntity objects

Examples
========

>>> from sympy import Parabola, Point, Ellipse, Line, Segment
>>> p1 = Point(0,0)
>>> l1 = Line(Point(1, -2), Point(-1,-2))
>>> parabola1 = Parabola(p1, l1)
>>> parabola1.intersection(Ellipse(Point(0, 0), 2, 5))
[Point2D(-2, 0), Point2D(2, 0)]
>>> parabola1.intersection(Line(Point(-7, 3), Point(12, 3)))
[Point2D(-4, 3), Point2D(4, 3)]
>>> parabola1.intersection(Segment((-12, -65), (14, -68)))
[]

zx yTr6   )setz5Entity must be two dimensional, not three dimensionalzWrong type of argument were put)r   r?   
isinstancer   listr   r   r   r	   r   subs_argsr   r   r   pointsr   r   	TypeError)r%   or<   r=   parabola_eqiresults   &&     r   intersectionParabola.intersection$  s   8 u4(mmoa""ys
Gu **,/!T8CCD8F %G 8F!U1X 8F %G H I I7##((1ggaj/Awwqz?)KLMQRRs
	Iu-..Kqxx{AHHQK099;=D""#%F V FVAvV FGHHFG,--Ujjl+aV6??@6B !C 6B 6B !C D E E>**STT=>>%%G !G!Cs   0H*+H/8H/H4c                ^   V P                   P                  pV\        P                  J dL   V P                   P                  ^,          p\        V P                  P                  ^ ,          V,           4      pMV^ 8X  dL   V P                   P                  ^,          p\        V P                  P                  ^,          V,           4      pMUV P                   P                  V P                  4      p\        V P                  P                  VP                  ,
          4      pW0P                  ,          # )ae  P is a parameter of parabola.

Returns
=======

p : number or symbolic expression

Notes
=====

The absolute value of p is the focal length. The sign on p tells
which way the parabola faces. Vertical parabolas that open up
and horizontal that open right, give a positive value for p.
Vertical parabolas that open down and horizontal that open left,
give a negative value for p.


See Also
========

https://www.sparknotes.com/math/precalc/conicsections/section2/

Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7, 8)))
>>> p1.p_parameter
-4

)r   r8   r   r9   r>   r   r   r.   
projectionr<   rJ   )r%   r@   r<   pr=   rF   s   &     r   r:   Parabola.p_parameterZ  s    B NN  

?++A.ATZZ__Q'!+,A!V++A.ATZZ__Q'!+,A))$**5ATZZ\\ACC'(A$$$$r!   c                   V P                   pV P                  P                  pV\        P                  J dB   \        VP                  ^ ,          V P                  ,
          VP                  ^,          4      pV# V^ 8X  dB   \        VP                  ^ ,          VP                  ^,          V P                  ,
          4      pV# V P                  P                  V 4      ^ ,          pV# )a  The vertex of the parabola.

Returns
=======

vertex : Point

See Also
========

sympy.geometry.point.Point

Examples
========

>>> from sympy import Parabola, Point, Line
>>> p1 = Parabola(Point(0, 0), Line(Point(5, 8), Point(7, 8)))
>>> p1.vertex
Point2D(0, 4)

)
r   r   r8   r   r9   r   r.   r:   r*   rZ   )r%   r   r@   r;   s   &   r   r;   Parabola.vertex  s    . 

NN  

?5::a=4+;+;;UZZ]KF
 	 !V5::a=%**Q-$:J:J*JKF  **77=a@Fr!   r#   )NN)r<   r=   )__name__
__module____qualname____firstlineno____doc__r   propertyr&   r*   r   r3   r?   rJ   r   rZ   r:   r;   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     *XG  ( = =2  2    D*X    D  24?l *% *%X  r!   r   N)rf   
sympy.corer   sympy.core.sortingr   sympy.core.symbolr   r   sympy.geometry.entityr   r   sympy.geometry.pointr   r	   sympy.geometry.liner
   r   r   r   r   sympy.geometry.ellipser   sympy.functionsr   sympy.simplify.simplifyr   sympy.solvers.solversr   r   r#   r!   r   <module>ru      s;     & . = / N N *   , 'R{ Rr!   