+
    ‹°³jº'  ã                   ó    € 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   &&&ÚU/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/geometry/curve.pyr   ÚCurve.__new__L   sŠ   € Ü˜8×$Ò$¬¨H«¸Ô(:Üð Ü" 8›}õ-ó .ð .ä˜6×"Ò"¤c¨&£k°QÔ&6Üð Ü" 6›{õ+ó ,ð ,ô ×%Ò% c¬5°(Ñ+;¼UÀF¹^ÓLÐLó    c                ó:   € V P                  V P                  V4      # ©N)ÚsubsÚ	parameter)ÚselfÚfs   &&r   Ú__call__ÚCurve.__call__V   s   € Ø�y‰y˜Ÿ™¨Ó+Ð+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±^°Ÿ6™6 #Ö+±^ÑDÑEÐEñ !ùÚDs   ¤Ac           
     ó  € V P                   w  pw  rEp\        V4      p\        V Uu. uF  qˆP                  ! RR V/VB NK  	  up4      pWV3 Uu. uF  qˆP                  ! 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‡   € Ø—y‘y‰ˆ‰9ˆA�!Ü˜$ÓˆÜ±aÓ8±a°—7’7Ñ,˜SÐ, GÔ,±aÑ8Ó9ˆØ45±6Ó:±6¨a—’Ñ)˜#Ð) Ô)±6Ñ:‰ˆØ�y‰y˜ ˜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   é € Ð@Ñ.?¨ŸfžfÓ.?ù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Ô<ˆØ�N‰NˆØ�I‰I˜Ÿ™ÔØ—	‘	Ñ@¨d×.?Ò.?Ó@Ô@Üð 5Ø7;·y±yõAó Bð Bä°·²Ó?±¨1—v‘v˜a–±Ñ?Ñ@Ð@ùÒ?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Ð1ˆAØ—N‘NÕ"ŠDñ 2à�‰ §¡Ð/Ó0ˆØˆr   c                ó:   € \        V P                  ^ ,          4      # )zÛThe 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   € ô* �4—9‘9˜Q•<Ó Ð 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 �y‰y˜�|Ð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                   ^,          ^ ,          # )zõThe 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 �y‰y˜�|˜A�Ðr   c                ó€   a € \        \        V 3R lS P                   4       4      4      p\        VS P                  4      # )z‹The 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Á~¸tœT $¨¯©°A­Ó7¸×:Ò:Ã~ùs   ƒ14)r   Úsumr%   r	   r   )r    Ú	integrands   f r   ÚlengthÚCurve.length  s/   ø€ ô œÔVÀtÇ~Â~ÓVÓVÓWˆ	Ü˜ D§K¡KÓ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ˆØˆs”T˜$Ÿ+™+ 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Ø�^Š^˜RŸW™WÑ%ˆÜ�—‘ÓˆØ	�‰�ŒÜ�1�a˜‹OˆØ	ŒY�uÓÕˆØ�Y‰Y�q˜•x—‘Ó(¨Õ+¨T¯[©[Ó9ˆØˆSˆØ�|Š|˜RŸW™WÑ%Ð%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   € ÷$ Ü�r˜qÔ!ˆBØ—>’> R C§:¡:Ñ.×4Ñ4°QÓ:×DÒDÀbÇgÁgÑNÐNØ—‘‰ˆØ�y‰y˜"�$ ¥˜ t§{¡{Ó3Ð3r   c                ór   € V P                   w  r4V P                  W1,           WB,           3V P                  4      # )zôTranslate 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-   € ð$ —‘‰ˆØ�y‰y˜"�& "¥&Ð)¨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4÷0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8ˆKö R8r   