+
    ‹°³jbO  ã                  ó  € ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHtHtHtHt ^ RIHt ^ RI H!t!H"t"H#t# ^ RI$H%t%  ! R R]4      t&R t'R]'! ]4      ./]PP                  ]&&    ! R R]&]
4      t) ! R R]]&4      t* ! R R]]&4      t+ ! R R]]&4      t, ! R R]&4      t- ! R R]4      t.R  t/R! t0]&]&n1        ]+]&n2        ]*]&n3        ],]&n4        ])]&n5        ],! 4       ]&n6        R"# )#é    )Úannotations)Úproduct)ÚAddÚBasic)Ú	StdFactKB)Ú
AtomicExprÚExpr)ÚPow)ÚS)Údefault_sort_key)Úsympify©Úsqrt)ÚImmutableDenseMatrix)ÚBasisDependentZeroÚBasisDependentÚBasisDependentMulÚBasisDependentAdd)Ú
CoordSys3D)ÚDyadicÚ
BaseDyadicÚ	DyadicAdd)Ú
VectorKindc                  óT  € ] tR t^t$ RtRtRtRtR]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   ]	! 4       t
R]R&   ]R 4       tR tR tR tR tR t]P                  ]n        R tR t]P                  ]n        R tR R lt]R 4       tR t]P                  ]n        R tR tR tRtR# )!ÚVectorz
Super class for all Vector classes.
Ideally, neither this class nor any of its subclasses should be
instantiated by the user.
FTg      (@ztype[Vector]Ú
_expr_typeÚ	_mul_funcÚ	_add_funcÚ
_zero_funcÚ
_base_funcÚ
VectorZeroÚzeror   Úkindc                ó   € V P                   # )a*  
Returns the components of this vector in the form of a
Python dictionary mapping BaseVector instances to the
corresponding measure numbers.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> C = CoordSys3D('C')
>>> v = 3*C.i + 4*C.j + 5*C.k
>>> v.components
{C.i: 3, C.j: 4, C.k: 5}

)Ú_components©Úselfs   &ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/vector/vector.pyÚ
componentsÚVector.components(   s   € ð& ×ÑÐó    c                ó$   € \        W ,          4      # )z'
Returns the magnitude of this vector.
r   r&   s   &r(   Ú	magnitudeÚVector.magnitude=   s   € ô �D•KÓ Ð r+   c                ó.   € W P                  4       ,          # )z0
Returns the normalized version of this vector.
)r-   r&   s   &r(   Ú	normalizeÚVector.normalizeC   s   € ð —n‘nÓ&Õ&Ð&r+   c                óV   € W,
          pVP                  V4      pVP                  ^ 4      # )aå  
Check if ``self`` and ``other`` are identically equal vectors.

Explanation
===========

Checks if two vector expressions are equal for all possible values of
the symbols present in the expressions.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> from sympy.abc import x, y
>>> from sympy import pi
>>> C = CoordSys3D('C')

Compare vectors that are equal or not:

>>> C.i.equals(C.j)
False
>>> C.i.equals(C.i)
True

These two vectors are equal if `x = y` but are not identically equal
as expressions since for some values of `x` and `y` they are unequal:

>>> v1 = x*C.i + C.j
>>> v2 = y*C.i + C.j
>>> v1.equals(v1)
True
>>> v1.equals(v2)
False

Vectors from different coordinate systems can be compared:

>>> D = C.orient_new_axis('D', pi/2, C.i)
>>> D.j.equals(C.j)
False
>>> D.j.equals(C.k)
True

Parameters
==========

other: Vector
    The other vector expression to compare with.

Returns
=======

``True``, ``False`` or ``None``. A return value of ``True`` indicates
that the two vectors are identically equal. A return value of ``False``
indicates that they are not. In some cases it is not possible to
determine if the two vectors are identically equal and ``None`` is
returned.

See Also
========

sympy.core.expr.Expr.equals
)ÚdotÚequals)r'   ÚotherÚdiffÚ	diff_mag2s   &&  r(   r4   ÚVector.equalsI   s*   € ð~ �|ˆØ—H‘H˜T“Nˆ	Ø×Ñ Ó"Ð"r+   c                ó@  a € \        V\        4      '       d¥   \        S \        4      '       d   \        P                  # \        P                  pVP
                  P                  4        FN  w  r4VP                  ^ ,          P                  S 4      pW%V,          VP                  ^,          ,          ,          pKP  	  V# ^ RI	H
p \        W\        34      '       g#   \        \        V4      R,           R,           4      h\        W4      '       d	   V 3R lpV# \        S V4      # )aV  
Returns the dot product of this Vector, either with another
Vector, or a Dyadic, or a Del operator.
If 'other' is a Vector, returns the dot product scalar (SymPy
expression).
If 'other' is a Dyadic, the dot product is returned as a Vector.
If 'other' is an instance of Del, returns the directional
derivative operator as a Python function. If this function is
applied to a scalar expression, it returns the directional
derivative of the scalar field wrt this Vector.

Parameters
==========

other: Vector/Dyadic/Del
    The Vector or Dyadic we are dotting with, or a Del operator .

Examples
========

>>> from sympy.vector import CoordSys3D, Del
>>> C = CoordSys3D('C')
>>> delop = Del()
>>> C.i.dot(C.j)
0
>>> C.i & C.i
1
>>> v = 3*C.i + 4*C.j + 5*C.k
>>> v.dot(C.k)
5
>>> (C.i & delop)(C.x*C.y*C.z)
C.y*C.z
>>> d = C.i.outer(C.i)
>>> C.i.dot(d)
C.i

)ÚDelz is not a vector, dyadic or zdel operatorc                ó"   <€ ^ RI Hp V! V S4      # )r   )Údirectional_derivative)Úsympy.vector.functionsr<   )Úfieldr<   r'   s   & €r(   r<   Ú*Vector.dot.<locals>.directional_derivativeÃ   s   ø€ ÝIÙ-¨e°TÓ:Ð:r+   )Ú
isinstancer   r!   r   r"   r)   ÚitemsÚargsr3   Úsympy.vector.deloperatorr:   Ú	TypeErrorÚstr)r'   r5   ÚoutvecÚkÚvÚvect_dotr:   r<   s   f&      r(   r3   Ú
Vector.dotŒ   sÞ   ø€ ôP �eœV×$Ò$Ü˜$¤
×+Ò+Ü—{‘{Ð"Ü—[‘[ˆFØ×(Ñ(×.Ñ.Ö0‘�ØŸ6™6 !�9Ÿ=™=¨Ó.�Ø Q�,¨¯©°­Õ2Õ2’ñ 1ð ˆMÝ0Ü˜%¤v ×/Ò/ÜœC ›JÐ)GÕGØ*õ+ó ,ð ,ô �e×!Ò!õ;ð *Ð)ä�4˜ÓÐr+   c                	ó$   € V P                  V4      # ©N©r3   ©r'   r5   s   &&r(   Ú__and__ÚVector.__and__Ê   s   € Ø�x‰x˜‹Ðr+   c                ó   € \        V\        4      '       d¯   \        V \        4      '       d   \        P                  # \        P                  pVP                  P                  4        FX  w  r4V P                  VP                  ^ ,          4      pVP                  VP                  ^,          4      pW$V,          ,          pKZ  	  V# \        W4      # )a  
Returns the cross product of this Vector with another Vector or
Dyadic instance.
The cross product is a Vector, if 'other' is a Vector. If 'other'
is a Dyadic, this returns a Dyadic instance.

Parameters
==========

other: Vector/Dyadic
    The Vector or Dyadic we are crossing with.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> C = CoordSys3D('C')
>>> C.i.cross(C.j)
C.k
>>> C.i ^ C.i
0
>>> v = 3*C.i + 4*C.j + 5*C.k
>>> v ^ C.i
5*C.j + (-4)*C.k
>>> d = C.i.outer(C.i)
>>> C.j.cross(d)
(-1)*(C.k|C.i)

)	r@   r   r!   r"   r)   rA   ÚcrossrB   Úouter)r'   r5   ÚoutdyadrG   rH   Úcross_productrS   s   &&     r(   rR   ÚVector.crossÏ   s™   € ô@ �eœV×$Ò$Ü˜$¤
×+Ò+Ü—{‘{Ð"Ü—k‘kˆGØ×(Ñ(×.Ñ.Ö0‘�Ø $§
¡
¨1¯6©6°!­9Ó 5�Ø%×+Ñ+¨A¯F©F°1­IÓ6�Ø˜u�9Õ$’ñ 1ð ˆNä�TÓ!Ð!r+   c                	ó$   € V P                  V4      # rL   ©rR   rN   s   &&r(   Ú__xor__ÚVector.__xor__û   ó   € Ø�z‰z˜%Ó Ð r+   c                óº  € \        V\        4      '       g   \        R4      h\        V \        4      '       g   \        V\        4      '       d   \        P
                  # \        V P                  P                  4       VP                  P                  4       4       UUUUu. uF"  w  w  r#w  rEW5,          \        W$4      ,          NK$  	  ppppp\        V!  # u uppppi )aA  
Returns the outer product of this vector with another, in the
form of a Dyadic instance.

Parameters
==========

other : Vector
    The Vector with respect to which the outer product is to
    be computed.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> N = CoordSys3D('N')
>>> N.i.outer(N.j)
(N.i|N.j)

z!Invalid operand for outer product)r@   r   rD   r!   r   r"   r   r)   rA   r   r   )r'   r5   Úk1Úv1Úk2Úv2rB   s   &&     r(   rS   ÚVector.outer   s³   € ô. ˜%¤×(Ò(ÜÐ?Ó@Ð@Ü˜œz×*Ò*Ü˜5¤*×-Ò-Ü—;‘;Ðô
 ˜4Ÿ?™?×0Ñ0Ó2°E×4DÑ4D×4JÑ4JÓ4LÔMöOÙMñ 4F±8°B¹X¸b�•œJ rÓ.×.Ð.ÙMð 	ó Oô ˜$ÑÐùõOs   Â(C
c                óV  € V P                  \        P                  4      '       d)   V'       d   \        P                  # \        P                  # V'       d(   V P                  V4      V P                  V 4      ,          # V P                  V4      V P                  V 4      ,          V ,          # )aC  
Returns the vector or scalar projection of the 'other' on 'self'.

Examples
========

>>> from sympy.vector.coordsysrect import CoordSys3D
>>> C = CoordSys3D('C')
>>> i, j, k = C.base_vectors()
>>> v1 = i + j + k
>>> v2 = 3*i + 4*j
>>> v1.projection(v2)
7/3*C.i + 7/3*C.j + 7/3*C.k
>>> v1.projection(v2, scalar=True)
7/3

)r4   r   r"   r   ÚZeror3   )r'   r5   Úscalars   &&&r(   Ú
projectionÚVector.projection$  sj   € ð$ �;‰;”v—{‘{×#Ò#ß#”1—6‘6Ð4¬¯©Ð4çØ—8‘8˜E“? T§X¡X¨d£^Õ3Ð3à—8‘8˜E“? T§X¡X¨d£^Õ3°dÕ:Ð:r+   c                óD  € ^ RI Hp \        V \        4      '       d0   \        P
                  \        P
                  \        P
                  3# \        \        V! V 4      4      4      P                  4       p\        V Uu. uF  q0P                  V4      NK  	  up4      # u upi )ai  
Returns the components of this vector but the output includes
also zero values components.

Examples
========

>>> from sympy.vector import CoordSys3D, Vector
>>> C = CoordSys3D('C')
>>> v1 = 3*C.i + 4*C.j + 5*C.k
>>> v1._projections
(3, 4, 5)
>>> v2 = C.x*C.y*C.z*C.i
>>> v2._projections
(C.x*C.y*C.z, 0, 0)
>>> v3 = Vector.zero
>>> v3._projections
(0, 0, 0)
)Ú_get_coord_systems)Úsympy.vector.operatorsrh   r@   r!   r   rc   ÚnextÚiterÚbase_vectorsÚtupler3   )r'   rh   Úbase_vecÚis   &   r(   Ú_projectionsÚVector._projections>  sn   € õ, 	>Ü�dœJ×'Ò'Ü—F‘FœAŸF™F¤A§F¡FÐ+Ð+ÜœÑ/°Ó5Ó6Ó7×DÑDÓFˆÜ©8Ó4©8 a—h‘h˜q–k©8Ñ4Ó5Ð5ùÒ4s   Á=Bc                	ó$   € V P                  V4      # rL   )rS   rN   s   &&r(   Ú__or__ÚVector.__or__Z  r[   r+   c                óz   € \        VP                  4        Uu. uF  q P                  V4      NK  	  up4      # u upi )a�  
Returns the matrix form of this vector with respect to the
specified coordinate system.

Parameters
==========

system : CoordSys3D
    The system wrt which the matrix form is to be computed

Examples
========

>>> from sympy.vector import CoordSys3D
>>> C = CoordSys3D('C')
>>> from sympy.abc import a, b, c
>>> v = a*C.i + b*C.j + c*C.k
>>> v.to_matrix(C)
Matrix([
[a],
[b],
[c]])

)ÚMatrixrl   r3   )r'   ÚsystemÚunit_vecs   && r(   Ú	to_matrixÚVector.to_matrix_  sA   € ô4 Ø×*Ñ*Ô,ó.Ù,ð /7—x‘x Ö)Ù,ñ.ó /ð 	/ùò .s   ˜8c                óÖ   € / pV P                   P                  4        FH  w  r#VP                  VP                  \        P
                  4      W#,          ,           WP                  &   KJ  	  V# )a]  
The constituents of this vector in different coordinate systems,
as per its definition.

Returns a dict mapping each CoordSys3D to the corresponding
constituent Vector.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> R1 = CoordSys3D('R1')
>>> R2 = CoordSys3D('R2')
>>> v = R1.i + R2.i
>>> v.separate() == {R1: R1.i, R2: R2.i}
True

)r)   rA   Úgetrw   r   r"   )r'   ÚpartsÚvectÚmeasures   &   r(   ÚseparateÚVector.separate|  sR   € ð( ˆØ!Ÿ_™_×2Ñ2Ö4‰MˆDØ"'§)¡)¨D¯K©K¼¿¹Ó"EØ"&¥.õ#1ˆE—+‘+Óñ 5ð ˆr+   c                ó:  € \        V \        4      '       d"   \        V\        4      '       d   \        R4      h\        V \        4      '       dE   V\        P                  8X  d   \        R4      h\        V \        V\        P                  4      4      # \        R4      h)z'Helper for division involving vectors. zCannot divide two vectorszCannot divide a vector by zeroz#Invalid division involving a vector)	r@   r   rD   r   rc   Ú
ValueErrorÚ	VectorMulr
   ÚNegativeOne)Úoner5   s   &&r(   Ú_div_helperÚVector._div_helper–  so   € ä�cœ6×"Ò"¤z°%¼×'@Ò'@ÜÐ7Ó8Ð8Ü˜œV×$Ò$ØœŸ™ŒÜ Ð!AÓBÐBÜ˜S¤# e¬Q¯]©]Ó";Ó<Ð<äÐAÓBÐBr+   © N)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	is_scalarÚ	is_VectorÚ_op_priorityÚ__annotations__r   r#   Úpropertyr)   r-   r0   r4   r3   rO   rR   rY   rS   re   rp   rs   ry   r€   r‡   Ú__static_attributes__r‰   r+   r(   r   r      sÜ   ‡ ñð €IØ€IØ€LàÓØÓØÓØÓØÓØ
Óá!“|€Dˆ*Ó#àñ ó ð ò(!ò'òA#òF< ò|ð —k‘k€G„Oò*"òX!ð —m‘m€G„Oò" ôH;ð4 ñ6ó ð6ò6!ð —]‘]€F„Nò/ò:ö4	Cr+   r   c                ó   a € V 3R  lpV# )c                ó  <€ \         \        /S,          p. pV P                   F6  p\        VP                  \
        4      '       g   K%  VP                  V4       K8  	  V\        8X  d   \        V!  P                  R R7      # R# )F)ÚdeepN)r   Ú	VectorAddrB   r@   r#   r   ÚappendÚdoit)ÚexprÚ	vec_classÚvectorsÚtermÚclss   &   €r(   Ú_postprocessorÚ)get_postprocessor.<locals>._postprocessor¤  sj   ø€ Üœ)Ð$ SÕ)ˆ	ØˆØ—I”IˆDÜ˜$Ÿ)™)¤Z×0Ô0Ø—‘˜tÖ$ñ ð œ	Ô!Ü˜gÑ&×+Ñ+°Ð+Ó7Ð7ñ "r+   r‰   )rŸ   r    s   f r(   Úget_postprocessorr¢   £  s   ø€ õ8ð Ðr+   r   c                  ób   a € ] tR tRtRtR
V 3R llt]R 4       tR tR t	]R 4       t
R tR	tV ;t# )Ú
BaseVectori´  z!
Class to denote a base vector.

c                	óv  <€ Vf   RP                  V4      pVf   RP                  V4      p\        V4      p\        V4      pV\        ^ ^4      9  d   \        R4      h\	        V\
        4      '       g   \        R4      hVP                  V,          p\        SV `%  V \        V4      V4      pWfn        V\        P                  /Vn        \        P                  Vn        VP                  R,           V,           Vn        RV,           Vn        WFn        W&n        W3Vn        RR/p\)        V4      Vn        W&n        V# )	Nzx{}zx_{}zindex must be 0, 1 or 2zsystem should be a CoordSys3DÚ.Ú ÚcommutativeT)ÚformatrE   Úrangerƒ   r@   r   rD   Ú_vector_namesÚsuperÚ__new__r   Ú_base_instanceÚOner%   Ú_measure_numberÚ_nameÚ_pretty_formÚ_latex_formÚ_systemÚ_idr   Ú_assumptionsÚ_sys)	rŸ   Úindexrw   Ú
pretty_strÚ	latex_strÚnameÚobjÚassumptionsÚ	__class__s	   &&&&&   €r(   r­   ÚBaseVector.__new__º  s  ø€ ØÒØŸ™ eÓ,ˆJØÒØŸ™ eÓ,ˆIÜ˜“_ˆ
Ü˜	“Nˆ	àœ˜a ›Ô#ÜÐ6Ó7Ð7Ü˜&¤*×-Ò-ÜÐ;Ó<Ð<Ø×#Ñ# EÕ*ˆä‰g‰o˜c¤1 U£8¨VÓ4ˆà ÔØ¤§¡˜,ˆŒÜŸe™eˆÔØ—L‘L 3Õ&¨Õ-ˆŒ	Ø 
�?ˆÔØ#ŒØŒà�/ˆŒØ$ dÐ+ˆÜ$ [Ó1ˆÔð
 Œàˆ
r+   c                	ó   € V P                   # rL   )r´   r&   s   &r(   rw   ÚBaseVector.systemÝ  s   € à�|‰|Ðr+   c                	ó   € V P                   # rL   )r±   )r'   Úprinters   &&r(   Ú	_sympystrÚBaseVector._sympystrá  s   € Ø�z‰zÐr+   c                	ó~   € V P                   w  r#VP                  V4      R ,           VP                  V,          ,           # )r¦   )rµ   Ú_printr«   )r'   rÃ   r¸   rw   s   &&  r(   Ú
_sympyreprÚBaseVector._sympyreprä  s1   € ØŸ™‰ˆØ�~‰~˜fÓ%¨Õ+¨f×.BÑ.BÀ5Õ.IÕIÐIr+   c                	ó   € V 0# rL   r‰   r&   s   &r(   Úfree_symbolsÚBaseVector.free_symbolsè  s	   € àˆvˆr+   c                	ó   € V # rL   r‰   r&   s   &r(   Ú_eval_conjugateÚBaseVector._eval_conjugateì  s   € Øˆr+   r‰   )NN)rŠ   r‹   rŒ   r�   rŽ   r­   r“   rw   rÄ   rÈ   rË   rÎ   r”   Ú__classcell__)r¾   s   @r(   r¤   r¤   ´  sK   ø† ñ÷
!ðF ñó ðòòJð ñó ð÷ð r+   r¤   c                  ó&   € ] tR tRtRtR tR tRtR# )r˜   ið  z*
Class to denote sum of Vector instances.
c                	ó:   € \         P                  ! V .VO5/ VB pV# rL   )r   r­   ©rŸ   rB   Úoptionsr¼   s   &*, r(   r­   ÚVectorAdd.__new__õ  ó!   € Ü×'Ò'¨Ð>¨dÒ>°gÑ>ˆØˆ
r+   c                	ó`  € R p\        V P                  4       P                  4       4      pVP                  R R7       V Fh  w  rEVP	                  4       pV FM  pWuP
                  9   g   K  V P
                  V,          V,          pW!P                  V4      R,           ,          pKO  	  Kj  	  VRR # )r§   c                ó0   € V ^ ,          P                  4       # )r   )Ú__str__)Úxs   &r(   Ú<lambda>Ú%VectorAdd._sympystr.<locals>.<lambda>ü  s   €   1¥§¡¤r+   ©Úkeyz + Néýÿÿÿ)Úlistr€   rA   Úsortrl   r)   rÇ   )	r'   rÃ   Úret_strrA   rw   r~   Ú
base_vectsrÚ   Ú	temp_vects	   &&       r(   rÄ   ÚVectorAdd._sympystrù  s”   € ØˆÜ�T—]‘]“_×*Ñ*Ó,Ó-ˆØ�
‰
Ñ/ˆ
Ô0Û!‰LˆFØ×,Ñ,Ó.ˆJÛ�ØŸ™Ö'Ø $§¡°Õ 2°QÕ 6�IØŸ~™~¨iÓ8¸5Õ@Õ@’Gó  ñ "ð �s˜ˆ|Ðr+   r‰   N)rŠ   r‹   rŒ   r�   rŽ   r­   rÄ   r”   r‰   r+   r(   r˜   r˜   ð  s   † ñòö
r+   r˜   c                  ó@   € ] tR tRtRtR t]R 4       t]R 4       tRt	R# )r„   i  z6
Class to denote products of scalars and BaseVectors.
c                	ó:   € \         P                  ! V .VO5/ VB pV# rL   )r   r­   rÓ   s   &*, r(   r­   ÚVectorMul.__new__  rÖ   r+   c                ó   € V P                   # )z(The BaseVector involved in the product. )r®   r&   s   &r(   Úbase_vectorÚVectorMul.base_vector  s   € ð ×"Ñ"Ð"r+   c                ó   € V P                   # )zDThe scalar expression involved in the definition of
this VectorMul.
)r°   r&   s   &r(   Úmeasure_numberÚVectorMul.measure_number  s   € ð
 ×#Ñ#Ð#r+   r‰   N)
rŠ   r‹   rŒ   r�   rŽ   r­   r“   rê   rí   r”   r‰   r+   r(   r„   r„     s4   † ñòð ñ#ó ð#ð ñ$ó ô$r+   r„   c                  ó,   € ] tR tRtRtRtRtRtR tRt	R# )	r!   i  z
Class to denote a zero vector
g333333(@Ú0z\mathbf{\hat{0}}c                	ó2   € \         P                  ! V 4      pV# rL   )r   r­   )rŸ   r¼   s   & r(   r­   ÚVectorZero.__new__%  s   € Ü ×(Ò(¨Ó-ˆØˆ
r+   r‰   N)
rŠ   r‹   rŒ   r�   rŽ   r‘   r²   r³   r­   r”   r‰   r+   r(   r!   r!     s   † ñð €LØ€LØ%€Kör+   r!   c                  ó&   € ] tR tRtRtR tR tRtR# )ÚCrossi*  a\  
Represents unevaluated Cross product.

Examples
========

>>> from sympy.vector import CoordSys3D, Cross
>>> R = CoordSys3D('R')
>>> v1 = R.i + R.j + R.k
>>> v2 = R.x * R.i + R.y * R.j + R.z * R.k
>>> Cross(v1, v2)
Cross(R.i + R.j + R.k, R.x*R.i + R.y*R.j + R.z*R.k)
>>> Cross(v1, v2).doit()
(-R.y + R.z)*R.i + (R.x - R.z)*R.j + (-R.x + R.y)*R.k

c                	óÂ   € \        V4      p\        V4      p\        V4      \        V4      8”  d   \        W!4      ) # \        P                  ! WV4      pWn        W#n        V# rL   )r   r   rô   r	   r­   Ú_expr1Ú_expr2©rŸ   Úexpr1Úexpr2r¼   s   &&& r(   r­   ÚCross.__new__<  sT   € Ü˜“ˆÜ˜“ˆÜ˜EÓ"Ô%5°eÓ%<Ô<Ü˜%Ó'Ð'Ð'Ü�lŠl˜3 uÓ-ˆØŒ
ØŒ
Øˆ
r+   c                	óB   € \        V P                  V P                  4      # rL   )rR   rö   r÷   ©r'   Úhintss   &,r(   rš   Ú
Cross.doitF  s   € Ü�T—[‘[ $§+¡+Ó.Ð.r+   r‰   N©rŠ   r‹   rŒ   r�   rŽ   r­   rš   r”   r‰   r+   r(   rô   rô   *  s   † ñò"ö/r+   rô   c                  ó&   € ] tR tRtRtR tR tRtR# )ÚDotiJ  aW  
Represents unevaluated Dot product.

Examples
========

>>> from sympy.vector import CoordSys3D, Dot
>>> from sympy import symbols
>>> R = CoordSys3D('R')
>>> a, b, c = symbols('a b c')
>>> v1 = R.i + R.j + R.k
>>> v2 = a * R.i + b * R.j + c * R.k
>>> Dot(v1, v2)
Dot(R.i + R.j + R.k, a*R.i + b*R.j + c*R.k)
>>> Dot(v1, v2).doit()
a + b + c

c                	ó    € \        V4      p\        V4      p\        W.\        R 7      w  r\        P                  ! WV4      pWn        W#n        V# )rÝ   )r   Úsortedr   r	   r­   rö   r÷   rø   s   &&& r(   r­   ÚDot.__new__^  sD   € Ü˜“ˆÜ˜“ˆÜ˜u˜nÔ2BÔC‰ˆÜ�lŠl˜3 uÓ-ˆØŒ
ØŒ
Øˆ
r+   c                	óB   € \        V P                  V P                  4      # rL   )r3   rö   r÷   rý   s   &,r(   rš   ÚDot.doitg  s   € Ü�4—;‘; §¡Ó,Ð,r+   r‰   Nr   r‰   r+   r(   r  r  J  s   † ñò&ö-r+   r  c                ó@  a a€ \        S \        4      '       d*   \        P                  V3R lS P                   4       4      # \        S\        4      '       d*   \        P                  V 3R lSP                   4       4      # \        S \
        4      '       d÷   \        S\
        4      '       dá   S P                  SP                  8X  d    S P                  ^ ,          pSP                  ^ ,          pW#8X  d   \        P                  # 0 RmP                  W#04      P                  4       pV^,           ^,          V8X  d   ^MRpVS P                  P                  4       V,          ,          # ^RIHp  V! S SP                  4      p\        VS4      # \        S \"        4      '       g   \        S\"        4      '       d   \        P                  # \        S \$        4      '       dB   \'        \)        S P*                  P-                  4       4      4      w  r‰V	\        VS4      ,          # \        S\$        4      '       dB   \'        \)        SP*                  P-                  4       4      4      w  r«V\        S V
4      ,          # \!        S S4      #   \         d    \!        S S4      u # i ; i)a2  
Returns cross product of two vectors.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> from sympy.vector.vector import cross
>>> R = CoordSys3D('R')
>>> v1 = R.i + R.j + R.k
>>> v2 = R.x * R.i + R.y * R.j + R.z * R.k
>>> cross(v1, v2)
(-R.y + R.z)*R.i + (R.x - R.z)*R.j + (-R.x + R.y)*R.k

c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irL   rX   ©Ú.0ro   Úvect2s   & €r(   Ú	<genexpr>Úcross.<locals>.<genexpr>|  s   øé € Ð!F¹:°a¤%¨¨5§/ /»:ùó   ƒc              3  ó<   <"  € T F  p\        SV4      x € K  	  R # 5irL   rX   ©r  ro   Úvect1s   & €r(   r  r  ~  s   øé € Ð!F¹:°a¤%¨¨q§/ /»:ùr  ©Úexpress>   r   é   é   éÿÿÿÿ)r@   r   r˜   ÚfromiterrB   r¤   r·   r   r"   Ú
differenceÚpoprl   Ú	functionsr  rR   rƒ   rô   r!   r„   rj   rk   r)   rA   )r  r  Ún1Ún2Ún3Úsignr  rH   r^   Úm1r`   Úm2s   ff          r(   rR   rR   k  sç  ù€ ô  �%œ×ÒÜ×!Ñ!Ô!F¸5¿:º:Ó!FÓFÐFÜ�%œ×ÒÜ×!Ñ!Ô!F¸5¿:º:Ó!FÓFÐFÜ�%œ×$Ò$¬°E¼:×)FÒ)FØ�:‰:˜Ÿ™Ô#Ø—‘˜A•ˆBØ—‘˜A•ˆBØŒxÜ—{‘{Ð"Ú×$Ñ$ b XÓ.×3Ñ3Ó5ˆBØ˜q�& A�¨Ô+‘1°"ˆDØ˜Ÿ
™
×/Ñ/Ó1°"Õ5Õ5Ð5Ý&ð	#Ù˜˜uŸz™zÓ*ˆAô ˜˜E“?Ð"Ü�%œ×$Ò$¬
°5¼*×(EÒ(EÜ�{‰{ÐÜ�%œ×#Ò#Ü”d˜5×+Ñ+×1Ñ1Ó3Ó4Ó5‰ˆØ”%˜˜EÓ"Õ"Ð"Ü�%œ×#Ò#Ü”d˜5×+Ñ+×1Ñ1Ó3Ó4Ó5‰ˆØ”%˜˜rÓ"Õ"Ð"ä�˜ÓÐøô ô 	'Ü˜ Ó&Ò&ð	'ús   Å.J ÊJÊJc                óT  a a€ \        S \        4      '       d+   \        P                  ! V3R lS P                   4       4      # \        S\        4      '       d+   \        P                  ! V 3R lSP                   4       4      # \        S \        4      '       d   \        S\        4      '       di   S P
                  SP
                  8X  d(   S S8X  d   \        P                  # \        P                  # ^RI	H
p  V! SS P
                  4      p\        S V4      # \        S \        4      '       g   \        S\        4      '       d   \        P                  # \        S \        4      '       dB   \!        \#        S P$                  P'                  4       4      4      w  rEV\        VS4      ,          # \        S\        4      '       dB   \!        \#        SP$                  P'                  4       4      4      w  rgV\        S V4      ,          # \        S S4      #   \         d    \        S S4      u # i ; i)a  
Returns dot product of two vectors.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> from sympy.vector.vector import dot
>>> R = CoordSys3D('R')
>>> v1 = R.i + R.j + R.k
>>> v2 = R.x * R.i + R.y * R.j + R.z * R.k
>>> dot(v1, v2)
R.x + R.y + R.z

c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irL   rM   r
  s   & €r(   r  Údot.<locals>.<genexpr>¬  s   øé € Ð>±:¨aœC  5ŸM˜M³:ùr  c              3  ó<   <"  € T F  p\        SV4      x € K  	  R # 5irL   rM   r  s   & €r(   r  r$  ®  s   øé € Ð>±:¨aœC  qŸM˜M³:ùr  r  )r@   r   r  rB   r¤   r·   r   r¯   rc   r  r  r3   rƒ   r  r!   r„   rj   rk   r)   rA   )r  r  r  rH   r^   r   r`   r!  s   ff      r(   r3   r3   ›  s‚  ù€ ô  �%œ×ÒÜ�|Š|Ô>°5·:²:Ó>Ó>Ð>Ü�%œ×ÒÜ�|Š|Ô>°5·:²:Ó>Ó>Ð>Ü�%œ×$Ò$¬°E¼:×)FÒ)FØ�:‰:˜Ÿ™Ô#Ø! UœN”1—5‘5Ð6´·±Ð6Ý&ð	!Ù˜˜uŸz™zÓ*ˆAô �u˜a“=Ð Ü�%œ×$Ò$¬
°5¼*×(EÒ(EÜ�v‰vˆÜ�%œ×#Ò#Ü”d˜5×+Ñ+×1Ñ1Ó3Ó4Ó5‰ˆØ”#�b˜%“.Õ Ð Ü�%œ×#Ò#Ü”d˜5×+Ñ+×1Ñ1Ó3Ó4Ó5‰ˆØ”#�e˜R“.Õ Ð äˆu�eÓÐøô ô 	%Ü�u˜eÓ$Ò$ð	%ús   Ã8H ÈH'È&H'N)7Ú
__future__r   Ú	itertoolsr   Ú
sympy.corer   r   Úsympy.core.assumptionsr   Úsympy.core.exprr   r	   Úsympy.core.powerr
   Úsympy.core.singletonr   Úsympy.core.sortingr   Úsympy.core.sympifyr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.matrices.immutabler   rv   Úsympy.vector.basisdependentr   r   r   r   Úsympy.vector.coordsysrectr   Úsympy.vector.dyadicr   r   r   Úsympy.vector.kindr   r   r¢   Ú"_constructor_postprocessor_mappingr¤   r˜   r„   r!   rô   r  rR   r3   r   r   r   r   r    r"   r‰   r+   r(   Ú<module>r6     s	  ðÝ "Ý ç !Ý ,ß ,Ý  Ý "Ý /Ý &Ý 9Ý C÷:ó :å 0ß =Ñ =Ý (ôKCˆ^ô KCò^
ð 
Ñ˜cÓ"Ð#ð4€× (Ñ (¨Ñ 0ô9�˜ô 9ôxÐ! 6ô ô,$Ð! 6ô $ô,Ð# Vô ô/ˆFô /ô@-ˆ$ô -òB-ò`'ðT €Ô Ø€Ô Ø€Ô Ø€Ô Ø€Ô Ù‹l€†r+   