+
    ‹°³j{!  ã                  ó.  € ^ RI Ht ^ RIHtHtHtHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ RIt ! R R]4      t ! R	 R
]]4      t ! R R]]4      t ! R R]]4      t ! R R]]4      t]]n        ]]n        ]]n        ]]n        ]]n        ]! 4       ]n        R# )é    )Úannotations)ÚBasisDependentÚBasisDependentAddÚBasisDependentMulÚBasisDependentZero)ÚSÚPow)Ú
AtomicExpr)ÚImmutableDenseMatrixNc                  óØ   € ] tR t^t$ RtRtR]R&   R]R&   R]R&   R]R&   R]R&   R	]R
&   ]R 4       tR t	R t
]	P                  ]
n        R tR t]P                  ]n        RR ltR tRtR# )ÚDyadiczÉ
Super class for all Dyadic-classes.

References
==========

.. [1] https://en.wikipedia.org/wiki/Dyadic_tensor
.. [2] Kane, T., Levinson, D. Dynamics Theory and Applications. 1985
       McGraw-Hill

g      *@ztype[Dyadic]Ú
_expr_typeÚ	_mul_funcÚ	_add_funcÚ
_zero_funcÚ
_base_funcÚ
DyadicZeroÚzeroc                ó   € V P                   # )zŽ
Returns the components of this dyadic in the form of a
Python dictionary mapping BaseDyadic instances to the
corresponding measure numbers.

)Ú_components©Úselfs   &ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/vector/dyadic.pyÚ
componentsÚDyadic.components!   s   € ð ×ÑÐó    c                óÈ  € \         P                  P                  p\        V\        4      '       d   VP
                  # \        W4      '       d{   VP
                  pV P                  P                  4        FN  w  rEVP                  ^,          P                  V4      pW6V,          VP                  ^ ,          ,          ,          pKP  	  V# \        V\        4      '       dÜ   \        P
                  pV P                  P                  4        F«  w  r‰VP                  P                  4        Fˆ  w  r«VP                  ^,          P                  V
P                  ^ ,          4      pVP                  ^ ,          P                  V
P                  ^,          4      pWvV	,          V,          V,          ,          pKŠ  	  K­  	  V# \        R\        \        V4      4      ,           R,           4      h)aì  
Returns the dot product(also called inner product) of this
Dyadic, with another Dyadic or Vector.
If 'other' is a Dyadic, this returns a Dyadic. Else, it returns
a Vector (unless an error is encountered).

Parameters
==========

other : Dyadic/Vector
    The other Dyadic or Vector to take the inner product with

Examples
========

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

z!Inner product is not defined for z and Dyadics.)ÚsympyÚvectorÚVectorÚ
isinstancer   r   r   ÚitemsÚargsÚdotr   ÚouterÚ	TypeErrorÚstrÚtype)r   Úotherr    ÚoutvecÚkÚvÚvect_dotÚoutdyadÚk1Úv1Úk2Úv2Úouter_products   &&           r   r$   Ú
Dyadic.dot-   s^  € ô6 —‘×$Ñ$ˆÜ�eÔ/×0Ò0Ø—;‘;ÐÜ˜×&Ò&Ø—[‘[ˆFØŸ™×-Ñ-Ö/‘�ØŸ6™6 !�9Ÿ=™=¨Ó/�Ø Q�,¨¯©°­Õ2Õ2’ñ 0ð ˆMÜ˜œv×&Ò&Ü—k‘kˆGØŸ/™/×/Ñ/Ö1‘�Ø#×.Ñ.×4Ñ4Ö6‘F�BØ!Ÿw™w q�zŸ~™~¨b¯g©g°a­jÓ9�HØ$&§G¡G¨A¥J×$4Ñ$4°R·W±W¸QµZÓ$@�MØ¨"�}¨rÕ1°MÕAÕA’Gó 7ñ 2ð
 ˆNäÐ?Ü¤ U£Ó,õ-Ø/>õ?ó @ð @r   c                	ó$   € V P                  V4      # ©N)r$   ©r   r)   s   &&r   Ú__and__ÚDyadic.__and__]   s   € Ø�x‰x˜‹Ðr   c                óþ  € \         P                  P                  pWP                  8X  d   \        P                  # \        W4      '       d‰   \        P                  pV P                  P                  4        FX  w  rEVP                  ^,          P                  V4      pVP                  ^ ,          P                  V4      pW5V,          ,          pKZ  	  V# \        \        \        V4      4      R,           R,           4      h)a7  
Returns the cross product between this Dyadic, and a Vector, as a
Vector instance.

Parameters
==========

other : Vector
    The Vector that we are crossing this Dyadic with

Examples
========

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

z not supported for zcross with dyadics)r   r   r    r   r   r!   r   r"   r#   Úcrossr%   r&   r'   r(   )r   r)   r    r.   r+   r,   Úcross_productr%   s   &&      r   r;   ÚDyadic.crossb   s¹   € ô, —‘×$Ñ$ˆØ—K‘KÔÜ—;‘;ÐÜ˜×&Ò&Ü—k‘kˆGØŸ™×-Ñ-Ö/‘�Ø !§¡ q¥	§¡°Ó 6�ØŸ™˜q�	Ÿ™¨Ó6�Ø˜u�9Õ$’ñ 0ð ˆNäœC¤ U£Ó,Ð/DÕDØ0õ1ó 2ð 2r   c                	ó$   € V P                  V4      # r6   )r;   r7   s   &&r   Ú__xor__ÚDyadic.__xor__†   s   € Ø�z‰z˜%Ó Ð r   Nc           
     óÀ   € Vf   Tp\        V UUu. uF+  pV F"  qCP                  V 4      P                  V4      NK$  	  K-  	  upp4      P                  ^^4      # u uppi )a-  
Returns the matrix form of the dyadic with respect to one or two
coordinate systems.

Parameters
==========

system : CoordSys3D
    The coordinate system that the rows and columns of the matrix
    correspond to. If a second system is provided, this
    only corresponds to the rows of the matrix.
second_system : CoordSys3D, optional, default=None
    The coordinate system that the columns of the matrix correspond
    to.

Examples
========

>>> from sympy.vector import CoordSys3D
>>> N = CoordSys3D('N')
>>> v = N.i + 2*N.j
>>> d = v.outer(N.i)
>>> d.to_matrix(N)
Matrix([
[1, 0, 0],
[2, 0, 0],
[0, 0, 0]])
>>> from sympy import Symbol
>>> q = Symbol('q')
>>> P = N.orient_new_axis('P', q, N.k)
>>> d.to_matrix(N, P)
Matrix([
[  cos(q),   -sin(q), 0],
[2*cos(q), -2*sin(q), 0],
[       0,         0, 0]])

)ÚMatrixr$   Úreshape)r   ÚsystemÚsecond_systemÚiÚjs   &&&  r   Ú	to_matrixÚDyadic.to_matrix‹   sb   € ðN Ò Ø"ˆMä±6ô &±6¨aÛ$ð ?@—u‘u˜T“{—‘ qÖ)Ù$ñ *±6ò &ó 'ß'.¡w¨q°!£}ð	5ùó &s   ‘1A
c                óú   € \        V \        4      '       d"   \        V\        4      '       d   \        R4      h\        V \        4      '       d%   \        V \	        V\
        P                  4      4      # \        R4      h)z&Helper for division involving dyadics zCannot divide two dyadicszCannot divide by a dyadic)r!   r   r&   Ú	DyadicMulr	   r   ÚNegativeOne)Úoner)   s   &&r   Ú_div_helperÚDyadic._div_helper¸   sX   € ä�cœ6×"Ò"¤z°%¼×'@Ò'@ÜÐ7Ó8Ð8Ü˜œV×$Ò$Ü˜S¤# e¬Q¯]©]Ó";Ó<Ð<äÐ7Ó8Ð8r   © r6   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú_op_priorityÚ__annotations__Úpropertyr   r$   r8   r;   r?   rH   rN   Ú__static_attributes__rP   r   r   r   r      s€   ‡ ñ
ð €LàÓØÓØÓØÓØÓØ
Óàñ	 ó ð	 ò.@ò`ð —k‘k€G„Oò"2òH!ð —m‘m€G„Oô+5öZ9r   r   c                  ó8   a € ] tR t^ÂtRtV 3R ltR tR tRtV ;t	# )Ú
BaseDyadicz1
Class to denote a base dyadic tensor component.
c                	óÌ  <€ \         P                  P                  p\         P                  P                  p\         P                  P                  p\        WV34      '       d   \        W$V34      '       g   \        R4      hWP                  8X  g   W#P                  8X  d   \        P                  # \        SV `)  WV4      pWfn        ^Vn        V\        P                  /Vn        VP                   Vn        RVP"                  ,           R,           VP"                  ,           R,           Vn        RVP$                  ,           R,           VP$                  ,           R,           Vn        V# )z*BaseDyadic cannot be composed of non-base Ú(Ú|Ú)z\left(z
{\middle|}z\right)z1BaseDyadic cannot be composed of non-base vectors)r   r   r    Ú
BaseVectorÚ
VectorZeror!   r&   r   r   ÚsuperÚ__new__Ú_base_instanceÚ_measure_numberr   ÚOner   Ú_sysÚ_pretty_formÚ_latex_form)ÚclsÚvector1Úvector2r    r`   ra   ÚobjÚ	__class__s   &&&    €r   rc   ÚBaseDyadic.__new__Ç   s  ø€ Ü—‘×$Ñ$ˆÜ—\‘\×,Ñ,ˆ
Ü—\‘\×,Ñ,ˆ
ä˜'°
Ð#;×<Ò<Ü˜w°ZÐ(@×AÒAÜð &ó 'ð 'ð Ÿ™Ô# w·+±+Ô'=Ü—;‘;Ðä‰g‰o˜c¨GÓ4ˆØ ÔØˆÔØ¤§¡˜,ˆŒØ—<‘<ˆŒØ '×"6Ñ"6Õ6¸Õ<Ø$×1Ñ1õ2Ø47õ8ˆÔà$ w×':Ñ':Õ:¸]ÕJØ"×.Ñ.õ/Ø1;õ<ˆŒð ˆ
r   c                	ó¦   € R P                  VP                  V P                  ^ ,          4      VP                  V P                  ^,          4      4      # )z({}|{})©ÚformatÚ_printr#   ©r   Úprinters   &&r   Ú	_sympystrÚBaseDyadic._sympystrà   s>   € Ø×ÑØ�N‰N˜4Ÿ9™9 Q�<Ó(¨'¯.©.¸¿¹À1½Ó*FóHð 	Hr   c                	ó¦   € R P                  VP                  V P                  ^ ,          4      VP                  V P                  ^,          4      4      # )zBaseDyadic({}, {})rq   rt   s   &&r   Ú
_sympyreprÚBaseDyadic._sympyreprä   s>   € Ø#×*Ñ*Ø�N‰N˜4Ÿ9™9 Q�<Ó(¨'¯.©.¸¿¹À1½Ó*FóHð 	Hr   rP   )
rQ   rR   rS   rT   rU   rc   rv   ry   rY   Ú__classcell__)rn   s   @r   r[   r[   Â   s   ø† ñõò2H÷Hð Hr   r[   c                  ó@   € ] tR t^étRtR t]R 4       t]R 4       tRt	R# )rK   z$Products of scalars and BaseDyadics c                	ó:   € \         P                  ! V .VO5/ VB pV# r6   )r   rc   ©rj   r#   Úoptionsrm   s   &*, r   rc   ÚDyadicMul.__new__ì   ó!   € Ü×'Ò'¨Ð>¨dÒ>°gÑ>ˆØˆ
r   c                ó   € V P                   # )z(The BaseDyadic involved in the product. )rd   r   s   &r   Úbase_dyadicÚDyadicMul.base_dyadicð   s   € ð ×"Ñ"Ð"r   c                ó   € V P                   # )zDThe scalar expression involved in the definition of
this DyadicMul.
)re   r   s   &r   Úmeasure_numberÚDyadicMul.measure_numberõ   s   € ð
 ×#Ñ#Ð#r   rP   N)
rQ   rR   rS   rT   rU   rc   rX   rƒ   r†   rY   rP   r   r   rK   rK   é   s2   † Ù/òð ñ#ó ð#ð ñ$ó ô$r   rK   c                  ó&   € ] tR t^ýtRtR tR tRtR# )Ú	DyadicAddzClass to hold dyadic sums c                	ó:   € \         P                  ! V .VO5/ VB pV# r6   )r   rc   r~   s   &*, r   rc   ÚDyadicAdd.__new__   r�   r   c                	ó¦   a€ \        V P                  P                  4       4      pVP                  R  R7       RP	                  V3R lV 4       4      # )c                ó0   € V ^ ,          P                  4       # )r   )Ú__str__)Úxs   &r   Ú<lambda>Ú%DyadicAdd._sympystr.<locals>.<lambda>  s   €   1¥§¡¤r   )Úkeyz + c              3  óV   <"  € T F  w  rSP                  W,          4      x € K   	  R # 5ir6   )rs   )Ú.0r+   r,   ru   s   &  €r   Ú	<genexpr>Ú&DyadicAdd._sympystr.<locals>.<genexpr>  s!   øé € ÐB¹E±D°A˜'Ÿ.™.¨­×/Ð/»Eùs   ƒ&))Úlistr   r"   ÚsortÚjoin)r   ru   r"   s   &f r   rv   ÚDyadicAdd._sympystr  s>   ø€ Ü�T—_‘_×*Ñ*Ó,Ó-ˆØ�
‰
Ñ/ˆ
Ô0Ø�z‰zÔB¹EÓBÓBÐBr   rP   N)rQ   rR   rS   rT   rU   rc   rv   rY   rP   r   r   r‰   r‰   ý   s   † Ù%òöC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 dyadic
g333333*@z(0|0)z#(\mathbf{\hat{0}}|\mathbf{\hat{0}})c                	ó2   € \         P                  ! V 4      pV# r6   )r   rc   )rj   rm   s   & r   rc   ÚDyadicZero.__new__  s   € Ü ×(Ò(¨Ó-ˆØˆ
r   rP   N)
rQ   rR   rS   rT   rU   rV   rh   ri   rc   rY   rP   r   r   r   r   
  s   † ñð €LØ€LØ8€Kör   r   )Ú
__future__r   Úsympy.vector.basisdependentr   r   r   r   Ú
sympy.corer   r	   Úsympy.core.exprr
   Úsympy.matrices.immutabler   rB   Úsympy.vectorr   r   r[   rK   r‰   r   r   r   r   r   r   r   rP   r   r   Ú<module>r¤      s¢   ðÝ "÷Pó Pç Ý &Ý CÛ ôt9ˆ^ô t9ôn$H�˜ô $HôN$Ð! 6ô $ô(
CÐ! 6ô 
CôÐ# Vô ð €Ô Ø€Ô Ø€Ô Ø€Ô Ø€Ô Ù‹l€†r   