
    sh                         S SK JrJr  S SKJr  S SKJrJr  S SKJ	r
  S SKJrJrJr  S SKJr  S SKJr  \" S5      rS	 rS
 rS rS rS rS rg)    )Floatpi)symbols)cossin)ImmutableDenseMatrix)ReferenceFramedynamicsymbolsouter_check_dyadic)raisesAc            	      V  ^ [         R                  [         R                  -  m[         R                  [         R                  -  n [         R                  [         R                  -  nTS-  S:X  d   eTS:w  d   eTS-  S[         R                  -  [         R                  -  :X  d   eTS-  ST-  :X  d   eTST-  -  S:X  d   eTU -  S:X  d   eT[         R                  -  [         R                  :X  d   eT[         R                  -  S:X  d   eT[         R                  -  [         R                  [         R                  -  :X  d   eT[         R                  -  [         R                  * [         R                  -  :X  d   eU [         R                  -  [         R                  * [         R                  -  :X  d   e[         R                  T-  S:X  d   e[         R                  T-  [         R                  * [         R                  -  :X  d   e[         R                  T-  [         R                  [         R                  -  :X  d   e[         R                  T-  [         R                  :X  d   e[         R                  T-  S:X  d   e[         R                  U -  [         R                  :X  d   eTU-  [         R                  [         R                  -  :X  d   eUT-  S:X  d   eTR	                  [         5      S:X  d   e[        S5      n[        SS5      n[         R                  SSU[         R                  /5      nTR                  U5      TR                  XD5      :X  d   eTR                  U5      [        U5      S-  UR                  UR                  -  -  [        U5      * [        U5      -  UR                  UR                  -  -  -   [        U5      * [        U5      -  UR                  UR                  -  -  -   [        U5      S-  UR                  UR                  -  -  -   :X  d   eTR                  U[         5      [        U5      UR                  [         R                  -  -  [        U5      * UR                  [         R                  -  -  -   :X  d   eTR                  [         U5      [        U5      [         R                  UR                  -  -  [        U5      * [         R                  UR                  -  -  -   :X  d   eTR	                  U5      U* [         R                  [         R                  -  -  U* [         R                  [         R                  -  -  -   :X  d   eTR                  [         5      [        / S	Q/ S
Q/ S
Q/5      :X  d   eTR                  [         U5      [        [        U5      [        U5      * S// S
Q/ S
Q/5      :X  d   eUR                  [         5      [        / SQ/ S
Q/ S
Q/5      :X  d   e[        S5      u  pVpxpU[         R                  -  U[         R                  -  -   U[         R                  -  -   nU[         R                  -  U	[         R                  -  -   U
[         R                  -  -   nUR                  U5      nUR                  [         5      [        XX-  XY-  XZ-  /Xh-  Xi-  Xj-  /Xx-  Xy-  Xz-  //5      :X  d   eUR                  U5      n[         R                  SSU[         R                  /5      n[        UR                  [         5      UR                  [         5      -  UR                  [         5      R                   -  UR                  U5      5       H  u  nnUU-
  R#                  5       S:X  a  M   e   [%        [&        U4S j5        g )Nr      g       @g      ?q   BAxis)r   r   r   )r   r   r   )r   r   r   za, b, c, d, e, fCc                  &   > T R                  S5      $ Nr   )	applyfunc)d1s   z/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/physics/vector/tests/test_dyadic.py<lambda>test_dyadic.<locals>.<lambda>A   s    bll1o    )r   xyzdtr
   	orientnewexpressr   r   	to_matrixMatrixr   r   zipdcmTsimplifyr   	TypeError)d2d3r   qdr   abcdefv1v2d4d5r   expectedactualr   s                     @r   test_dyadicr;      s   	
qssB	
qssB	
qssB6Q;;7N76QWqss]"""7cBhR=A7a<<8qss??8q==8qssQSSy   8uqss{"""8uqss{"""338q==338uqss{"""338qssQSSy   338qss??338q==338qss??7accACCi7a<<558q==sA	Q	B	C!QSS*A::a=BJJq,,,,::a=c!faiACC!##I63q6'CF:JSS133Y: F7SV+acc	:;>A!faiSS133Y>    ::aA13395#a&QSS133Y8OOOOO::aA13395#a&QSS133Y8OOOOO558acc	*rcaccACCi-@@@@@<<?fiI%FGGGG<<1#a&3q6'1)=)2)2)4 "5 5 5 5 <<?fiI%FGGGG12A!	
QSS1qss7	QW	$B	
QSS1qss7	QW	$B	"B<<?fquaeQU&;'(uaeQU&;'(uaeQU&;&= > > > > 
"B	C!QSS*Aa2<<? :QUU1XZZ G "Q1&6!++-2221 9-.r   c            
         [        S5      u
  pp#pEpgp[        S5      n
U
R                  U
R                  -  nSU -  SU-  -   U-  nU
R                  U-  U
R                  -  X-   X-  -  :w  d   eUR                  5       nU
R                  U-  U
R                  -  X-   X-  -  :X  d   eU	S-  US-  -  S[        -  U-  US-  -  -  U-  nUR                  5       nU
R                  U-  U
R                  -  U	S-  US-  -  S[        -  U-  US-  -  -  :X  d   eSSU -  -   SSSU -  -   -  -
  SSU -  -   -  U-  nUR                  5       nU
R                  U-  U
R                  -  S:X  d   eSU -  US-  -  SUS-  -  -
  SU S-  -  U-  -
  X-   S-  -  U-  nUR                  5       nU
R                  U-  U
R                  -  S	U-  :X  d   eg )
Nzx, y, z, k, n, m, w, f, s, ANr   r         r   )r   r	   r   r*   r   )r   r    r!   knmwr4   sr   r=   dytest1test2test3test4s                   r   test_dyadic_simplifyrL   D   s   #*+I#J A!aAsA	
qssBUQU]b ECC%K!##15QU"3333NNECC%K!##15QU"3333TAqD[AFQJA-."4ENNECC%K!##1a4!Q$;!b&1*q!t2C#DEEE!a%i!q1q5y/)a!a%i8B>ENNECC%K!##!###1fq!tma!Q$h&QTA5!%!CrIENNECC%K!##"q&(((r   c                      [        S5      n [        S5      nXR                  U R                  -  -  nUR                  US05      SU R                  U R                  -  -  :X  d   eg )Nr=   rF   r   )r	   r   r   subs)r=   rF   r/   s      r   test_dyadic_subsrO   [   sR    sAA	339A661a&>Qacc	]***r   c                  &    [        [        S 5        g )Nc                      [        S5      $ r   r    r   r   r   #test_check_dyadic.<locals>.<lambda>c   s	    mA.r   )r   r+   rR   r   r   test_check_dyadicrT   b   s    
9./r   c                  @   [        S5      n [        U R                  U R                  -  -  nUR                  S5      [	        SS5      U R                  U R                  -  -  :X  d   e[        S5      nSU-  [        -  U R                  U R                  -  -  nUR                  S5      [	        SS5      [	        SS5      -  U-  U R                  U R                  -  -  :X  d   eUR                  SUS	0S
9[	        SS5      U R                  U R                  -  -  :X  d   eg )Nr=   r?   z3.1416rF      r   5	   g"~@)rN   z80.48760378)r	   r   r   evalfr   r   )r=   r/   rF   s      r   test_dyadic_evalfrZ   f   s    sA
accACCiA771:x+qssQSSy9999A	A
QSS133YA771:sAx);;a?1339MMMM771Au:7&%q*AQSS133Y*OOOOr   c                    ^^^ [        S5      u  mmn [        S5      n[        UR                  UR                  5      nTT-  U-  mTR	                  T[        T5      05      [        T5      T-  U-  :X  d   eTR	                  TT-  [        05      [        U-  :X  d   eTT-  U -  U-  mTR	                  TT-  U -  S05      U:X  d   eTR	                  TSU S05      U:X  d   e[        [        U4S j5        [        [        UUU4S j5        g )Nzx y zr=   r   r   c                  $   > T R                  5       $ Nxreplace)vs   r   r   &test_dyadic_xreplace.<locals>.<lambda>z   s    ajjlr   c                  *   > T R                  TT/5      $ r]   r^   )r`   r   r    s   r   r   ra   {   s    ajj!Q0r   )	r   r	   r   r   r_   r   r   r   r+   )r!   r=   Dr`   r   r    s      @@@r   test_dyadic_xreplacerd   p   s    gGAq!sAacc133A	!aA::q3q6l#s1vax!|333::qsRj!R!V+++	
1q1A::!ax!n%***::qAaj!Q&&&
9*+
901r   N)sympy.core.numbersr   r   sympy.core.symbolr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.immutabler   r&   sympy.physics.vectorr	   r
   r   sympy.physics.vector.dyadicr   sympy.testing.pytestr   r   r;   rL   rO   rT   rZ   rd   rR   r   r   <module>rl      sG    * % ? C F F 5 '35/p).+0P2r   