+
    ‹°³jzF  ã                   ób   € ^ RI HtHtHt ^ RIHt ^ RIHt ^ RI	H
t
 R.t ! R R]]4      tR tR# )	é    )ÚsympifyÚAddÚImmutableMatrix)Ú
EvalfMixin)Ú	Printable)Úprec_to_dpsÚDyadicc                   óÚ   a € ] tR t^t o RtRtR t]R 4       tR t	]	t
R t]tR t]tR tR	 tR
 tR tR tR tR tR tR tR t]tRR ltRR ltR tR tR tR tR t R t!R t"Rt#V t$R# )r	   a]  A Dyadic object.

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

A more powerful way to represent a rigid body's inertia. While it is more
complex, by choosing Dyadic components to be in body fixed basis vectors,
the resulting matrix is equivalent to the inertia tensor.

Fc                óŠ  € . V n         V^ 8X  d   . p\        V4      ^ 8w  Ed_   ^ p\        V P                   4       Fü  w  r4\        V^ ,          ^,          4      \        V P                   V,          ^,          4      8X  g   KF  \        V^ ,          ^,          4      \        V P                   V,          ^,          4      8X  g   K‡  V P                   V,          ^ ,          V^ ,          ^ ,          ,           V^ ,          ^,          V^ ,          ^,          3V P                   V&   VP	                  V^ ,          4       ^p M	  V^8w  g   EK2  V P                   P                  V^ ,          4       VP	                  V^ ,          4       EKo  ^ pV\        V P                   4      8  d¨   V P                   V,          ^ ,          ^ 8H  V P                   V,          ^,          ^ 8H  ,          V P                   V,          ^,          ^ 8H  ,          '       d6   V P                   P	                  V P                   V,          4       V^,          pV^,          pKÁ  R# )zú
Just like Vector's init, you should not call this unless creating a
zero dyadic.

zd = Dyadic(0)

Stores a Dyadic as a list of lists; the inner list has the measure
number and the two unit vectors; the outerlist holds each unique
unit vector pair.

N)ÚargsÚlenÚ	enumerateÚstrÚremoveÚappend)ÚselfÚinlistÚaddedÚiÚvs   &&   Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/physics/vector/dyadic.pyÚ__init__ÚDyadic.__init__   sŸ  € ð ˆŒ	Ø�QŒ;ØˆFÜ�&‹k˜QÕØˆEÜ! $§)¡)Ö,‘�Ü˜ � 1�Ó&¬#¨d¯i©i¸­l¸1­oÓ*>Ö>Ü˜V A�Y q�\Ó*¬c°$·)±)¸Aµ,¸qµ/Ó.BÖBØ$(§I¡I¨a¥L°¥O°f¸QµiÀµlÕ$BØ$*¨1¥I¨a¥L°&¸µ)¸Aµ,ð$@�D—I‘I˜a‘Là—M‘M &¨¥)Ô,Ø�EÙñ -ð ˜�zØ—	‘	× Ñ  ¨¥Ô+Ø—‘˜f Q�i×(Øˆà”#�d—i‘i“.Ô Ø—‘˜1•˜a• AÑ%¨$¯)©)°A­,°q­/¸QÑ*>Õ?Ø—Y‘Y˜q•\ !•_¨Ñ)÷+ô +à—	‘	× Ñ  §¡¨1¥Ô.Ø�Q•�Ø��FŠAñ !ó    c                ó   € \         # )zReturns the class Dyadic. )r	   ©r   s   &r   ÚfuncÚDyadic.func@   s	   € ô ˆr   c                ód   € \        V4      p\        V P                  VP                  ,           4      # )zThe add operator for Dyadic. )Ú_check_dyadicr	   r   ©r   Úothers   &&r   Ú__add__ÚDyadic.__add__E   s$   € ä˜eÓ$ˆÜ�d—i‘i %§*¡*Õ,Ó-Ð-r   c                óø   € \        V P                  4      p\        V4      p\        \	        V4      4       F8  pWV,          ^ ,          ,          W#,          ^,          W#,          ^,          3W#&   K:  	  \        V4      # )a%  Multiplies the Dyadic by a sympifyable expression.

Parameters
==========

other : Sympafiable
    The scalar to multiply this Dyadic with

Examples
========

>>> from sympy.physics.vector import ReferenceFrame, outer
>>> N = ReferenceFrame('N')
>>> d = outer(N.x, N.x)
>>> 5 * d
5*(N.x|N.x)

)Úlistr   r   Úranger   r	   )r   r"   Únewlistr   s   &&  r   Ú__mul__ÚDyadic.__mul__L   sa   € ô& �t—y‘y“/ˆÜ˜“ˆÜ”s˜7“|Ö$ˆAØ¨!¥*¨Q¥-Õ/°µ¸AµØ!�* Q�-ð)ˆG‹Jñ %ô �g‹Ðr   c                óB  € ^ RI HpHp \        V\        4      '       d¤   \        V4      p\	        ^ 4      pV P                   F{  pVP                   Fh  pWE^ ,          V^ ,          ,          V^,          P                  V^,          4      ,          V^,          P                  V^,          4      ,          ,          pKj  	  K}  	  V# V! V4      pV! ^ 4      pV P                   F=  pWE^ ,          V^,          ,          V^,          P                  V4      ,          ,          pK?  	  V# )az  The inner product operator for a Dyadic and a Dyadic or Vector.

Parameters
==========

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

Examples
========

>>> from sympy.physics.vector import ReferenceFrame, outer
>>> N = ReferenceFrame('N')
>>> D1 = outer(N.x, N.y)
>>> D2 = outer(N.y, N.y)
>>> D1.dot(D2)
(N.x|N.y)
>>> D1.dot(N.y)
N.x

)ÚVectorÚ_check_vector)	Úsympy.physics.vector.vectorr,   r-   Ú
isinstancer	   r    r   ÚdotÚouter)r   r"   r,   r-   Úolr   Úv2s   &&     r   r0   Ú
Dyadic.doth   s×   € ÷, 	FÜ�eœV×$Ò$Ü! %Ó(ˆEÜ˜“ˆBØ—Y”Y�ØŸ*œ*�BØ˜A�$  A¥�,¨!¨A­$¯(©(°2°aµ5«/Õ:¸aÀ½d¿j¹jÈÈAÍÓ>OÕPÕP’Bó %ñ ð ˆ	ñ	 " %Ó(ˆEÙ˜“ˆBØ—Y”Y�Ø˜•d˜Q˜q�T•k Q q¥T§X¡X¨e£_Õ5Õ5’ñ àˆ	r   c                ó2   € V P                  ^V,          4      # )z0Divides the Dyadic by a sympifyable expression. )r)   r!   s   &&r   Ú__truediv__ÚDyadic.__truediv__�   s   € à�|‰|˜A �IÓ&Ð&r   c                ó"  € V^ 8X  d   \        ^ 4      p\        V4      pV P                  . 8X  d   VP                  . 8X  d   R# V P                  . 8X  g   VP                  . 8X  d   R# \        V P                  4      \        VP                  4      8H  # )zKTests for equality.

Is currently weak; needs stronger comparison testing

TF)r	   r    r   Úsetr!   s   &&r   Ú__eq__ÚDyadic.__eq__“   sk   € ð �AŒ:Ü˜1“IˆEÜ˜eÓ$ˆØ�I‰I˜ŒO %§*¡*°Ô"2ÙØ�i‰i˜2Œo 5§:¡:°Ô#3ÙÜ�4—9‘9‹~¤ U§Z¡Z£Ñ0Ð0r   c                ó   € W8X  * # ©N© r!   s   &&r   Ú__ne__ÚDyadic.__ne__£   s   € ØÒ Ð r   c                ó   € V R,          # ©é   éÿÿÿÿr>   r   s   &r   Ú__neg__ÚDyadic.__neg__¦   s   € Ø�b�yÐr   c                ó2  € V P                   p\        V4      ^ 8X  d   \        ^ 4      # . pV EF“  pV^ ,          ^8X  dU   VP                  RVP	                  V^,          4      ,           R,           VP	                  V^,          4      ,           4       Kf  V^ ,          R
8X  dU   VP                  RVP	                  V^,          4      ,           R,           VP	                  V^,          4      ,           4       KÈ  V^ ,          ^ 8w  g   KØ  VP	                  V^ ,          4      p\        V^ ,          \        4      '       d
   RV,          pVP                  R4      '       d   VR,          pRpMRpVP                  We,           VP	                  V^,          4      ,           R,           VP	                  V^,          4      ,           4       EK–  	  RP                  V4      pVP                  R4      '       d   VR,          pV# VP                  R	4      '       d
   VR,          pV# )r   ú + z\otimes ú - ú(%s)Ú-ºrC   NNÚ ºé   NNÚ rD   )	r   r   r   r   Ú_printr/   r   Ú
startswithÚjoin©r   ÚprinterÚarr2   r   Úarg_strÚ	str_startÚoutstrs   &&      r   Ú_latexÚDyadic._latex©   s±  € Ø�Y‰YˆÜˆr‹7�aŒ<Ü�q“6ˆMØˆÜˆAà��t�qŒyØ—	‘	˜% '§.¡.°°1µÓ"6Õ6¸ÕDØ!Ÿ.™.¨¨1­Ó.õ/ö 0ð �1•˜”Ø—	‘	˜%Ø!Ÿ.™.¨¨1­Ó.õ/à%õ&ð "Ÿ.™.¨¨1­Ó.õ/ö 0ð �1•˜–Ø!Ÿ.™.¨¨1­Ó.�Ü˜a �d¤C×(Ò(Ø$ wÕ.�GØ×%Ñ% c×*Ò*Ø% b�k�GØ %‘Ià %�IØ—	‘	˜)Õ-°·±¸qÀ½tÓ0DÕDØ%õ&Ø(/¯©°q¸µtÓ(<õ=÷ >ñ- ð0 —‘˜“ˆØ×Ñ˜U×#Ò#Ø˜B•ZˆFð ˆð ×Ñ˜s×#Ò#Ø˜B•ZˆFØˆr   c                ó4   aa€ V o ! VV3R  lR4      pV! 4       # )c                   ó4   <a € ] tR t^Ðt o ^ tVV3R ltRtV tR# )ÚDyadic._pretty.<locals>.Fakec                ó>  <€ SP                   pSp\        V4      ^ 8X  d   \        ^ 4      # SP                  '       d   RMRp. pV EF€  pV^ ,          ^8X  dD   VP	                  RVP                  V^,          4      VVP                  V^,          4      .4       KU  V^ ,          R
8X  dD   VP	                  RVP                  V^,          4      VVP                  V^,          4      .4       K¦  V^ ,          ^ 8w  g   K¶  \        V^ ,          \        4      '       d/   VP                  V^ ,          4      P                  4       ^ ,          pMVP                  V^ ,          4      pVP                  R4      '       d   VR,          pRp	MRp	VP	                  W˜RVP                  V^,          4      VVP                  V^,          4      .4       EKƒ  	  RP                  V4      p
V
P                  R4      '       d   V
R	,          p
V
# V
P                  R4      '       d
   V
R,          p
V
# )r   u   âŠ—Ú|rH   rI   rK   rL   rP   rM   rN   rD   )r   r   r   Ú_use_unicodeÚextendÚdoprintr/   r   rQ   ÚparensrR   rS   )r   r   ÚkwargsrV   ÚmppÚbarr2   r   rW   rX   rY   ÚerU   s   &*,        €€r   ÚrenderÚ#Dyadic._pretty.<locals>.Fake.renderÓ   sÎ  ø€ Ø—V‘V�Ø�Ü�r“7˜a”<Ü˜q›6�MØ-4×-A×-AÐ-AÑ)Às�Ø�Ü�Aà˜•t˜q”yØŸ	™	 5Ø"%§+¡+¨a°­dÓ"3Ø"%Ø"%§+¡+¨a°­dÓ"3ð#5ö 6ð ˜1� œØŸ	™	 5Ø"%§+¡+¨a°­dÓ"3Ø"%Ø"%§+¡+¨a°­dÓ"3ð#5ö 6ð ˜1� žÜ% a¨¥d¬C×0Ò0Ø&)§j¡jØ ! !¥ó'&ß&,¡f£h¨qõ'2™Gð '*§k¡k°!°Aµ$Ó&7˜GØ"×-Ñ-¨c×2Ò2Ø&-¨b¥k˜GØ(-™Ià(-˜IØŸ	™	 9°sØ"%§+¡+¨a°­dÓ"3Ø"%Ø"%§+¡+¨a°­dÓ"3ð#5÷ 6ñ9 ðB Ÿ™ ›�Ø×$Ñ$ U×+Ò+Ø# B�Z�Fð �ð ×&Ñ& s×+Ò+Ø# B�Z�FØ�r   r>   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úbaselineri   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__rh   rU   s   @€€r   ÚFaker^   Ð   s   ù‡ € ØˆH÷-ô -r   rs   r>   )r   rU   rs   rh   s   &f @r   Ú_prettyÚDyadic._prettyÍ   s   ù€ Øˆ÷0	õ 0	ñb ‹vˆr   c                ó"   € RV ,          V,           # rB   r>   r!   s   &&r   Ú__rsub__ÚDyadic.__rsub__  s   € Ø�T•	˜UÕ"Ð"r   c                ód  € V P                   p\        V4      ^ 8X  d   VP                  ^ 4      # . pV EF¦  pV^ ,          ^8X  d\   VP                  RVP                  V^,          4      ,           R,           VP                  V^,          4      ,           R,           4       Km  V^ ,          R8X  d\   VP                  RVP                  V^,          4      ,           R,           VP                  V^,          4      ,           R,           4       KÖ  V^ ,          ^ 8w  g   Kæ  VP                  V^ ,          4      p\	        V^ ,          \
        4      '       d
   RV,          pV^ ,          R8X  d   VR,          pRpMR	pVP                  We,           R
,           VP                  V^,          4      ,           R,           VP                  V^,          4      ,           R,           4       EK©  	  RP                  V4      pVP                  R	4      '       d   VR,          pV# VP                  R4      '       d
   VR,          pV# )zPrinting method. z + (r`   Ú)z - (rJ   rK   rL   rI   rH   z*(rM   rN   rP   rD   )r   r   rQ   r   r/   r   rS   rR   rT   s   &&      r   Ú	_sympystrÚDyadic._sympystr  sÊ  € à�Y‰YˆÜˆr‹7�aŒ<Ø—>‘> !Ó$Ð$ØˆÜˆAà��t�qŒyØ—	‘	˜& 7§>¡>°!°Aµ$Ó#7Õ7¸#Õ=Ø!Ÿ.™.¨¨1­Ó.õ/Ø14õ5ö 6ð �1•˜”Ø—	‘	˜& 7§>¡>°!°Aµ$Ó#7Õ7¸#Õ=Ø!Ÿ.™.¨¨1­Ó.õ/Ø14õ5ö 6ð �1•˜–Ø!Ÿ.™.¨¨1­Ó.�Ü˜a �d¤C×(Ò(Ø$ wÕ.�GØ˜1•: Ô$Ø% b�k�GØ %‘Ià %�IØ—	‘	˜)Õ-°Õ4Ø!Ÿ.™.¨¨1­Ó.õ/àõà '§¡¨q°­tÓ 4õ5à7:õ;÷ <ñ) ð. —‘˜“ˆØ×Ñ˜U×#Ò#Ø˜B•ZˆFð ˆð ×Ñ˜s×#Ò#Ø˜B•ZˆFØˆr   c                ó2   € V P                  VR,          4      # )zThe subtraction operator. rD   )r#   r!   s   &&r   Ú__sub__ÚDyadic.__sub__*  s   € à�|‰|˜E B�JÓ'Ð'r   c                óâ   € ^ RI Hp V! V4      p\        ^ 4      pV P                   FE  pW4^ ,          V^,          P	                  V^,          P                  V4      4      ,          ,          pKG  	  V# )a:  Returns the dyadic resulting from the dyadic vector cross product:
Dyadic x Vector.

Parameters
==========
other : Vector
    Vector to cross with.

Examples
========
>>> from sympy.physics.vector import ReferenceFrame, outer, cross
>>> N = ReferenceFrame('N')
>>> d = outer(N.x, N.x)
>>> cross(d, N.y)
(N.x|N.z)

)r-   )r.   r-   r	   r   r1   Úcross)r   r"   r-   r2   r   s   &&   r   r�   ÚDyadic.cross.  sX   € õ$ 	>Ù˜eÓ$ˆÜ�A‹YˆØ—”ˆAØ�A•$˜!˜A�$Ÿ*™* a¨¥d§j¡j°Ó&7Ó9Õ:Õ:ŠBñ àˆ	r   Nc                ó    € ^ RI Hp V! WV4      # )ag  Expresses this Dyadic in alternate frame(s)

The first frame is the list side expression, the second frame is the
right side; if Dyadic is in form A.x|B.y, you can express it in two
different frames. If no second frame is given, the Dyadic is
expressed in only one frame.

Calls the global express function

Parameters
==========

frame1 : ReferenceFrame
    The frame to express the left side of the Dyadic in
frame2 : ReferenceFrame
    If provided, the frame to express the right side of the Dyadic in

Examples
========

>>> from sympy.physics.vector import ReferenceFrame, outer, dynamicsymbols
>>> from sympy.physics.vector import init_vprinting
>>> init_vprinting(pretty_print=False)
>>> N = ReferenceFrame('N')
>>> q = dynamicsymbols('q')
>>> B = N.orientnew('B', 'Axis', [q, N.z])
>>> d = outer(N.x, N.x)
>>> d.express(B, N)
cos(q)*(B.x|N.x) - sin(q)*(B.y|N.x)

)Úexpress)Úsympy.physics.vector.functionsr„   )r   Úframe1Úframe2r„   s   &&& r   r„   ÚDyadic.expressJ  s   € õ@ 	;Ù�t VÓ,Ð,r   c           
     óÀ   € 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 )ai  Returns the matrix form of the dyadic with respect to one or two
reference frames.

Parameters
----------
reference_frame : ReferenceFrame
    The reference frame that the rows and columns of the matrix
    correspond to. If a second reference frame is provided, this
    only corresponds to the rows of the matrix.
second_reference_frame : ReferenceFrame, optional, default=None
    The reference frame that the columns of the matrix correspond
    to.

Returns
-------
matrix : ImmutableMatrix, shape(3,3)
    The matrix that gives the 2D tensor form.

Examples
========

>>> from sympy import symbols, trigsimp
>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.mechanics import inertia
>>> Ixx, Iyy, Izz, Ixy, Iyz, Ixz = symbols('Ixx, Iyy, Izz, Ixy, Iyz, Ixz')
>>> N = ReferenceFrame('N')
>>> inertia_dyadic = inertia(N, Ixx, Iyy, Izz, Ixy, Iyz, Ixz)
>>> inertia_dyadic.to_matrix(N)
Matrix([
[Ixx, Ixy, Ixz],
[Ixy, Iyy, Iyz],
[Ixz, Iyz, Izz]])
>>> beta = symbols('beta')
>>> A = N.orientnew('A', 'Axis', (beta, N.x))
>>> trigsimp(inertia_dyadic.to_matrix(A))
Matrix([
[                           Ixx,                                           Ixy*cos(beta) + Ixz*sin(beta),                                           -Ixy*sin(beta) + Ixz*cos(beta)],
[ Ixy*cos(beta) + Ixz*sin(beta), Iyy*cos(2*beta)/2 + Iyy/2 + Iyz*sin(2*beta) - Izz*cos(2*beta)/2 + Izz/2,                 -Iyy*sin(2*beta)/2 + Iyz*cos(2*beta) + Izz*sin(2*beta)/2],
[-Ixy*sin(beta) + Ixz*cos(beta),                -Iyy*sin(2*beta)/2 + Iyz*cos(2*beta) + Izz*sin(2*beta)/2, -Iyy*cos(2*beta)/2 + Iyy/2 - Iyz*sin(2*beta) + Izz*cos(2*beta)/2 + Izz/2]])

)ÚMatrixr0   Úreshape)r   Úreference_frameÚsecond_reference_framer   Újs   &&&  r   Ú	to_matrixÚDyadic.to_matrixm  sd   € ðV "Ò)Ø%4Ð"ä±?ô .±?¨aÛ,ð HI—u‘u˜T“{—‘ qÖ)Ù,ñ *±?ò .ó /ß/6©w°q¸!«}ð	=ùó .s   ‘1A
c                óÎ   € \        V P                   Uu. uF7  p\        V^ ,          P                  ! R/ VB V^,          V^,          3.4      NK9  	  up\        ^ 4      4      # u upi )z(Calls .doit() on each term in the Dyadicr>   )Úsumr   r	   Údoit)r   Úhintsr   s   &, r   r“   ÚDyadic.doitž  sa   € äØ!ŸYšYó(Ù&˜ô ˜Q˜q�TŸYšYÑ/¨Ñ/°°1µ°q¸µtÐ<Ð=Ö>Ù&ñ(Ü)/°«ó4ð 	4ùò (ó   ”=A"c                ó   € ^ RI Hp V! W4      # )a'  Take the time derivative of this Dyadic in a frame.

This function calls the global time_derivative method

Parameters
==========

frame : ReferenceFrame
    The frame to take the time derivative in

Examples
========

>>> from sympy.physics.vector import ReferenceFrame, outer, dynamicsymbols
>>> from sympy.physics.vector import init_vprinting
>>> init_vprinting(pretty_print=False)
>>> N = ReferenceFrame('N')
>>> q = dynamicsymbols('q')
>>> B = N.orientnew('B', 'Axis', [q, N.z])
>>> d = outer(N.x, N.x)
>>> d.dt(B)
- q'*(N.y|N.x) - q'*(N.x|N.y)

)Útime_derivative)r…   r˜   )r   Úframer˜   s   && r   ÚdtÚ	Dyadic.dt£  s   € õ2 	CÙ˜tÓ+Ð+r   c                ó´   € \        ^ 4      pV P                   F<  pV\        V^ ,          P                  4       V^,          V^,          3.4      ,          pK>  	  V# )zReturns a simplified Dyadic.)r	   r   Úsimplify)r   Úoutr   s   &  r   r�   ÚDyadic.simplify¿  sI   € ä�Q‹iˆØ—”ˆAØ”6˜A˜a�DŸM™M›O¨Q¨q­T°1°Qµ4Ð8Ð9Ó:Õ:ŠCñ àˆ
r   c                óÎ   € \        V P                   Uu. uF7  p\        V^ ,          P                  ! V/ VB V^,          V^,          3.4      NK9  	  up\        ^ 4      4      # u upi )zåSubstitution on the Dyadic.

Examples
========

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy import Symbol
>>> N = ReferenceFrame('N')
>>> s = Symbol('s')
>>> a = s*(N.x|N.x)
>>> a.subs({s: 2})
2*(N.x|N.x)

)r’   r   r	   Úsubs)r   r   re   r   s   &*, r   r¡   ÚDyadic.subsÆ  se   € ô  Ø!ŸYšYó(Ù&˜ô ˜Q˜q�TŸYšY¨Ð7°Ñ7¸¸1½¸qÀ½tÐDÐEÖFÙ&ñ(Ü)/°«ó4ð 	4ùò (r–   c                óÈ   € \        V4      '       g   \        R4      h\        ^ 4      pV P                   F*  w  r4pW!! V4      VP	                  V4      ,          ,          pK,  	  V# )z/Apply a function to each component of a Dyadic.z`f` must be callable.)ÚcallableÚ	TypeErrorr	   r   r1   )r   Úfrž   ÚaÚbÚcs   &&    r   Ú	applyfuncÚDyadic.applyfuncÙ  sR   € ä˜�{Š{ÜÐ3Ó4Ð4ä�Q‹iˆØ—y”y‰GˆA�!Ø�1�Q“4˜1Ÿ7™7 1›:Õ&Õ&ŠCñ !àˆ
r   c                ó  € V P                   '       g   V # . p\        V4      pV P                    FD  p\        V4      pV^ ,          P                  VR7      V^ &   VP	                  \        V4      4       KF  	  \        V4      # )r   )Ún)r   r   r&   Úevalfr   Útupler	   )r   ÚprecÚnew_argsÚdpsr   Ú
new_inlists   &&    r   Ú_eval_evalfÚDyadic._eval_evalfã  sl   € Ø�y�yˆyØˆKØˆÜ˜$ÓˆØ—i”iˆFÜ˜f›ˆJØ" 1�IŸO™O¨c˜OÓ2ˆJ�q‰MØ�O‰OœE *Ó-Ö.ñ  ô �hÓÐr   c                óÂ   € . pV P                    FC  p\        V4      pV^ ,          P                  V4      V^ &   VP                  \	        V4      4       KE  	  \        V4      # )aÎ  
Replace occurrences of objects within the measure numbers of the
Dyadic.

Parameters
==========

rule : dict-like
    Expresses a replacement rule.

Returns
=======

Dyadic
    Result of the replacement.

Examples
========

>>> from sympy import symbols, pi
>>> from sympy.physics.vector import ReferenceFrame, outer
>>> N = ReferenceFrame('N')
>>> D = outer(N.x, N.x)
>>> x, y, z = symbols('x y z')
>>> ((1 + x*y) * D).xreplace({x: pi})
(pi*y + 1)*(N.x|N.x)
>>> ((1 + x*y) * D).xreplace({x: pi, y: 2})
(1 + 2*pi)*(N.x|N.x)

Replacements occur only if an entire node in the expression tree is
matched:

>>> ((x*y + z) * D).xreplace({x*y: pi})
(z + pi)*(N.x|N.x)
>>> ((x*y*z) * D).xreplace({x*y: pi})
x*y*z*(N.x|N.x)

)r   r&   Úxreplacer   r¯   r	   )r   Úruler±   r   r³   s   &&   r   r·   ÚDyadic.xreplaceî  sW   € ðP ˆØ—i”iˆFÜ˜f›ˆJØ& q�M×2Ñ2°4Ó8ˆJ�q‰MØ�O‰OœE *Ó-Ö.ñ  ô �hÓÐr   )r   r=   )%rk   rl   rm   rn   Ú__doc__Ú	is_numberr   Úpropertyr   r#   Ú__radd__r)   Ú__rmul__r0   Ú__and__r6   r:   r?   rE   rZ   rt   rw   r{   r~   r�   Ú__xor__r„   r�   r“   rš   r�   r¡   rª   r´   r·   rp   rq   )rr   s   @r   r	   r	      sÀ   ø‡ € ñ
ð €Iò$ðL ñó ðò.ð
 €Hòð4 €Hò"ðJ €Gò'ò1ò !òò"òH4òl#ò"òH(òð4 €Gô!-ôF/=òb4ò
,ò8ò4ò&ò	 ÷- ð - r   c                 óH   € \        V \        4      '       g   \        R 4      hV # )zA Dyadic must be supplied)r/   r	   r¥   )r"   s   &r   r    r      s    € Ü�eœV×$Ò$ÜÐ3Ó4Ð4Ø€Lr   N)Úsympyr   r   r   rŠ   Úsympy.core.evalfr   Úsympy.printing.defaultsr   Úmpmath.libmp.libmpfr   Ú__all__r	   r    r>   r   r   Ú<module>rÇ      s3   ðß 9Ñ 9Ý 'Ý -å +ð ˆ*€ôP ˆY˜
ô P ôfr   