+
    i'                         ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RI	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 ^ RIHtHt ^ R	IHt ^ R
IHt ^ RIH t  ]PB                  t"R t#R t$R t%R t&R t'R t(R t)R t*R# )    )expand)symbols)cossin)Matrix)trigsimp)	PinJointJointsMethod	RigidBodyParticleBodyKanesMethodPrismaticJointLagrangesMethodinertia)dynamicsymbolsReferenceFrame)raiseswarns_deprecated_sympy)zeros)lambdify)solvec                  |   \        4       ;_uu_ 4        \        R 4      p \        R4      pRRR4       \        RX X4      p\        R4      w  r4\	        R4      w  rVV P                  W@P                  ,          4       \        4       ;_uu_ 4        \        W4      pRRR4       XP                  V P                  8X  g   Q hVP                  W.8X  g   Q hVP                  V P                  W@P                  P                  ,          3.8X  g   Q hVP                  \        V.4      8X  g   Q hVP                  \        V.4      8X  g   Q hVP                  \        WeP!                  4       ,
          .4      8X  g   Q hVP#                  4       pV\        V) VP!                  4       ,          ..4      8X  g   Q hVP$                  \        V.^ ..4      8X  g   Q hVP&                  \        ^^ .^ V..4      8X  g   Q h\)        VP*                  \,        4      '       g   Q hR#   + '       g   i     EL; i  + '       g   i     EL; i)PCNP1zC_ixx gz
q_P1, u_P1)r   r   r	   r   r   apply_forceyr
   framebodiesloads
masscenterqr   ukdesdiff	form_eomsforcing_fullmass_matrix_full
isinstancemethodr   )	r   r   PinC_ixxgr#   r$   r+   solns	            m/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/mechanics/tests/test_jointsmethod.pytest_jointsmethodr1      s   		!	!II 
" 4A
Cy!HE,'DAMM!CC%		!	!a% 
"<<177"""==QF"""<<Q\\1WWYY;7888888vqc{"""88vqc{""";;&!ffh,0000D6UF1668O,-....&1#s"4444""fq!fq%j-A&BBBBfmm[1111' 
"	!	! 
"	!	!s   HH*H'	*H;	c                  Z   \        R 4      w  rp\        R4      p\        RVR7      p\        R4      p\	        R4      w  rg\        RW4WgVV ) VP                  ,          VP                  R7      p\        4       ;_uu_ 4        \        W84      p	RRR4       X	P                  P                  VP                  W,          VP                  ,          34       V	P                  4        V	P                  4       p
V
^,          V) \        V4      ,          V ,          8X  g   Q hR#   + '       g   i     L; i)	l m gr   bmassb_frameq ur   )coordinatesspeedschild_interframechild_point
joint_axisN)r   r   r   r   r   r	   xzr   r
   r!   appendr"   r'   rhsr   )lmr.   r   r4   r7   r#   r$   r   r+   rA   s              r0   &test_rigid_body_particle_compatibilityrD   *   s    gGA!#A1AY'G% DAagR'))^	=A		!	!a# 
"
LLquqss{34

**,Cq6aRAYq[    
"	!s   >DD*	c                    aaa \        4       ;_uu_ 4        \        R 4      o\        R4      p \        R4      pRRR4       \        R4      w  r#\        RSX V4      o\	        RV XV4      o\        4       ;_uu_ 4        \        \        VVV3R l4       RRR4       \        RSWR7      o\	        RWVR7      o\        4       ;_uu_ 4        \        \        VVV3R	 l4       RRR4       \        RSWV4      o\	        RWW#4      o\        4       ;_uu_ 4        \        \        VVV3R
 l4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r   r   TNr8   r   P2c                     < \        S SS4      # Nr
   r   r   rG   s   r0   <lambda>?test_jointmethod_duplicate_coordinates_speeds.<locals>.<lambda>C       <2r#:    )r:   c                     < \        S SS4      # rI   rJ   rK   s   r0   rL   rM   H   rN   rO   c                     < \        S SS4      # rI   rJ   rK   s   r0   rL   rM   M   rN   rO   )r   r   r   r	   r   r   
ValueError)r   rF   r#   r$   r   r   rG   s       @@@r0   -test_jointmethod_duplicate_coordinates_speedsrS   :   s   		!	!III 
" % DA	$1a	 B	aA	&B		!	!z:; 
" 
$1	'B	a1	-B		!	!z:; 
" 
$1	#B	aA	)B		!	!z:; 
"	!# 
"	!	! 
"	!
 
"	!
 
"	!	!s/   "D5;E	EE/5E		E	E,	/F 	c                     \        R 4      w  r\        R4      w  r#\        R4      w  rEp\        4       ;_uu_ 4        \        R4      p\        RVR7      p\        RVR7      p	RRR4       \	        RXXW V) VP
                  ,          VP                  R	7      p
\	        R
VX	W1V) V	P
                  ,          VP                  R	7      pVP                  WF,          VP
                  ,          4       V	P                  WF,          VP
                  ,          4       \        4       ;_uu_ 4        \        WzV4      pRRR4       XP                  4        \        VP                  4      \        . RO. RO^ ^ ^V^,          ,          V,          \        V4      ,          ^V^,          ,          V,          ,           V^,          V,          \        V4      ,          V^,          V,          ,           .^ ^ V^,          V,          \        V4      ,          V^,          V,          ,           V^,          V,          ..4      8X  g   Q h\        VP                  4      \        \        V.V.V) V,          V,          \!        W,           4      \!        V 4      ,           ,          We,          V,          \!        V 4      ,          ,
          V^,          V,          ^V,          V,           ,          V,          \!        V4      ,          ,           .V) V,          V,          \!        W,           4      ,          V^,          V,          V^,          ,          \!        V4      ,          ,
          ..4      4      8X  g   Q hR#   + '       g   i     EL; i  + '       g   i     ELI; i)zq1 q2zu1 u2zm l gr   r   r5   RNJ1r:   r9   r<   r=   J2)   r   r   r   )r   rY   r   r   )r   r   r   r   r	   r>   r?   r   r
   r'   r   r)   r   r   r   r(   r   )q1q2u1u2rC   rB   r.   r   PartPPartRrV   rX   r+   s                r0   $test_complete_simple_double_pendulumr`   O   s   G$FBG$FBgGA!		!	!ISq!Sq! 
" 
$5 bjQSS
:B	$uR bjUWW
>B 
ac!##g	ac!##g		!	!aR( 
"
&))*fl6B78!Qq!tVAXc"g=MPQRSUVRVPVWXPX=XZ[]^Z^_`Z`adegahZhklnokopqkqZq6r78!QT!VCG^aQRdSTf=TVWYZVZ[\V\6]6_ /` ` ` ` F''(HVbTB41"Q$q&RUVXV]R^adegahRhJi+,3q5R=K9;<a461R4"9;Mb;PQTUWQX;XKY JZ,-2a46#bg,+>AaAcRTgAU+U*V=X 6Y -Z Z Z Z) 
"	!	! 
"	!	!s   &M%M2M/	2N	c                     \        R 4      w  rr#\        R4      w  rErgp\        4       ;_uu_ 4        \        R4      p	\        RVR7      p
\        RVR7      pRRR4       \	        RX	X
WR7      p\	        R	V
XWR7      pV	P                  Wp,          V	P                  ,          V
R
7       V	P                  WR,          V	P                  ,          V
R
7       V
P                  W,          V	P                  ,          VR
7       V
P                  Wc,          V	P                  ,          VR
7       \        4       ;_uu_ 4        \        WV4      pRRR4       XP                  4        VP                  pVP                  pVP                  V4      p\        V^ ,          4      \        V) V ,          WR,          ,
          W,          ,           Wc,          ,           V,          4      8X  g   Q h\        V^,          4      \        Wp,          WR,          ,           ^V,          V,          ,
          ^V,          V,          ,
          V,          4      8X  g   Q hR#   + '       g   i     EL; i  + '       g   i     EL; i)zq1 q2 u1 u2zm c1 c2 k1 k2WB1r5   B2NrV   )r9   r:   rX   )reaction_body)r   r   r   r   r   r   r>   r
   r'   mass_matrixforcingLUsolver   )rZ   r[   r\   r]   rC   c1c2k1k2rb   rc   rd   rV   rX   r+   MMrg   rA   s                     r0   test_two_dof_jointsrn   k   s   #M2NBB0A22		!	!I$Q$Q 
" 
a	?B	b""	@BMM"%)2M.MM"%)2M.NN259BN/NN259BN/		!	!aR( 
"
			BnnG
**W
C#a&>VbS2X%7"'%ABG%KQ$NOOOO#a&>VRWrw%6R"%Dq$&H')+H, &,/0%1 2 2 2 2# 
"	!	! 
"	!	!s   &I6II	I)	c            
         \        R 4      w  rp\        4       ;_uu_ 4        \        R4      p\        RVR7      pRRR4       \        R4      p\	        RXXVP                  \        4      VV ) VP                  ,          VP                  R7      pV) V,          V ,          \        V4      ,          Vn
        \        4       ;_uu_ 4        \        W64      pRRR4       XP                  \        4       VP                  4       pV^,          V) \        V4      ,          V ,          8X  g   Q hR#   + '       g   i     L; i  + '       g   i     Lr; i)r3   r   r4   r5   Nr#   r   rW   )r   r   r   r   r	   r&   tr>   r?   r   potential_energyr
   r'   r   rA   r   )	rB   rC   r.   r   r4   r#   r   r+   rA   s	            r0   test_simple_pedulumrr      s    gGA!		!	!I1 
" 	sAa166!9!R!##X!##	7Aq1s1v-A		!	!a# 
"
_%
**,Cq6aRAYq[    
"	! 
"	!s   D)D<)D9	<E	c                     \        R 4      w	  rr#rErgp\        R4      w  rr\        R4      p\        R4      p\        4       ;_uu_ 4        \	        RW\        WV^ 4      R7      p\	        RW\        WWg4      R7      p\	        R4      pRRR4       \        R	XXWV) VP                  ,          VP                  R
7      p\        RVXWW2,
          VP                  ,          VP                  R7      pVP                  W,          VP                  ,          4       VP                  W,          VP                  ,          4       \        4       ;_uu_ 4        \        VVV4      pRRR4       XP                  4        VP                  pVP                  pVP                  V4      pRV,          V,          V,          \        V
4      ,          \!        V
4      ,          ^V,          V,          V,          \        V
4      ,          \!        V
4      ,          ,           W,          V ,          \        V	4      ,          ,
          W,          V,          \        V	4      ,          ,
          WE\        V
4      ^,          ,          ,           V\!        V
4      ^,          ,          ,           V^,          V ,          ,           V^,          V,          ,           ,          pV^ ,          V,
          P#                  4       ^ 8X  g   Q hWV,
          V^,          ,          \        V
4      ,          \!        V
4      ,          V,          pV^,          V,
          P#                  4       ^ 8X  g   Q hR#   + '       g   i     EL; i  + '       g   i     EL; i)z)mA, mB, lA, lB, IAxx, IBxx, IByy, IBzz, gztheta phi omega alphaABrod)r6   r   central_inertiaplater   NrV   )r9   r:   r<   r=   rX   )r9   r:   parent_pointr=   )r   r   r   r   r   r   r	   r?   r   r   r
   r'   rf   rg   rh   r   r   simplify)mAmBlAlBIAxxIBxxIByyIBzzr.   thetaphiomegaalphart   ru   rv   rx   r   rV   rX   r+   rm   rg   rA   xds                            r0   test_chaos_pendulumr      s   078c0d-BBDA-.EFEsAsA		!	!5r#*1D!#<>W2%,Qd%ACI 
" 
$3E!cCEEkacc
;B	$U "3550SUU
DB OOBDH	bd133h		!	!aR( 
"
			BnnG
**W
C
t)e
e
#c#h
.S
9AHu<Lu<TWZ[^W_<_H= v{SZ/023&2+E
2JKOSC!W P"SXq[0P135q52:P>@BA
PK
LB FRK!!#q(((
+	!CH	,s3x	7$	>BFRK!!#q(((5 
"	!	! 
"	!	!s   =MM!M	!M2	c                  
  a) \        R 4      w  rr#rE\        R4      w  rgrp
\        R4      pWgW3 Uu. uF%  p\        V^ ^ W^,          ,          ^,          4      NK'  	  pp\	        4       ;_uu_ 4        \        RWV,          V^ ,          R7      p\        RW,          V^,          R7      p\        RW,          V^,          R7      p\        RW,          V^,          R7      pR	R	R	4       \        R
XXWVP                  V^,          VP                  ,          V) ^,          VP                  ,          R7      p\        RVXWVP                  V^,          VP                  ,          V) ^,          VP                  ,          R7      p\        RVXW%VP                  V^,          VP                  ,          V	) ^,          VP                  ,          R7      pVP                  P                  VP                  4      V^,          VP                  ,          ,           V	^,          VP                  ,          ,           p\        VP                  VP                  4      VP                  VP                  4      .4      p\	        4       ;_uu_ 4        \        VVVV4      pR	R	R	4       \         P                  p\!        XP"                  V P%                  V4      VP%                  V4      VP%                  V4      .4      pVP%                  V4      P'                  V4      p\)        VP*                  V .V.W.WE.VP"                  VVVP,                  VP.                  R7
      pVP1                  4       w  ppV\3        ^4      8X  g   Q h\        WgWV
.4      p\        WV.4      p\        W4V.4      p \5        VV3VP6                  4      p!\5        VV V3VP8                  4      p"\5        VV V3V4      p#. ROp$. ROp%. ROp&\        . RO. RO. RO.4      p'\        R.R.R..4      p(Ro)\:        ;QJ d'    V)3R lV#! V%V&V$4       4       F  '       d   K   RM	  RM! V)3R lV#! V%V&V$4       4       4      '       g   Q h\:        ;QJ d6    V)3R l\        V!! V%V$4      4      V',
           4       F  '       d   K   RM+	  RM'! V)3R l\        V!! V%V$4      4      V',
           4       4      '       g   Q h\:        ;QJ d7    V)3R l\        V"! V%V&V$4      4      V(,
           4       F  '       d   K   RM,	  RM(! V)3R l\        V"! V%V&V$4      4      V(,
           4       4      '       g   Q hR	# u upi   + '       g   i     ELu; i  + '       g   i     EL; i)z
q1:4, u1:4z	l1:5, rhoNLink1)r   r6   rw   Link2)r6   rw   Link3Link4NrV   )r9   r:   r=   ry   r<   rX   J3)	q_indu_indq_dependentu_dependentkd_eqsconfiguration_constraintsvelocity_constraints	forcelistr    gop]?g|=c              3   @   <"   T F  p\        V4      S8  x  K  	  R # 5irI   abs.0r>   epss   & r0   	<genexpr>@test_four_bar_linkage_with_manual_constraints.<locals>.<genexpr>   s     F%Es1v|%E   FTc              3   @   <"   T F  p\        V4      S8  x  K  	  R # 5irI   r   r   s   & r0   r   r      s       >; !"s1v|;r   c              3   @   <"   T F  p\        V4      S8  x  K  	  R # 5irI   r   r   s   & r0   r   r      s!      IF !"s1v|Fr   )gp=
ף?gQ?gzG?g(\?i  )g @gtM)L?gF!8@)g?g68[ƿgൄ?)gDwCA@g_'@gY>)g    gTB?gv1?)g_r=
ףg0 Sg;?gLgd`E)r   r   r   r   r   r   r	   r?   r>   r"   pos_fromr   dotr   r
   _tr   r%   r&   subsr   r   r!   r    kanes_equationsr   r   rf   rg   all)*rZ   r[   q3r\   r]   u3l1l2l3l4rhor   rB   inertiaslink1link2link3link4joint1joint2joint3loopfhr+   rp   qdotsfhdkanefrfrspr#   r$   eval_meval_feval_fhdp_valsq_valsu_vals
mass_checkforcing_checkr   s*                                            @r0   -test_four_bar_linkage_with_manual_constraintsr      s   +L9BBB!+.BBCsA>@b=MN=M1aAv!23=MHN		!	!WA"H%-a[2W38Xa[IW38Xa[IW38Xa[I 
" eU%''!Vegg%B37UWW3DFF eU%''!Vegg%B37UWW3DFF eU%''!Vegg%B37UWW3DFF $$U%5%56!Vegg "Q 01D 
%''"DHHUWW$56	7B		!	!eVVV< 
" 	A&++
BGGAJ
CDE
''!*//%
 Cv||B4t$&8"$kkR,/6<<$mm	-D
 ""$GBq>> 	$%A|A|Aq!fd../Fq!Qi.FAq	3'H*F9F<F 211	2 3J /0././1 2M C3FXfff%EF333FXfff%EFFFFF3 >vff-.;>333 >vff-.;> > > > >3 Ivfff56FI333 Ivfff56FI I I I I} O	!	!	!, 
"	!	!s   +U0A.U
U
U	U/	N)+sympy.core.functionr   sympy.core.symbolr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.denser   sympy.simplify.trigsimpr   sympy.physics.mechanicsr	   r
   r   r   r   r   r   r   r   sympy.physics.vectorr   r   sympy.testing.pytestr   r   sympyr   sympy.utilities.lambdifyr   sympy.solvers.solversr   r   rp   r1   rD   rS   r`   rn   rr   r   r    rO   r0   <module>r      sn    & % ? ' ,. . . @ ?  - ' 2.! <*Z82.!")HDIrO   