+
    i'                         R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ R	IHt ^ R
IHt  ! R R]4      tR# )zCCurves in 2-dimensional Euclidean space.

Contains
========
Curve

)sqrt)diff)Tuple)_symbol)GeometryEntityGeometrySet)Point)	integrate)Matrix	rot_axis3)is_sequence)prec_to_dpsc                      a  ] tR t^t o RtR tR tR tRR ltRR lt	]
R 4       t]
R 4       t]
R	 4       t]
R
 4       t]
R 4       t]
R 4       tRR ltRR ltRR ltRR ltRtV tR# )Curvea  A curve in space.

A curve is defined by parametric functions for the coordinates, a
parameter and the lower and upper bounds for the parameter value.

Parameters
==========

function : list of functions
limits : 3-tuple
    Function parameter and lower and upper bounds.

Attributes
==========

functions
parameter
limits

Raises
======

ValueError
    When `functions` are specified incorrectly.
    When `limits` are specified incorrectly.

Examples
========

>>> from sympy import Curve, sin, cos, interpolate
>>> from sympy.abc import t, a
>>> C = Curve((sin(t), cos(t)), (t, 0, 2))
>>> C.functions
(sin(t), cos(t))
>>> C.limits
(t, 0, 2)
>>> C.parameter
t
>>> C = Curve((t, interpolate([1, 4, 9, 16], t)), (t, 0, 1)); C
Curve((t, t**2), (t, 0, 1))
>>> C.subs(t, 4)
Point2D(4, 16)
>>> C.arbitrary_point(a)
Point2D(a, a**2)

See Also
========

sympy.core.function.Function
sympy.polys.polyfuncs.interpolate

c                >   \        V4      '       d   \        V4      ^8w  d   \        R\        V4      ,          4      h\        V4      '       d   \        V4      ^8w  d   \        R\        V4      ,          4      h\        P
                  ! V \        V!  \        V!  4      # )   z3Function argument should be (x(t), y(t)) but got %sz3Limit argument should be (t, tmin, tmax) but got %s)r   len
ValueErrorstrr   __new__r   )clsfunctionlimitss   &&&t/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/geometry/curve.pyr   Curve.__new__L   s    8$$H(: "8}- . .6""c&kQ&6 "6{+ , , %%c5(+;UF^LL    c                :    V P                  V P                  V4      # N)subs	parameter)selffs   &&r   __call__Curve.__call__V   s    yy++r   c           	         WP                   8X  d2   \        V P                   Uu. uF  q3P                  W4      NK  	  up!  # R # u upi r   )r   r   	functionsr   )r    oldnewr!   s   &&& r   
_eval_subsCurve._eval_subsY   s9    .. T^^D^66#+^DEE !Ds   Ac           
        V P                   w  pw  rEp\        V4      p\        V Uu. uF  qP                  ! RR V/VB NK  	  up4      pWV3 Uu. uF  qP                  ! RR V/VB NK  	  upw  rVV P	                  W4WV34      # u upi u upi )n )argsr   tupleevalffunc)	r    precoptionsr!   tabdpsis	   &&,      r   _eval_evalfCurve._eval_evalf]   s    yy9A!$a8a77,S,G,a89456:6a)#))6:yyI&& 9:s   BBc           	        Vf   \        V P                  !  # \        WP                  RR7      pV P                  pVP                  VP                  8w  d?   VP                  R V P
                   4       9   d   \        RVP                  ,          4      h\        V P                   Uu. uF  qDP                  W24      NK  	  up!  # u upi )a  A parameterized point on the curve.

Parameters
==========

parameter : str or Symbol, optional
    Default value is 't'.
    The Curve's parameter is selected with None or self.parameter
    otherwise the provided symbol is used.

Returns
=======

Point :
    Returns a point in parametric form.

Raises
======

ValueError
    When `parameter` already appears in the functions.

Examples
========

>>> from sympy import Curve, Symbol
>>> from sympy.abc import s
>>> C = Curve([2*s, s**2], (s, 0, 2))
>>> C.arbitrary_point()
Point2D(2*t, t**2)
>>> C.arbitrary_point(C.parameter)
Point2D(2*s, s**2)
>>> C.arbitrary_point(None)
Point2D(2*s, s**2)
>>> C.arbitrary_point(Symbol('a'))
Point2D(2*a, a**2)

See Also
========

sympy.geometry.point.Point

Trealc              3   8   "   T F  qP                   x  K  	  R # 5ir   )name).0r!   s   & r   	<genexpr>(Curve.arbitrary_point.<locals>.<genexpr>   s     @.?ff.?s   zFSymbol %s already appears in object and cannot be used as a parameter.)r   r%   r   r   r>   free_symbolsr   r   )r    r   tnewr3   ws   &&   r   arbitrary_pointCurve.arbitrary_pointd   s    X $..))y..t<NNII		@d.?.?@@ 57;yyA B B?1vva?@@?s   'Cc                    \        4       pV P                  V P                  R,          ,            F  pWP                  ,          pK  	  VP	                  V P
                  04      pV# )aT  Return a set of symbols other than the bound symbols used to
parametrically define the Curve.

Returns
=======

set :
    Set of all non-parameterized symbols.

Examples
========

>>> from sympy.abc import t, a
>>> from sympy import Curve
>>> Curve((t, t**2), (t, 0, 2)).free_symbols
set()
>>> Curve((t, t**2), (t, a, 2)).free_symbols
{a}

   NN)setr%   r   rB   
differencer   )r    freer4   s   &  r   rB   Curve.free_symbols   sO    , u$++b/11ANN"D 2/0r   c                :    \        V P                  ^ ,          4      # )zThe dimension of the curve.

Returns
=======

int :
    the dimension of curve.

Examples
========

>>> from sympy.abc import t
>>> from sympy import Curve
>>> C = Curve((t, t**2), (t, 0, 2))
>>> C.ambient_dimension
2

)r   r-   r    s   &r   ambient_dimensionCurve.ambient_dimension   s    * 499Q<  r   c                (    V P                   ^ ,          # )a  The functions specifying the curve.

Returns
=======

functions :
    list of parameterized coordinate functions.

Examples
========

>>> from sympy.abc import t
>>> from sympy import Curve
>>> C = Curve((t, t**2), (t, 0, 2))
>>> C.functions
(t, t**2)

See Also
========

parameter

r-   rO   s   &r   r%   Curve.functions       2 yy|r   c                (    V P                   ^,          # )a  The limits for the curve.

Returns
=======

limits : tuple
    Contains parameter and lower and upper limits.

Examples
========

>>> from sympy.abc import t
>>> from sympy import Curve
>>> C = Curve([t, t**3], (t, -2, 2))
>>> C.limits
(t, -2, 2)

See Also
========

plot_interval

rS   rO   s   &r   r   Curve.limits   rU   r   c                6    V P                   ^,          ^ ,          # )zThe curve function variable.

Returns
=======

Symbol :
    returns a bound symbol.

Examples
========

>>> from sympy.abc import t
>>> from sympy import Curve
>>> C = Curve([t, t**2], (t, 0, 2))
>>> C.parameter
t

See Also
========

functions

rS   rO   s   &r   r   Curve.parameter  s    2 yy|Ar   c                   a  \        \        V 3R lS P                   4       4      4      p\        VS P                  4      # )zThe curve length.

Examples
========

>>> from sympy import Curve
>>> from sympy.abc import t
>>> Curve((t, t), (t, 0, 1)).length
sqrt(2)

c              3   l   <"   T F)  p\        VSP                  ^ ,          4      ^,          x  K+  	  R# 5i    N)r   r   )r?   r0   r    s   & r   r@   Curve.length.<locals>.<genexpr>,  s(     V~tT$A7::~s   14)r   sumr%   r	   r   )r    	integrands   f r   lengthCurve.length  s/     Vt~~VVW	DKK00r   c                x    \        WP                  RR7      pV.\        V P                  R,          4      ,           # )a;  The plot interval for the default geometric plot of the curve.

Parameters
==========

parameter : str or Symbol, optional
    Default value is 't';
    otherwise the provided symbol is used.

Returns
=======

List :
    the plot interval as below:
        [parameter, lower_bound, upper_bound]

Examples
========

>>> from sympy import Curve, sin
>>> from sympy.abc import x, s
>>> Curve((x, sin(x)), (x, 1, 2)).plot_interval()
[t, 1, 2]
>>> Curve((x, sin(x)), (x, 1, 2)).plot_interval(s)
[s, 1, 2]

See Also
========

limits : Returns limits of the parameter interval

Tr;   rH   )r   r   listr   )r    r   r3   s   && r   plot_intervalCurve.plot_interval/  s/    B I~~D9sT$++b/***r   Nc                   V'       d   \        V^R7      ) pM\        ^ ^ 4      pV P                  ! VP                  !  p\        VP                  4      pVP                  ^ 4       \        ^^V4      pV\        V4      ,          pV P                  VR,          P                  4       ^ ,          V P                  4      pV) pVP                  ! VP                  !  # )af  This function is used to rotate a curve along given point ``pt`` at given angle(in radian).

Parameters
==========

angle :
    the angle at which the curve will be rotated(in radian) in counterclockwise direction.
    default value of angle is 0.

pt : Point
    the point along which the curve will be rotated.
    If no point given, the curve will be rotated around origin.

Returns
=======

Curve :
    returns a curve rotated at given angle along given point.

Examples
========

>>> from sympy import Curve, pi
>>> from sympy.abc import x
>>> Curve((x, x), (x, 0, 1)).rotate(pi/2)
Curve((-x, x), (x, 0, 1))

dim)r]   :Nr   N)r   	translater-   rd   r%   appendr
   r   r0   tolistr   )r    angleptrvr!   s   &&&  r   rotateCurve.rotateS  s    : ""BqB^^RWW%	1aO	YuYYqx(+T[[9S||RWW%%r   c                    V'       dP   \        V^R7      pV P                  ! V) P                  !  P                  W4      P                  ! VP                  !  # V P                  w  rEV P                  WA,          WR,          3V P                  4      # )a  Override GeometryEntity.scale since Curve is not made up of Points.

Returns
=======

Curve :
    returns scaled curve.

Examples
========

>>> from sympy import Curve
>>> from sympy.abc import x
>>> Curve((x, x), (x, 0, 1)).scale(2)
Curve((2*x, x), (x, 0, 1))

rh   )r   rj   r-   scaler%   r0   r   )r    xyrn   fxfys   &&&&  r   rs   Curve.scale}  sj    $ rq!B>>RC::.44Q:DDbggNNyy"$t{{33r   c                r    V P                   w  r4V P                  W1,           WB,           3V P                  4      # )zTranslate the Curve by (x, y).

Returns
=======

Curve :
    returns a translated curve.

Examples
========

>>> from sympy import Curve
>>> from sympy.abc import x
>>> Curve((x, x), (x, 0, 1)).translate(1, 2)
Curve((x + 1, x + 2), (x, 0, 1))

)r%   r0   r   )r    rt   ru   rv   rw   s   &&&  r   rj   Curve.translate  s-    $ yy"&"&)4;;77r   r,   )   )r3   r\   )rI   rI   N)r]   r]   )__name__
__module____qualname____firstlineno____doc__r   r"   r(   r8   rE   propertyrB   rP   r%   r   r   ra   re   rp   rs   rj   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     3jM,F'5An  6 ! !,  4  4  4 1 1"+H(&T408 8r   r   N)r   (sympy.functions.elementary.miscellaneousr   
sympy.corer   sympy.core.containersr   sympy.core.symbolr   sympy.geometry.entityr   r   sympy.geometry.pointr   sympy.integralsr	   sympy.matricesr
   r   sympy.utilities.iterablesr   mpmath.libmp.libmpfr   r   r,   r   r   <module>r      s8    :  ' % = & % , 1 +R8K R8r   