+
    i(                        ^ RI HtHtHtHtHtHtHtHt ^ RI	H
t
HtHtHt ^ RI	HtHtHtHtHtHtHtHtHt ^ RIHtHtHt ^ RIHtHt ]! R4      w  ttt t!t"]! R4      t#]#PI                  RR	]]#PJ                  .4      t&]&PI                  R
R	]]&PN                  .4      t(](PI                  RR	] ](PR                  .4      t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R# )    )sincostanpisymbolsMatrixSFunction)ParticlePointReferenceFrame	RigidBody)	angular_momentumdynamicsymbolskinetic_energylinear_momentumouterpotential_energymsubsfind_dynamicsymbols
Lagrangian)center_of_mass_validate_coordinates_parse_linear_solver)raiseswarns_deprecated_sympyzq1 q2 q3 q4 q5NAAxisBCc                  6  aaa \        R 4      o\        R4      p V P                  S^SP                  ,          4       \	        SP
                  SP
                  4      p\        RV S^W34      o\        R4      p\        RV^4      oSP                  P                  S^
SP
                  ,          4       \        \        VV3R l4       \        \        VV3R l4       \        SSS4      ^
SP
                  ,          RSP                  ,          ,           8X  g   Q hR# )	r   Acr   PPac                     < \        S S S4      # Nr   r   r%   s   j/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/mechanics/tests/test_functions.py<lambda>&test_linear_momentum.<locals>.<lambda>       oaB7    c                     < \        S S S4      # r'   r(   r   r%   s   r*   r+   r,      r-   r.   i  N)r   r   set_velyr   xr   r   pointr   	TypeErrorr   )r#   Ir$   r   r   r%   s      @@@r*   test_linear_momentumr7      s    sA	tBJJq"qss(acc133A#r1b1'*Ac
A	$1	BHHQQSS!
978
9781a$QSS39(<<<<r.   c                 j  a	a
aa \        R4      w  rr#\        R4      p\        R4      o
\        R4      p\        R4      oSP	                  RVS
P
                  ,          4      pVP	                  RVS
P
                  ,          4      pSP                  S
^ S
P
                  ,          4       VP                  S
VS
P                  ,          4       VP                  SS
V4       VP                  SS
V4       \        RWp4      o\        R	WeW\        S
P                  S
P                  4      ,          V34      o	^V ,          V,          V,          S
P                  ,          W,          V,          S
P                  ,          ,           p\        S
S	S4      V8X  g   Q h\        \         V	V
V3R
 l4       \        \         V	VV3R l4       \        \         V
VV3R l4       W1V^,          ,          ,           ^V ,          V^,          ,          ,           V,          S
P                  ,          p\#        SS
S	S4      V8X  g   Q hR# )a  A rod with length 2l, centroidal inertia I, and mass M along with a
particle of mass m fixed to the end of the rod rotate with an angular rate
of omega about point O which is fixed to the non-particle end of the rod.
The rod's reference frame is A and the inertial frame is N.z
m, M, l, Iomegar   aOr#   r$   r%   r   c                      < \        SSS S4      # r'   r   )r   r   r%   s   r*   r+   ;test_angular_momentum_and_linear_momentum.<locals>.<lambda>7       .q!Q;r.   c                      < \        SSS S4      # r'   r=   )r   r;   r%   s   r*   r+   r>   8   r?   r.   c                      < \        SS SS4      # r'   r=   )r   r;   r%   s   r*   r+   r>   9   r?   r.   N)r   r   r   r   	locatenewr3   r1   set_ang_velzv2pt_theoryr   r   r   r2   r   r   r5   r   )mMlr6   r9   r:   r#   r$   expectedr   r   r;   r%   s            @@@@r*   )test_angular_momentum_and_linear_momentumrJ   #   s   
 &JA!7#EsAsAc
A	
T1qss7	#B
S!acc'"AIIaQSSMM!UQSS[!NN1aMM!Q	$	B#raeACCo"5r!:;A1uu}q 133&)<<H1a$000
9;<
9;<
9;<1Hq1uq!t|+u4qss:HAq!R(H444r.   c                    a	a
a \        R 4      w  rp\        R4      p\        R4      o
\        R4      pVP	                  S
^ S
P
                  ,          4       VP                  RVS
P
                  ,          4      pVP                  RVS
P
                  ,          4      p\        R4      pVP                  S
VS
P                  ,          4       VP                  VS
V4       VP                  VS
V4       \        RW`4      o\        S
P                  S
P                  4      p\        RWWWV34      o	\        \        V	V3R	 l4       \        \        V	V
3R
 l4       ^ \        S
SS	4      W^,          ,          V^,          ,          ^,          ^V^,          ,          V ,          V^,          ,          ,           V^,          ^,          ,           ,
          P!                  4       8X  g   Q hR# )zm M l1r9   r   r;   r#   r$   r:   r%   r   c                     < \        SSS 4      # r'   r   r)   s   r*   r+   %test_kinetic_energy.<locals>.<lambda>M   s    nRQ7r.   c                     < \        SSS 4      # r'   rM   )r   r   s   r*   r+   rN   N   s    nQ15r.   N)r   r   r   r   r1   r3   rB   rC   rD   rE   r   r   r   r   r5   r   expand)rF   rG   l1r9   r;   r#   r$   r:   r6   r   r   r%   s            @@@r*   test_kinetic_energyrR   >   sg   x HA"7#EsAc
AIIaQSS	
T28	$B
S"qss(#AsAMM!UQSS[!NN1aMM!Q	$	Bacc133A#raR)A
978
9562q)Q1uWUAX-=a-?Agaiq .!#(!8A:.. /069 9 9r.   c                     \        R 4      w  rr#rE\        R4      p\        R4      p\        R4      pVP	                  V^ VP
                  ,          4       VP                  RW'P
                  ,          4      p	V	P                  RW'P
                  ,          4      p
\        R4      pVP                  WvVP                  ,          4       V	P                  WV4       V
P                  WV4       \        RW4      p\        VP                  VP                  4      p\        RWWV	34      pW,          V,          Vn        W,          V,          Vn        \        W4      W,          V,          W,          V,          ,           8X  g   Q hR	# )
zm M l1 g h Hr9   r   r;   r#   r$   r:   r%   r   N)r   r   r   r   r1   r3   rB   rC   rD   rE   r   r   r   r   )rF   rG   rQ   ghHr9   r   r;   r#   r$   r:   r%   r6   r   s                  r*   test_potential_energyrW   S   s   /A"7#EsAc
AIIaQSS	
T28	$B
S"ss(#AsAMM!QSS[!NN1MM!	$	Bacc133A#raR)A%!)BAA"aeai!%!)&;;;;r.   c                  *  a	a
a \        R 4      w  rr#\        R4      o
\        R4      pVP                  S
^ S
P                  ,          4       VP                  R^S
P                  ,          4      pVP                  S
^
S
P                  ,          4       \        RV^4      oVP                  R^S
P                  ,          4      pVP                  S
^S
P                  ,          4       \        R4      pVP                  S
^
S
P                  ,          4       \        S
P                  S
P                  4      p\        RWg^W34      o	W,          V,          Sn        W,          V,          S	n        \        \        V	V3R l4       \        \        V
V3R	 l4       R
# )zM m g hr   r;   r$   r%   r#   r:   r   c                     < \        S S S4      # r'   r   r)   s   r*   r+   !test_Lagrangian.<locals>.<lambda>w       jAr2r.   c                     < \        S S S4      # r'   rZ   r0   s   r*   r+   r[   x   r\   r.   N)r   r   r   r1   r3   rB   r   r2   rC   rD   r   r   r   r   r5   )rG   rF   rT   rU   r;   r$   r#   r:   r6   r   r   r%   s            @@@r*   test_Lagrangianr^   g   s   #JA!sAc
AIIaQSS	CQSS!AIIaacc	$1	B	
T1qss7	#BJJq!acc'sAMM!R!##Xacc133A#rb1'*A%!)BA
923
923r.   c            	         \        R 4      w  r\        R4      w  r#p\        W,          V,           W#P                  4       ,          V,           .VP                  4       P                  4       V\	        VP                  4       4      ,           ..4      p\        W,           V.VP                  4       P                  4       ^..4      pV^V^VP                  4       ^ VP                  4       ^ /p\        WW4      V8X  g   Q h\        W#,           4      \        W#,           4      ,          WP                  4       ,          ,           pV^ V\        ^,          VP                  4       ^/p\        WWRR7      V^,           8X  g   Q h\        R4      pW(P                  ,          W8P                  ,          ,           p	W(P                  VP                  ,          ,          W8P                  VP                  ,          ,          ,           p
^VP                  ,          p^VP                  VP                  ,          ,          pV^ V^/p\        W4      V8X  g   Q h\        W4      V8X  g   Q hR# )a, bx, y, zT)smartr   N)r   r   r   diffr   r   r   r   r   r   r3   r2   )r:   br3   r2   rD   exprsolsdr   vdv_sold_sols                r*   
test_msubsrl   {   s   6?DAY'GA!AC!GQvvxZ!^,FFHMMOQQVVX%679 :D
15!*668==?A&( )C
Q1affh1668Q	/B?c!!!qu:c!%j 1VVX:-D
Q2a41	%B&!a%///sA	####A	33qss7aQSSk!AaccEEqss133wKE
Q1B<5   <5   r.   c            	      t  a \        R 4      w  r\        R4      w  r#p\        W,          V,           W#P                  4       ,          V,           .VP                  4       P                  4       V\	        VP                  4       4      ,           ..4      pW#P                  4       W2P                  4       P                  4       WDP                  4       0p\        V4      V8X  g   Q hW#V.pVP                  4       VP                  4       P                  4       VP                  4       0p\        WWR7      V8X  g   Q h\        R4      w  rp
\        R4      pWP                  ,          WP                  ,          ,           WP                  ,          ,           oWV
0p\        SVR7      V8X  g   Q h\        \        V3R l4       R# )r`   ra   )excludezd, e, fr   )reference_framec                     < \        S 4      # r'   )r   )rh   s   r*   r+   *test_find_dynamicsymbols.<locals>.<lambda>   s    215r.   N)r   r   r   rc   r   r   r   r3   r2   rD   r   
ValueError)r:   rd   r3   r2   rD   re   rf   exclude_listri   efr   rh   s               @r*   test_find_dynamicsymbolsrv      sB   6?DAY'GA!AC!GQvvxZ!^,FFHMMOQQVVX%679 :D ffh668==?Avvx
8Ct$+++!9L668QVVX]]_affh
/Ct:cAAAY'GA!sA	CC!cc'AG#A)Cq!4;;;
:56r.   c                  l   \        R 4      p \        RRR7      p\        R\        R4      \        P
                  4      p\        R\        R4      \	        ^4      4      p\        R\        R	4      \	        ^4      4      p\        R
\        R4      V4      p\        R4      p\        R4      p\        R4      p\        RWvV\        VP                  VP                  4      V34      p	VP                  P                  VP                  V P                  4       VP                  P                  VP                  V P                  V P                  ,           4       VP                  P                  VP                  V P                  4       V	P                  P                  VP                  V P                  V P                  ,           4       \        R4      p
V
P                  VP                  \        VP                  W#WEV	4      4       ^W,           ^,           ,          V P                  ,          W,           ^,           W,           ^,           ,          V P                  ,          ,           WV,           ^,           ,          V P                  ,          ,           pV
P                  VP                  4      V,
          ^ 8X  g   Q hR# )r:   rF   T)realp1p1_ptp2p2_ptp3p3_ptp4p4_ptb_fb_cmmbrd   oN)r   r   r   r   r	   Oner   r   r3   r4   set_posr2   
masscenterrD   r   pos_from)r:   rF   ry   r{   r}   r   r   r   r   rd   point_ore   s               r*   test_center_of_massr      s   sA$A	$g	.B	$g!	-B	$g!	-B	$g	*B

C=D	B#t"uSUUCEE':D&ABAHHRXXqss#HHRXXqssQSSy)HHRXXqss#LL1339-#JGOOBHHnRXXrrqIJafqj>!##!afqj 9!## ==FQJPQPSPS@SSDBHH%d*a///r.   c                    a aaaaaaaaa	a
aaaaa \        R 4      w	  oooo
ooooo\        R4      w  ooo\        SSS.S
SS.SSS.R7       \        SS.4       \        SS.S
.4       \        S
S.R7       \        SSS.S
SS.RR7       \        \        VVV
VV3R l4       \        SSS.S
SS.RR7       \        \        VVVV
V3R l4       \        \        VVVVV3R l4       \        SSS.S
SS.RS
SS.R	7       \        \        VVVV
VVVV3R
 l4       \        \        VVVV
VVVV3R l4       \        \        VVVV
VVVV3R l4       \        SS,           S.RR7       \        \        VVV3R l4       \        SSS.^ S
S.RR7       \        \        VVVV
V3R l4       \        SS,           S,           S.^ S
.RR7       \        \        VVVVV
3R l4       \        SS.RR7       \        \        VV3R l4       \         P
                  o	\        R4      o \        R\        R7      w  oo\        S! S 4      S! S 4      .RR7       \        \        V VV3R l4       \        \        V VV3R l4       S \         n        \        S! S 4      S! S 4      .4       \        \        VVV	3R l4       S	\         n        R# )zq1:4 u1:4 ua1:4zs1:4u_auxiliaryspeedsFcheck_duplicatesc                  (   < \        S SS.SSS.4      # r'   r   )q1q2u1u2u3s   r*   r+   +test_validate_coordinates.<locals>.<lambda>   s    4	Rr2rl $r.   c                  ,   < \        S SS.SSS.R R7      # Tr   r   )r   r   q3r   r   s   r*   r+   r          4	Rr2rlT ;r.   c                  ,   < \        S SS.S SS.R R7      # r   r   )r   r   r   r   r   s   r*   r+   r      r   r.   )r   r   c                  2   < \        S SS.SSS.SSS.R 7      # r   r   r   r   r   r   r   r   ua2ua3s   r*   r+   r      %    4	Rr2rlS# @r.   c                  2   < \        S SS.SSS.S SS.R 7      # r   r   r   s   r*   r+   r      r   r.   c                  2   < \        S SS.SSS.SSS.R 7      # r   r   )r   r   r   r   r   r   ua1r   s   r*   r+   r      s%    4	Rr2rlc3 Ar.   is_dynamicsymbolsc                  ,   < \        S S,           S.4      # r'   r   )r   r   r   s   r*   r+   r      s    4b2gr]Cr.   c                  ,   < \        SS S.^ SS.RR7      # r   Tr   r   )r   r   s1r   r   s   r*   r+   r      s    4	Rq"bkT ;r.   c                  D   < \        SS,           S,           S .^ S.RR7      # r   r   )r   r   s2s3r   s   r*   r+   r      s#    4	b2rQGt =r.   )r   r   c                      < \        S S.R 7      # r   r   )r   r   s   r*   r+   r      s    4"cKr.   r:   zf1:3)clsc                  6   < \        S! S 4      S! S 4      .4      # r'   r   r:   f1f2s   r*   r+   r          4beRU^Dr.   c                  8   < \        S! S 4      S! S 4      .R 7      # )r   r   r   s   r*   r+   r      s    4RUBqENKr.   c                  6   < \        S ! S4      S! S4      .4      # r'   r   )r   r   ts   r*   r+   r      r   r.   N)r   r   r   r   rr   _tr
   )r:   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @@@@@@@@@@@@@@@@r*   test_validate_coordinatesr      sd   ,:;L,M)BBBCcJBB2r2,R'*Co7 2r(#2r(RD)"b*2r2,RuM
: $ $ %2r2,RuM
: ; ; <
: ; ; <2r2,Ru')3n6
: @ @ A
: @ @ A
: A A B 27B-5A
:CD2r2,BuM
: ; ; <27R<,q"gO
: = = >r3i5I
:KLAAV*FB2a5"Q%.EB
:DE
:KLN2a5"Q%.)
:DENr.   c                     \        ^^\        R4      4      \        ^^\        R4      4      r\        \         P                  4      \         P                  8X  g   Q h\        R4      ! W4      \         P                  ! W4      8X  g   Q hR# )   za:9zb:6LUN)r   r   r   LUsolve)r   rd   s     r*   test_parse_linear_solverr      s_    !Q'1gen)Eq/6>>AAA%a+v~~a/CCCCr.   c            	         ^ RI Hp HpHp \	        R4      p\        4       ;_uu_ 4        V ! V^ ^^ ^4      VP                  VP                  ,          VP                  VP                  ,          ,           VP                  VP                  ,          ,           8X  g   Q h RRR4       \        4       ;_uu_ 4        V! ^VP                  VP                  ,           V4      VP                  VP                  ,          VP                  VP                  ,          ,           ^VP                  VP                  ,          ,          ,           VP                  VP                  ,          ,
          VP                  VP                  ,          ,
          8X  g   Q h RRR4       \        R4      p\        4       ;_uu_ 4        V! RVP                  ,          V4      VP                  RVP                  ,          VP                  ,          3.8X  g   Q h RRR4       R#   + '       g   i     EL|; i  + '       g   i     L; i  + '       g   i     R# ; i)r   )inertiainertia_of_point_massgravityr   Nr$   )!sympy.physics.mechanics.functionsr   r   r   r   r   r3   r2   rD   r   r   mass)r   r   r   r   ps        r*   test_deprecated_moved_functionsr      st   1 1sA		!	!q!Q1%!##)acc	)BaccACCi)PPPP 
"		!	!$Qacc	15SS133Y1339%QSS133Y7SS133Y339&' 	' ' 
" 	A		!	!rACCx#rAFF{QSS7H(I'JJJJ 
"	! 
"	!	!	!	!
 
"	!	!s&   A3H6CH#3AH6H 	#H3	6I	N)6sympyr   r   r   r   r   r   r	   r
   sympy.physics.mechanicsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r   r   r   r   q4q5r   	orientnewrD   r   r3   r    r2   r!   r7   rJ   rR   rW   r^   rl   rv   r   r   r   r    r.   r*   <module>r      s    A A A0 0F F F
A A ? -. BB3KKVb!##Y'KKVb!##Y'KKVb!##Y'=569*<(4(!0720*0fDKr.   