+
    ‹°³jós  ã                   óª  € ^ RI Ht ^ RIHt ^ RI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HtHtHtHtHtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIt^ RI t R t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R  t4R! t5R" t6R# t7R$ t8R% t9R& t:R' t;R( t<R) t=R* t>R+ t?R, t@R- tAR. tBR/ tCR0 tDR1 tER2 tFR3 tGR4 tHR# )5é    )Úpi)Úsymbols)Útrigsimp)ÚcosÚsin)ÚeyeÚzeros)ÚImmutableDenseMatrix)Úsimplify)ÚReferenceFrameÚVectorÚCoordinateSymÚdynamicsymbolsÚtime_derivativeÚexpressÚdot©Ú_check_frame)ÚVectorTypeError)ÚraisesNc                  ót  aaaa€ \        R 4      o\        R4      p \        R4      o\        R4      p\        R4      o\        R4      oV P                  SSP                  R4       SP                  W P                  R4       VP                  SSP                  R4       VP                  S^ 4      VSV S.8X  g   Q hSP                  WP                  R4       SP                  S^ 4      SV S.8X  g   Q hSP                  S^ 4      SVS.8X  g   Q h\	        \
        VV3R l4       \	        \
        VV3R l4       R	# )
ÚAÚBÚCÚDÚEÚFg      ð?c                  ó(   <€ S P                  S^4      # )é   ©Ú
_dict_list)r   r   s   €€Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/physics/vector/tests/test_frame.pyÚ<lambda>Ú test_dict_list.<locals>.<lambda>'   ó   ø€ ˜qŸ|™|¨A¨qÔ1ó    c                  ó(   <€ SP                  S ^ 4      # ©r   r    )r   r   s   €€r"   r#   r$   )   r%   r&   N)r   Úorient_axisÚxr!   r   Ú
ValueError)r   r   r   r   r   r   s     @@@@r"   Útest_dict_listr,      s  û€ ä�sÓ€AÜ�sÓ€AÜ�sÓ€AÜ�sÓ€AÜ�sÓ€AÜ�sÓ€Aà‡M�M�!�Q—S‘S˜#ÔØ‡M�M�!—S‘S˜#ÔØ‡M�M�!�Q—S‘S˜#Ôà�<‰<˜˜1Ó ! Q¨¨1 Ô-Ð-Ð-à‡M�M�!—S‘S˜#Ôà�<‰<˜˜1Ó ! Q¨ Ô*Ð*Ð*Ø�<‰<˜˜1Ó ! Q¨ Ô*Ð*Ð*ô Œ:Õ1Ô2ä
Œ:Õ1Ö2r&   c                 ó   a€ \        R4      o\        RS^ 4      S^ ,          8X  g   Q h\        RS^4      S^,          8X  g   Q h\        RS^4      S^,          8X  g   Q h\        \        V3R l4       \	        R4      p \	        R^4      p\        S^ ,          \        4      '       d;   \        S^ ,          \        4      '       d   \        S^ ,          \        4      '       g   Q hSP                  S4      S^ ,          S^ ,          S^,          S^,          S^,          S^,          /8X  g   Q hS^ ,          P                  S8X  g   Q hSP                  RRV SP                  .4      pVP                  S4      V^,          S^,          V^,          S^ ,          ) \        V 4      ,          S^,          \        V 4      ,          ,           V^ ,          S^ ,          \        V 4      ,          S^,          \        V 4      ,          ,           /8X  g   Q hSP                  V4      S^ ,          V^ ,          \        V 4      ,          V^,          \        V 4      ,          ,
          S^,          V^ ,          \        V 4      ,          V^,          \        V 4      ,          ,           S^,          V^,          /8X  g   Q h\        V^ ,          S4      S^ ,          ) \        V 4      ,          V,          S^,          \        V 4      ,          V,          ,           8X  g   Q h\        V^,          S4      S^ ,          ) \        V 4      ,          V,          S^,          \        V 4      ,          V,          ,
          8X  g   Q h\        V^,          S4      ^ 8X  g   Q h\        V^ ,          SRR7      S^ ,          \        V 4      ,          S^,          \        V 4      ,          ,           8X  g   Q h\        V^,          SRR7      S^ ,          ) \        V 4      ,          S^,          \        V 4      ,          ,           8X  g   Q h\        V^,          SRR7      S^,          8X  g   Q h\        S^ ,          SP                  ,          S^,          SP                  ,          ,           S^,          SP                  ,          ,           V4      S^,          V,          SP                  ,          S^ ,          V,          SP                  ,          ,
          8X  g   Q h\        V^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           S4      V^,          ) V,          VP                  ,          V^ ,          V,          VP                  ,          ,           8X  g   Q h\        V^ ,          V^,          ,          V^,          ,          SRR7      S^,          S^ ,          ) \        V 4      ,          S^,          \        V 4      ,          ,           ,          S^ ,          \        V 4      ,          S^,          \        V 4      ,          ,           ,          8X  g   Q h\        V^ ,          V^,          ,          V^,          ,          S4      S^,          S^ ,          ^,          ) \        ^V ,          4      ,          ^S^ ,          ,          S^,          ,          \        ^V ,          4      ,          ,
          S^,          ^,          \        ^V ,          4      ,          ,           ,          V,          ,
          P!                  4       ^ 8X  g   Q h\        V^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           S4      V^ ,          \        V 4      ,          V^,          \        V 4      ,          ,
          SP                  ,          V^ ,          \        V 4      ,          V^,          \        V 4      ,          ,           SP                  ,          ,           V^,          SP                  ,          ,           8X  g   Q h\        V^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           SRR7      P#                  4       S^ ,          SP                  ,          S^,          SP                  ,          ,           S^,          SP                  ,          ,           8X  g   Q h\        S^ ,          SP                  ,          S^,          SP                  ,          ,           S^,          SP                  ,          ,           V4      S^ ,          \        V 4      ,          S^,          \        V 4      ,          ,           VP                  ,          S^ ,          ) \        V 4      ,          S^,          \        V 4      ,          ,           VP                  ,          ,           S^,          VP                  ,          ,           8X  g   Q h\        S^ ,          SP                  ,          S^,          SP                  ,          ,           S^,          SP                  ,          ,           VRR7      P#                  4       V^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           8X  g   Q hVP                  R	RV ) VP                  .4      pVP                  S4      P%                  4        UUu/ uF  w  rEWEP#                  4       bK  	  uppV^ ,          S^ ,          V^,          S^,          V^,          S^,          /8X  g   Q hSP                  R
RV SP                  SP                  ,           SP                  ,           .4      pSP                  V4      p\!        VS^ ,          ,          4      ^V^ ,          ,          \        V 4      ,          ^,          V^ ,          ^,          ,           ^V^,          ,          \        V \&        ^,          ,           4      ,          ^,          ,
          V^,          ^,          ,           ^V^,          ,          \        V \&        ^,          ,           4      ,          ^,          ,
          V^,          ^,          ,           8X  g   Q h\!        VS^,          ,          4      RV^ ,          ,          \        V \&        ^,          ,           4      ,          ^,          V^ ,          ^,          ,           ^V^,          ,          \        V 4      ,          ^,          ,           V^,          ^,          ,           ^V^,          ,          \        V \&        ^,          ,           4      ,          ^,          ,
          V^,          ^,          ,           8X  g   Q h\!        VS^,          ,          4      RV^ ,          ,          \        V \&        ^,          ,           4      ,          ^,          V^ ,          ^,          ,           ^V^,          ,          \        V \&        ^,          ,           4      ,          ^,          ,
          V^,          ^,          ,           ^V^,          ,          \        V 4      ,          ^,          ,           V^,          ^,          ,           8X  g   Q hR# u uppi )z,Tests the coordinate variables functionalityr   ÚAxc                  ó   <€ \        R S ^4      # )r.   )r   )r   s   €r"   r#   Ú&test_coordinate_vars.<locals>.<lambda>2   s   ø€ œ}¨T°1°aÔ8r&   Úqr   ÚAxisT©Ú	variablesÚNr   Néþÿÿÿ)r   r   r   r+   r   Ú
isinstanceÚvariable_mapÚframeÚ	orientnewÚzr   r   r   r   r*   Úyr   r   Úitemsr   )	r1   Úqdr   r5   ÚkÚvr   Úmappingr   s	           @r"   Útest_coordinate_varsrB   ,   s¯
  ø€ ä�sÓ€AÜ˜˜q !Ó$¨¨!­Ô,Ð,Ð,Ü˜˜q !Ó$¨¨!­Ô,Ð,Ð,Ü˜˜q !Ó$¨¨!­Ô,Ð,Ð,Ü
Œ:Ô8Ô9Ü�sÓ€AÜ	˜˜QÓ	€BÜ�a˜•dœM×*Ò*Ü�a˜•dœM×*Ò*Ü�a˜•dœM×*Ò*ð+ð +ð �>‰>˜!Ó  1¥ a¨¥d¨A¨a­D°°1µ°q¸µt¸A¸a½DÐ AÔAÐAÐAØˆQ�4�:‰:˜Œ?Ðˆ?Ø	�‰�C˜ ! Q§S¡S Ó*€AØ�>‰>˜!Ó  1¥ q¨¥t¨Q¨q­T°A°aµD°5¼¸Q»µ<À!ÀAÅ$ÄsÈ1ÃvÅ+Õ3MØ!" 1¥ q¨¥t¬C°«F¥{°Q°qµT¼#¸a»&µ[Õ'@ð!Bô Bð Bð Bà�>‰>˜!Ó  1¥ q¨¥t¬C°«F¥{°Q°qµT¼#¸a»&µ[Õ'@Ø!" 1¥ q¨¥t¬C°«F¥{°Q°qµT¼#¸a»&µ[Õ'@À!ÀAÅ$ÈÈ!Íð!Nô Nð Nð Nä˜1˜Q�4 Ó#¨¨!­ u¬S°«V¥|°B¥¸¸1½¼cÀ!»f½ÀR½Õ'GÔGÐGÐGÜ˜1˜Q�4 Ó#¨¨!­ u¬S°«V¥|°B¥¸¸1½¼cÀ!»f½ÀR½Õ'GÔGÐGÐGÜ˜1˜Q�4 Ó# qÔ(Ð(Ð(Ü�1�Q•4˜ dÔ+¨q°­t´C¸³F­{¸Q¸q½TÄ#ÀaÃ&½[Õ/HÔHÐHÐHÜ�1�Q•4˜ dÔ+°°!µ¨u´S¸³V­|¸aÀ½dÄ3ÀqÃ6½kÕ/IÔIÐIÐIÜ�1�Q•4˜ dÔ+¨q°­tÔ3Ð3Ð3Ü˜1˜Q�4 §¡�8 a¨¥d¨1¯3©3¥hÕ.°°1µ°a·c±cµÕ9¸1Ó=ÀÀ1ÅÀbÅÈÏÉÅÈqÐQRÍtÐTVÍwÐWX×WZÑWZÍ{ÕAZÔZÐZÐZÜ˜1˜Q�4 §¡�8 a¨¥d¨1¯3©3¥hÕ.°°1µ°a·c±cµÕ9¸1Ó=À1ÀQÅ4ÀÈÅÈ1Ï3É3ÅÐQRÐSTÕQUÐVXÕQXÐYZ×Y\ÑY\ÕQ\ÕA\Ô\Ð\Ð\Ü�1�Q•4˜˜!�•9˜Q˜q�T•> 1°Ô5ØˆQ�4�!�A•$�”s˜1“v•  !¥¤S¨£V¥Õ+Õ,¨a°­d´3°q³6­k¸A¸a½DÄÀQÃ½KÕ.GÕHôIð Ið Iä˜A˜a�D  1¥�I a¨¥d�N¨AÓ.Øˆq�T�A�a•D˜!•G�8œC  !¥›HÕ$Øˆq��t�V�A�a•D�[œ˜Q˜q�S›Õ!õ"àˆq�T�1�W”S˜˜1�“XÕõõ à!õ"õ#÷ %-¡H£J°!ô4ð 4ð 4ô �1�Q•4˜Ÿ™•8˜a �d 1§3¡3�hÕ&¨¨1­¨a¯c©c­Õ1°1Ó5Øˆa�D”�Q“�K˜!˜A�$œs 1›v�+Õ% q§s¡sÕ*¨a°­d´3°q³6­kØˆQ�4”�A“�;õ/ØŸ™õ.õ Ø �d 1§3¡3�hõ'ô'ð 'ð 'ô �1�Q•4˜Ÿ™•8˜a �d 1§3¡3�hÕ&¨¨1­¨a¯c©c­Õ1°1Ø!ô#ß#+¡8£:°°1µ°a·c±cµ¸A¸a½DÀÇÁ½HÕ1DÀqÈÅtÈAÏCÉCÅxÕ1OôPð Pð Pä�1�Q•4˜Ÿ™•8˜a �d 1§3¡3�hÕ&¨¨1­¨a¯c©c­Õ1°1Ó5Øˆa�D”�Q“�K˜!˜A�$œs 1›v�+Õ% q§s¡sÕ*Øˆq�TˆE”#�a“&�L˜1˜Q�4¤ A£�;Õ&¨¯©Õ+õ,Ø./°­d°1·3±3­hõ7ô7ð 7ð 7ô �1�Q•4˜Ÿ™•8˜a �d 1§3¡3�hÕ&¨¨1­¨a¯c©c­Õ1°1Ø!ô#ß#+¡8£:°°1µ°a·c±cµ¸A¸a½DÀÇÁ½HÕ1DÀqÈÅtÈAÏCÉCÅxÕ1OôPð Pð Pà	�‰�C˜ 1 " a§c¡c Ó+€AØ)*¯©¸Ó):×)@Ñ)@Ô)BÔCÑ)B¡ ˆQ—
‘
“Š_Ñ)BÒCØˆq�T�1�Q•4˜˜1�˜q �t Q q¥T¨1¨Q­4Ð0ô1ð 2ð 1à	�‰�C˜ ! Q§S¡S¨1¯3©3¥Y°·±¥_Ð!5Ó6€AØ�n‰n˜QÓ€GÜ�G˜A˜a�D•MÓ" q¨¨1­¥v¬c°!«f¥}°Q¥¸¸1½¸a½Õ'?Ø'(¨¨1­¥v¬c°!´b¸µdµ(«mÕ';¸AÕ'=õ(>à'(¨¥t¨A¥võ(.à01°!°Aµ$µ´s¸1¼rÀ!½t½8³}Õ0DÀQÕ0Fõ(Gð ()¨¥t¨A¥võ(.ô /ð /ð /ô �G˜A˜a�D•MÓ" b¨¨1­¥g¬c°!´b¸µdµ(«mÕ&;¸AÕ&=ØˆQ�4��6õ'Ø�a˜•d•Fœ3˜q›6•M !•Oõ'$Ø&'¨¥d¨1¥fõ'-Ø/0°°1µ­v´c¸!¼bÀ½d½(³mÕ/CÀAÕ/Eõ'FØHIÈ!ÍÈQÍõ'Oô Oð Oð Oä�G˜A˜a�D•MÓ" b¨¨1­¥g¬c°!´b¸µdµ(«mÕ&;¸AÕ&=ÀÀ!ÅÀQÅÕ&FØˆQˆq�T�6”#�aœ"˜Q�$•h“-Õ Õ!õ'"Ø$% a¥D¨¥Fõ'+Ø-.¨q°­t­V´C¸³F­]¸1­_õ'=Ø?@À½tÀA½võ'Fô Fð Fò Fùó Ds   í |
c                  ó~  € \        R 4      w  rr#\        R ^4      w  rErg\        R4      pVP                  RRWP                  .4      p	V	P                  RRWP                  .4      p
V
P                  RRW*P
                  .4      pVP                  RRW8P
                  .4      p\        R4      w  rÞpV	P                  V4      WIP                  ,          8X  g   Q hV
P                  V4      WZP                  ,          WIP                  ,          ,           8X  g   Q hVP                  V4      WkP
                  ,          WZP                  ,          ,           WIP                  ,          ,           8X  g   Q hVP                  RRW8P
                  .4      pVP                  V4      ^ 8X  g   Q hVP                  V	4      V) VP                  ,          8X  g   Q hVP                  V
4      V) V	P                  ,          WZP                  ,          ,
          8X  g   Q hVP                  V4      V) V	P                  ,          WZP                  ,          ,
          WjP
                  ,          ,
          8X  g   Q hVP                  V4      V) VP
                  ,          8X  g   Q hV	P                  V4      WHP                  ,          8X  g   Q hV	P                  V	4      ^ 8X  g   Q hV	P                  V
4      V) V
P                  ,          8X  g   Q hV	P                  V4      V) V
P                  ,          WjP
                  ,          ,
          8X  g   Q hV	P                  V4      WHP                  ,          WxP
                  ,          ,
          8X  g   Q hV
P                  V4      WIP                  ,          WYP                  ,          ,           8X  g   Q hV
P                  V	4      WYP                  ,          8X  g   Q hV
P                  V
4      ^ 8X  g   Q hV
P                  V4      V) V
P
                  ,          8X  g   Q hV
P                  V4      WIP                  ,          WYP                  ,          ,           WxP
                  ,          ,
          8X  g   Q hVP                  V4      WIP                  ,          WYP                  ,          ,           WjP
                  ,          ,           8X  g   Q hVP                  V	4      WYP                  ,          WkP
                  ,          ,           8X  g   Q hVP                  V
4      WjP
                  ,          8X  g   Q hVP                  V4      ^ 8X  g   Q hVP                  V4      WIP                  ,          WYP                  ,          ,           WjP
                  ,          ,           WxP
                  ,          ,
          8X  g   Q hVP                  V4      VVP
                  ,          8X  g   Q hVP                  V	4      VVP
                  ,          WHP                  ,          ,
          8X  g   Q hVP                  V
4      WxP
                  ,          WIP                  ,          ,
          WYP                  ,          ,
          8X  g   Q hVP                  V4      WxP
                  ,          WIP                  ,          ,
          WYP                  ,          ,
          WjP
                  ,          ,
          8X  g   Q hVP                  V4      ^ 8X  g   Q hVP                  W�VP                  ,          WëP
                  ,          ,           WûP                  ,          ,           4       VP                  V4      WÛP                  ,          WëP
                  ,          ,           WûP                  ,          ,           8X  g   Q hVP                  V4      V) VP                  ,          V) VP
                  ,          ,           V) VP                  ,          ,           8X  g   Q hVP                  V4      WÛP                  ,          WëP
                  ,          ,           WûP                  ,          ,           V) VP
                  ,          ,           8X  g   Q hVP                  V4      V) VP                  ,          V) VP
                  ,          ,           V) VP                  ,          ,           W|P
                  ,          ,           8X  g   Q h\        R	4      p\        R	^4      pVP                  R
RVWV34      pVP                  V4      ^VV,          WR,          ,           Wa,          ,
          VV ,          ,
          ,          VP                  ,          ^VV,          W`,          ,           WB,          ,
          VV,          ,
          ,          VP
                  ,          ,           ^VV,          WA,          ,           WP,          ,
          VV,          ,
          ,          VP                  ,          ,           8X  g   Q hVP                  RRWV3R4      pVP                  V4      \        V4      \        V4      ,          V,          \        V4      V,          ,           VP                  ,          \        V4      \        V4      ,          V,          \        V4      V,          ,
          VP
                  ,          ,           \        V4      V,          V,           VP                  ,          ,           8X  g   Q hVP                  RRWP                  VP
                  ,           34      pVP                  V4      WHP                  VP
                  ,           P                  4       ,          8X  g   Q hVP                  V4      V) VP                  VP
                  ,           P                  4       ,          8X  g   Q hR# )úq1 q2 q3 q4r5   r   r2   r   r   r   zu1 u2 u3ÚA2Úq0r   Ú
Quaternionr   ÚBodyi9  ÚGN)r   r   r:   r;   r*   r<   Ú
ang_vel_inÚset_ang_velr   r   Ú	normalize)Úq1Úq2Úq3Úq4Úq1dÚq2dÚq3dÚq4dr5   r   r   r   r   Úu1Úu2Úu3rE   rF   Úq0dr   r   rI   s                         r"   Útest_ang_velrY   f   sñ  € Ü# MÓ2�N€BˆBÜ'¨°qÓ9Ñ€CˆcÜ�sÓ€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AÜ 
Ó+�J€BˆBØ�<‰<˜‹?˜s§C¡C�iÔ'Ð'Ð'Ø�<‰<˜‹?˜s§C¡C�i¨3·±­)Õ3Ô3Ð3Ð3Ø�<‰<˜‹?˜s§C¡C�i¨3·±­)Õ3°s¿C¹CµiÕ?Ô?Ð?Ð?à	
�‰�T˜6 B¯© 9Ó	-€BØ�<‰<˜‹?˜aÔÐÐØ�<‰<˜‹?˜s˜d 1§3¡3�hÔ&Ð&Ð&Ø�<‰<˜‹?˜s˜d 1§3¡3�h¨¯S©S­Õ0Ô0Ð0Ð0Ø�<‰<˜‹?˜s˜d 1§3¡3�h¨¯S©S­Õ0°3·s±sµ7Õ:Ô:Ð:Ð:Ø�<‰<˜Ó ˜t A§C¡C�xÔ'Ð'Ð'à�<‰<˜‹?˜c§#¡#�gÔ%Ð%Ð%Ø�<‰<˜‹?˜aÔÐÐØ�<‰<˜‹? ˜e A§C¡C�iÔ'Ð'Ð'Ø�<‰<˜‹? ˜e A§C¡C�i¨#¯c©c­'Õ1Ô1Ð1Ð1Ø�<‰<˜Ó˜s§3¡3�w¨¯S©S­Õ0Ô0Ð0Ð0à�<‰<˜‹?˜c§#¡#�g¨¯C©C­Õ/Ô/Ð/Ð/Ø�<‰<˜‹?˜c§#¡#�gÔ%Ð%Ð%Ø�<‰<˜‹?˜aÔÐÐØ�<‰<˜‹?˜s˜d 1§3¡3�hÔ&Ð&Ð&Ø�<‰<˜Ó˜s§3¡3�w¨¯S©S­Õ0°3·s±sµ7Õ:Ô:Ð:Ð:à�<‰<˜‹?˜c§#¡#�g¨¯C©C­Õ/°#·c±cµ'Õ9Ô9Ð9Ð9Ø�<‰<˜‹?˜c§#¡#�g¨¯C©C­Õ/Ô/Ð/Ð/Ø�<‰<˜‹?˜c§#¡#�gÔ%Ð%Ð%Ø�<‰<˜‹?˜aÔÐÐØ�<‰<˜Ó˜s§3¡3�w¨¯S©S­Õ0°3·s±sµ7Õ:¸SÇÁ½WÕDÔDÐDÐDà�=‰=˜Ó˜s 2§4¡4�xÔ'Ð'Ð'Ø�=‰=˜Ó˜s 2§4¡4�x¨#¯c©c­'Õ1Ô1Ð1Ð1Ø�=‰=˜Ó˜s§3¡3�w¨¯S©S­Õ0°3·s±sµ7Õ:Ô:Ð:Ð:Ø�=‰=˜Ó˜s§3¡3�w¨¯S©S­Õ0°3·s±sµ7Õ:¸SÇÁ½WÕDÔDÐDÐDØ�=‰=˜Ó Ô!Ð!Ð!à‡M�M�!˜Ÿ™•V˜b§¡�f•_ r¯#©#¥vÕ-Ô.Ø�<‰<˜‹?˜r§3¡3�h¨"¯c©c­Õ1°R¿¹µHÕ<Ô<Ð<Ð<Ø�<‰<˜‹? ˜s A§C¡C�i¨B¨3°·±­)Õ3¸°s¸A¿C¹CµiÕ?Ô?Ð?Ð?Ø�<‰<˜‹?˜r§3¡3�h¨"¯c©c­Õ1°R¿¹µHÕ<ÀÀÀaÇcÁc½zÕIÔIÐIÐIØ�<‰<˜‹? ˜s A§C¡C�i¨B¨3°·±­)Õ3¸°s¸A¿C¹CµiÕ?À3ÏÉÅ)ÕKÔKÐKÐKä	˜Ó	€BÜ
˜˜qÓ
!€CØ	�‰�C˜¨¨B°BÐ'7Ó8€AØ�<‰<˜‹?Ø	ˆS�2�X˜�Õ  3¥8Õ+¨c°B­hÕ6Õ7¸!¿#¹#Õ=Ø	ˆS�2�X˜�Õ  3¥8Õ+¨c°B­hÕ6Õ7¸!¿#¹#Õ=õ	>à	ˆS�2�X˜�Õ  3¥8Õ+¨c°B­hÕ6Õ7¸!¿#¹#Õ=õ	>ô?ð ?ð ?ð
 	
�‰�C˜ "¨" ¨sÓ3€AØ�<‰<˜‹?¤ B£¬¨B«¥°Õ 3´c¸"³g¸cµkÕ AÀ1Ç3Á3ÕFÜ	ˆR‹”�R“�˜Õ	œs 2›w s�{Õ	*¨A¯C©CÕ/õ 0Ü36°r³7¸3µ;ÀÕ3DÀaÇcÁcÕ2Iõ Jô Kð Kð Kà	�‰�C˜ "§c¡c¨A¯C©C¥i Ó1€AØ�<‰<˜‹?˜c§S¡S¨1¯3©3¥Y×$9Ñ$9Ó$;Õ;Ô;Ð;Ð;Ø�<‰<˜‹?˜s˜d a§c¡c¨A¯C©C¥i×%:Ñ%:Ó%<Õ<Ô<Ð<Ò<r&   c                  óº  € \        R 4      w  rr#\        R4      pVP                  RRWP                  .4      pVP                  RRWP                  .4      pVP                  RRW&P
                  .4      pVP                  RRW4P
                  .4      pVP                  RRWV.R	4      p	VP                  V4      \        \        V 4      ) \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           \        V 4      ) \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,           .\        V 4      \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,           \        V 4      \        V4      ,          \        V 4      \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,
          .\        V4      ) \        V4      ,          \        V4      \        V4      \        V4      ,          ..4      8X  g   Q hVP                  V4      \        \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V4      ) \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          ,           ,          ,
          \        V4      ) \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          ,
          \        V4      \        V 4      ,          \        V4      ,          \        V4      \        V4      ) \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          ,           ,          ,           .\        V 4      \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,           \        V 4      \        V4      ,          \        V 4      \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,
          .\        V4      \        V 4      ,          \        V4      ,          \        V4      \        V4      \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          ,           ,          ,
          \        V4      \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          ,
          \        V4      \        V4      ,          \        V 4      ,          \        V4      \        V4      \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          ,           ,          ,           ..4      ,
          p
V
P                  4       \        ^^4      8X  g   Q hV	P                  V4      \        \        V4      \        V4      ,          \        V4      \        V4      ,          \        V4      ) .\        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,
          \        V 4      \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           \        V 4      \        V4      ,          .\        V 4      \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,           \        V 4      ) \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,           \        V 4      \        V4      ,          ..4      8X  g   Q hR
# )rD   r5   r   r2   r   r   r   r   ÚSpaceÚ123N)r   r   r:   r;   r*   r<   ÚdcmÚMatrixr   r   Úexpandr	   )rM   rN   rO   rP   r5   r   r   r   r   r   Útest_mats              r"   Útest_dcmra   ¨   st  € Ü# MÓ2�N€BˆBÜ�sÓ€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ 2¨2 ,°Ó6€AØ�5‰5�‹8”vÜˆr‹7ˆ”S˜“WÕ	œs 2›wÕ	&¬¨R«´3°r³7Õ):Õ	:¼cÀ"»g¸IÜˆB‹õ=Ü�R“œ3˜r›7Õ"¤S¨£WÕ,¬s°2«w¼¸R»Õ/@Õ@ð	BÜDGÈÃGÜˆB‹õEÜ�b“'œC ›GÕ#¤c¨"£gÕ-õE.Ü/2°2«w¼¸R»Õ/@Ä#ÀbÃ'Ü�‹GõCÜ˜"“g¤ B£Õ'¬#¨b«'Õ1õC2ðD3ä7:¸2³w°YÄÀRÃÕ5HÌ#ÈbË'ÜˆB‹”#�b“'Õð5ð	ó ô ð ð ð �u‰u�Q‹xœ&Ü
ˆb‹'”C˜“GÕ
œc "›gÕ
%¬¨B«´S¸³W°9¼sÀ2»wÕ3FÜˆB‹”#�b“'ÕœC ›GÕ#õ4$õ )%õ %Ü(+¨B« i´#°b³'Õ&9¼CÀ»GÜ�‹Gõ=Ü˜"“gõ=õ 'Ü" 2›w¬¨R«Õ0´3°r³7Õ:¼SÀ»WÌ#ÈbË'È	ÜˆB‹õIÜ�b“'œC ›GÕ#¤c¨"£gÕ-õI.õ >/õ  /ð
0ô 36°b³'¼CÀ»GÕ2CÜˆB‹”#�b“'ÕœC ›GÕ#õ3$Ü%(¨£W¬s°2«wÕ%6¼¸B»Ä#ÀbÃ'Õ8IÜ�‹G”c˜"“gÕ¤ B£Õ'õ9(ð2)ä+.¨r«7´S¸³WÕ+<¼sÀ2»wÕ+FÜˆB‹”3�r“7œS ›WÕ$¤s¨2£w´°R³Õ'8¼3¸r»7Õ'BÕBÕCõ,DÜEHÈÃWÜ�B“õFÜ˜b›'¤C¨£GÕ+¬c°"«gÕ5õF6Ü7:¸2³wÄÀRÃÕ7HÌ3ÈrË7Õ7RÜ�B“œ3˜r›7¤S¨£WÕ,¬s°2«w¼¸R»Õ/@Ä3ÀrÃ7Õ/JÕJÕKõ8Lð+Mð	Nó	Oõ 	O€Hð �?‰?Ó¤ a¨£Ô+Ð+Ð+Ø�5‰5�‹8”vÜ
ˆb‹'”#�b“'�/œ3˜r›7¤3 r£7�?¬S°«W¨HÐ	5Ü	ˆR‹”�R“�œ˜R›Õ	 ¤3 r£7¬3¨r«7¥?Õ	2´C¸³G¼CÀ»GµOÄCÈÃGÕ4KÜˆB‹”�B“�õ5Ü˜R›¤ R£�ð	*Ü,/°«G´C¸³G­OÜˆB‹”�B“�œ˜B›Õõ- Ü#& r£7 ¬3¨r«7Õ!2´S¸³W¼SÀ»Wµ_ÄSÈÃWÕ5LÕ!LÜ	ˆR‹”�R“�ð,ð	óô ð ò r&   c            
      óÚ  € \        R 4      p \        R4      p\        R4      w  r#p\        R4      w  rVp\        R4      w  r‰p
\        R^R7      w  r¼p\        R^R7      w  rïp\        R^R7      w  ppp\        W#V.WVV.W‰V
..4      pVP                  V RV4       VP                  P                  V 4      pVP                  P                  V 4      pVP                  P                  V 4      pVP                  WP                  \        VP                  V 4      VP                  4      ,          VP                  \        VP                  V 4      VP                  4      ,          ,           VP                  \        VP                  V 4      VP                  4      ,          ,           4       W=,          VV,          ,           V	V,          ,           VP                  ,          WK,          W~,          ,           V
V,          ,           VP                  ,          ,           W,,          W_,          ,           VV,          ,           VP                  ,          ,           pVP                  V 4      V,
          ^ 8X  g   Q hR# )r   r   zC11 C12 C13zC21 C22 C23zC31 C32 C33)ÚlevelÚDCMN)r   r   r^   Úorientr*   r   r<   r;   rK   r   ÚdtrJ   )r   r   Úc11Úc12Úc13Úc21Úc22Úc23Úc31Úc32Úc33Úc11dÚc12dÚc13dÚc21dÚc22dÚc23dÚc31dÚc32dÚc33drd   Úb1aÚb2aÚb3aÚexprs                            r"   Útest_w_diff_dcm1r}   É   sÞ  € ô 	�sÓ€AÜ�sÓ€Aä" =Ó1�M€CˆcÜ" =Ó1�M€CˆcÜ" =Ó1�M€Cˆcä% m¸1Ô=Ñ€D�Ü% m¸1Ô=Ñ€D�Ü% m¸1Ô=Ñ€Dˆ$�ä
Ø	�3ˆØ	�3ˆØ	�3ˆðó €Cð ‡H�HˆQ��sÔØ�3‰3�-‰-˜Ó
€CØ�3‰3�-‰-˜Ó
€CØ�3‰3�-‰-˜Ó
€Cð ‡M�M�!—S‘Sœ#˜sŸh™h q›k¨1¯3©3Ó/Õ0Ø—S‘Sœ#˜sŸh™h q›k¨1¯3©3Ó/Õ0õ1à—S‘Sœ#˜sŸh™h q›k¨1¯3©3Ó/Õ0õ1ô 2ð
 �x˜#˜d�(Õ" S¨¥XÕ-¨q¯s©sÕ2Ø�x˜#�(Õ" S¨¥XÕ-¨q¯s©sÕ2õ3à�x˜#�(Õ" S¨¥XÕ-¨q¯s©sÕ2õ3€Dð �<‰<˜‹?˜TÕ! QÔ&Ð&Ò&r&   c                  ó–  € \        R 4      w  rp\        R4      pVP                  RRWP                  .4      pVP                  RRWP                  .4      pVP                  RRW%P
                  .4      pVP                  V4      P                  pVP                  RRV4      pVP                  V4      VP                  V4      u;8X  Ed²   \        \        V4      \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,           \        V 4      \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,
          .\        V4      ) \        V4      ,          \        V 4      ) \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           \        V 4      \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,           .\        V4      \        V 4      ) \        V4      ,          \        V 4      \        V4      ,          ..4      8X  g   Q h Q hVP                  V4      VP                  V4      ,
          P                  V4      P                  4       ^ 8X  g   Q hR# )	úq1:4r5   r   Úaxisr   r   r   rd   N)r   r   r:   r*   r<   r;   r]   ÚTr^   r   r   rJ   r   r   )	rM   rN   rO   r5   r   r   r   rd   r   s	            r"   Útest_w_diff_dcm2r‚   î   s  € Ü Ó'�J€BˆBÜ�sÓ€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€AØ	�‰�C˜ "§c¡c Ó+€Aà
�%‰%�‹(�*‰*€CØ	�‰�C˜ Ó$€Að
 �5‰5�‹8�q—u‘u˜Q“x÷ 7¤6Ü	ˆR‹”�R“�œ#˜b›'¤# b£'�/¬#¨b«'Õ1ÜˆB‹”�B“�õÜ˜R›¤ R£�ÜˆB‹”�B“�œ˜B›Õõ ð	!ä$'¨£G 8¬C°«GÕ#3Ü	ˆR‹ˆ”�R“Õœ˜R›Õ ¤3 r£7¬3¨r«7¥?Õ2ÜˆB‹”�B“�œ#˜b›'¤# b£'�/¬#¨b«'Õ1Õ1ð#3ô 
ˆR‹”3�r“7�(œ3˜r›7Õ"¤C¨£G¬C°«G¥OÐ4ð+6ó $7ô 7ð 7ñ 7ð 7ð 7ð �L‰L˜‹O˜aŸl™l¨1›oÕ-×6Ñ6°qÓ9×BÑBÓDÈÔIÐIÒIr&   c                  ó˜   €  ! R  R\         4      p V ! R4      pVP                  RR^ VP                  .4      p\        W 4      '       g   Q hR# )c                   ó   € ] tR tRtRtR# )Ú>test_orientnew_respects_parent_class.<locals>.MyReferenceFramei  © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r†   r&   r"   ÚMyReferenceFramer…     s   † Ûr&   rŒ   r   r   r2   N)r   r:   r*   r7   )rŒ   r   r   s      r"   Ú$test_orientnew_respects_parent_classr�     sC   € ôœ>ô á˜Ó€AØ	�‰�C˜ ! Q§S¡S Ó*€AÜ�a×*Ò*Ð*Ò*r&   c                  óZ  € \        R 4      p \        R4      pV P                  RRWP                  .4      pV P                   Uu. uF  q3R,           NK  	  ppV P                  RRWP                  .VR7      pV P                  VP                  8X  g   Q hVP                  V8X  g   Q hR# u upi )r5   rM   Úar2   Ú1Úb©ÚindicesN)r   r   r:   r;   r“   )r5   rM   r   r*   Úmindsr   s         r"   Ú%test_orientnew_respects_input_indicesr•     s“   € Ü�sÓ€AÜ	˜Ó	€BØ	�‰�C˜ "§c¡c Ó+€AàŸIšIÓ&™I�qˆs�UˆU™I€EÐ&Ø	�‰�C˜ "§c¡c °EˆÓ:€Aà�9‰9˜Ÿ	™	Ô!Ð!Ð!Ø�9‰9˜ÔÐÒùò	 's   ÁB(c                  ód  € \        R 4      p \        R4      pV P                  RRWP                  .4      pRVP                  P                  4       : RVP                  ^ ,          : R2RVP                  P                  4       : RVP                  ^,          : R2RVP                  P                  4       : RVP                  ^,          : R2.pRpV P                   Uu. uF  qUR,           NK  	  ppRVP                  4       : R	V^ ,          : R
2RVP                  4       : R	V^,          : R
2RVP                  4       : R	V^,          : R
2.pV P                  VRWP                  .VR7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP                  V8w  g   Q hR# u upi )r5   rM   r�   r2   z\mathbf{\hat{z}_Ú}r‘   r�   z}_{z}})ÚlatexsN)r   r   r:   r;   ÚnameÚlowerr“   Ú
latex_vecs)	r5   rM   r   Údef_latex_vecsr™   r*   r“   Únew_latex_vecsr   s	            r"   Ú$test_orientnew_respects_input_latexsrž     s\  € Ü�sÓ€AÜ	˜Ó	€BØ	�‰�C˜ "§c¡c Ó+�Að 34·&±&·,±,¶.Ø—i‘i —l�lñ$à—v‘v—|‘|–~ q§y¡y°§| |ñ(5à23·&±&·,±,¶.Ø—i‘i —l�lð$ð&€Nð €DØŸišiÓ(™i˜��uˆu™i€GÐ(€GØ48·J±J¶LØ˜a—j�jñ"à—z‘z–| W¨Q§Z Zñ&1à48·J±J¶LØ˜a—j�jð"ð$€Nð 	
�‰�D˜& 2§s¡s )°NˆÓC€Aà�<‰<˜>Ô)Ð)Ð)Ø�<‰<˜>Ô)Ð)Ð)Ø�9‰9˜ÔÐÒùò )s   Ã F-c                  ó0  € \        R 4      p \        R4      pV P                  RRWP                  .4      pRpV P                   Uu. uF  pRV,           R,           NK  	  ppV P                  VRWP                  .VR7      p\        VP                  4       FA  w  rxVP                  VP                  R,           VP                  V,          ,           8X  d   KA  Q h	  \        VP                  4       F  w  rxVP                  WW,          8X  d   K  Q h	  R	# u upi )
r5   rM   r�   r2   r‘   Únotb_r�   r3   Ú_N)r   r   r:   r;   r“   Ú	enumerateÚvarlistr™   )	r5   rM   r   r™   r*   Únew_variablesr   ÚjÚvars	            r"   Ú'test_orientnew_respects_input_variablesr§   1  sà   € Ü�sÓ€AÜ	˜Ó	€BØ	�‰�C˜ "§c¡c Ó+€Að €DØ,-¯IªIÓ6©I q�W˜Q•Y˜s—]�]©I€MÐ6Ø	�‰�D˜& 2§s¡s )°}ˆÓE€Aä˜1Ÿ9™9Ö%‰ˆØ�x‰x˜1Ÿ6™6 C�<¨!¯)©)°A­,Õ6Ö6Ð6Ð6ñ &ô ˜1Ÿ9™9Ö%‰ˆØ�x‰x˜=Õ+Ö+Ð+Ð+ó &ùò 7s   ÁDc                  óZ   € \        R 4      p \        R4      pVP                  RRV R4       R# )zu:3ÚIr   ÚspaceÚXYZN)r   r   r:   )Úur©   s     r"   Útest_issue_10348r­   A  s(   € Ü�uÓ€AÜ�sÓ€AØ‡K�K��W˜a Ö'r&   c                  ó®   € \        R 4      p V P                  RR^#V P                  .4       \        R4      pV P                  VR^FVP                  .4       R# )r   r   r2   r   N)r   r:   r<   re   r;   )r   r   s     r"   Útest_issue_11503r¯   G  sF   € Ü�sÓ€AØ‡K�K��V˜b !§#¡#˜YÔ'Ü�sÓ€AØ‡H�HˆQ�˜˜QŸS™S˜	Ö"r&   c                  óh  € \        R 4      p \        R4      p\        R4      w  r#VP                  WVP                  ,          W0P                  ,          ,           4       V P                  W4      VP                  ) 8X  g   Q hV P                  WV4      VP                  ) V P                  ) 38X  g   Q hVP                  W4      VP                  8X  g   Q hVP                  WV4      VP                  V P                  38X  g   Q hV P                  W4      ^ 8X  g   Q hVP                  W4      ^ 8X  g   Q hR# )r5   r   zu1, u2N)r   r   rK   r*   r<   Úpartial_velocity)r5   r   rU   rV   s       r"   Útest_partial_velocityr²   N  s  € ä�sÓ€AÜ�sÓ€Aä˜HÓ%�F€Bà‡M�M�!˜!Ÿ#™#•X §S¡S¥Õ(Ô)à×Ñ˜aÓ$¨¯©¨Ô,Ð,Ð,Ø×Ñ˜a RÓ(¨a¯c©c¨T°A·C±C°4¨LÔ8Ð8Ð8à×Ñ˜aÓ$¨¯©Ô+Ð+Ð+Ø×Ñ˜a RÓ(¨Q¯S©S°!·#±#¨JÔ6Ð6Ð6à×Ñ˜aÓ$¨Ô)Ð)Ð)Ø×Ñ˜aÓ$¨Ô)Ð)Ò)r&   c            
      óf  € \        R 4      p \        R4      pV P                  VR\        ^4      4       V P                  V4      \	        . RO. RO. RO.4      8X  g   Q hVP                  V 4      \	        . RO. RO. RO.4      8X  g   Q hV P                  VR\	        . RO. RO. RO.4      4       VP                  V 4      \	        . RO. RO. RO.4      8X  g   Q hV P                  V4      \	        . RO. RO. R	O.4      8X  g   Q hVP                  V 4      P
                  V P                  V4      8X  g   Q hR# )
r   r   rd   N©é   r   r   ©r   rµ   r   ©r   r   rµ   )r   r   éÿÿÿÿ)r¸   r   r   )r   r¸   r   )r   re   r   r]   r^   r�   ©r   r   s     r"   Útest_issue_11498rº   a  sô   € Ü�sÓ€AÜ�sÓ€Að ‡H�HˆQ�”s˜1“vÔØ�5‰5�‹8”všyª)²YÐ?Ó@Ô@Ð@Ð@Ø�5‰5�‹8”všyª)²YÐ?Ó@Ô@Ð@Ð@ð
 ‡H�HˆQ�”všyª*²jÐAÓBÔCØ�5‰5�‹8”všyª*²jÐAÓBÔBÐBÐBØ�5‰5�‹8”všzª9²jÐAÓBÔBÐBÐBØ�5‰5�‹8�:‰:˜Ÿ™˜q›Ô!Ð!Ò!r&   c            	      ó\  a aaaaaa€ \        \        R  4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R	 4       \        R
4      oS^ ,          \	        RS^ 4      8X  g   Q hS^,          \	        RS^4      8X  g   Q hS^,          \	        RS^4      8X  g   Q h\        \        V3R l4       \        R
. R"O4      oSR,          SP
                  8X  g   Q hSR,          SP                  8X  g   Q hSR,          SP                  8X  g   Q h\        \        V3R l4       \        S4      R
8X  g   Q h\        R4      o \        R4      o\        R4      w  oooo\        \        V V3R l4       \        \        VVVVV3R l4       \        \        VVV3R l4       \        \        VVV3R l4       \        \        VVV3R l4       \        \        VVVVVV3R l4       \        \        VVV3R l4       \        \        VVVVV3R l4       \        \        VVVVV3R l4       \        \        VVVV3R l4       \        \        VVVV3R  l4       SP                  S^ 4       SP                  S4      \        ^ 4      8X  g   Q hSP                  S^ 4       SP!                  S4      \        ^ 4      8X  g   Q hR!# )#c                  ó   € \        ^ 4      # r(   ©r   r†   r&   r"   r#   Ú&test_reference_frame.<locals>.<lambda>t  s	   € œn¨QÔ/r&   c                  ó   € \        R ^ 4      # ©r5   r½   r†   r&   r"   r#   r¾   u  s   € œn¨S°!Ô4r&   c                  ó   € \        R ^ ^.4      # rÀ   r½   r†   r&   r"   r#   r¾   v  s   € œ~¨c°A°q°6Ô:r&   c                  ó   € \        R . RO4      # )r5   ©r   rµ   é   r½   r†   r&   r"   r#   r¾   w  s   € œn¨S²)Ô<r&   c                  ó    € \        R . RO^ 4      # ©r5   ©r�   r‘   Úcr½   r†   r&   r"   r#   r¾   x  s   € œn¨S²/À1ÔEr&   c                  ó$   € \        R . RO^ ^.4      # rÆ   r½   r†   r&   r"   r#   r¾   y  s   € œ~¨c²?ÀQÈÀFÔKr&   c                  ó$   € \        R . RO. RO4      # ©r5   rÇ   rÃ   r½   r†   r&   r"   r#   r¾   z  s   € œn¨S²/Â9ÔMr&   c                  ó&   € \        R . RO. RO^ 4      # rÆ   r½   r†   r&   r"   r#   r¾   {  s   € œn¨S²/Ú1@À!ôEr&   c                  ó*   € \        R . RO. RO^ ^.4      # rÆ   r½   r†   r&   r"   r#   r¾   }  s   € œ~¨c²?Ú.=ÀÀ1¸vô Gr&   c                  ó*   € \        R . RO. RO. RO4      # rË   r½   r†   r&   r"   r#   r¾     s   € œn¨S²/Ú-<ºiôIr&   r5   ÚN_xÚN_yÚN_zc                  ó   <€ S ^,          # )é   r†   rÀ   s   €r"   r#   r¾   …  s	   ø€ ˜q žtr&   r�   r‘   rÈ   c                  ó   <€ S R ,          # )Údr†   rÀ   s   €r"   r#   r¾   Š  s	   ø€ ˜q žvr&   r   r   zq0 q1 q2 q3c                  ó*   <€ S P                  SR ^ 4      # )rd   ©re   r¹   s   €€r"   r#   r¾   �  s   ø€ ˜aŸh™h q¨%°Ô3r&   c                  ó2   <€ S P                  SR SSS.R4      # )r[   Ú222r×   )r   r5   rM   rN   rO   s   €€€€€r"   r#   r¾   ‘  s   ø€ ˜aŸh™h q¨'°B¸¸B°<ÀÔGr&   c                  ót   <€ S P                  SR SSP                  ^SP                  ,          ,           .R4      # )r2   rÙ   )re   r*   r<   ©r   r5   rM   s   €€€r"   r#   r¾   ’  s)   ø€ ˜aŸh™h q¨&°2°q·s±s¸QÀÇÁ½Wµ}Ð2EÀuÔMr&   c                  ó*   <€ S P                  SR S4      # ©r2   r×   rÛ   s   €€€r"   r#   r¾   “  s   ø€ ˜aŸh™h q¨&°"Ô5r&   c                  ó,   <€ S P                  SR S.4      # rÝ   r×   rÛ   s   €€€r"   r#   r¾   ”  s   ø€ ˜qŸx™x¨¨6°B°4Ô8r&   c                  ó4   <€ S P                  SR SSSS.R4      # )rG   rÙ   r×   )r   r5   rF   rM   rN   rO   s   €€€€€€r"   r#   r¾   •  s   ø€ ˜aŸh™h q¨,¸¸RÀÀRÐ8HÈ%ÔPr&   c                  ó*   <€ S P                  SR S4      # ©rG   r×   )r   r5   rF   s   €€€r"   r#   r¾   –  s   ø€ ˜aŸh™h q¨,¸Ô;r&   c                  ó0   <€ S P                  SR SSS.4      # rá   r×   ©r   r5   rF   rM   rN   s   €€€€€r"   r#   r¾   —  s   ø€ ˜aŸh™h q¨,¸¸RÀ¸ÔEr&   c                  ó0   <€ S P                  SR SSS.4      # )ÚFoor×   rã   s   €€€€€r"   r#   r¾   ˜  s   ø€ ¨¯©°°E¸BÀÀB¸<Ô(Hr&   c                  ó0   <€ S P                  SR SS.R4      # )rH   Ú232r×   ©r   r5   rM   rN   s   €€€€r"   r#   r¾   ™  s   ø€ ˜aŸh™h q¨&°2°r°(¸EÔBr&   c                  ó0   <€ S P                  SR SS.R4      # )r[   rç   r×   rè   s   €€€€r"   r#   r¾   š  s   ø€ ˜aŸh™h q¨'°B¸°8¸UÔCr&   NrÇ   )r   Ú	TypeErrorr+   r   r   r*   r<   r;   Ústrr   Ú
IndexErrorÚNotImplementedErrorÚset_ang_accÚ
ang_acc_inr   rK   rJ   )r   r   r5   rF   rM   rN   rO   s   @@@@@@@r"   Útest_reference_framerð   s  sF  þ€ Ü
Œ9Ñ/Ô0Ü
Œ9Ñ4Ô5Ü
Œ:Ñ:Ô;Ü
Œ9Ñ<Ô=Ü
Œ9ÑEÔFÜ
Œ:ÑKÔLÜ
Œ9ÑMÔNÜ
Œ9ñ Eô Fä
Œ:ñ Gô Hä
Œ9ñ Iô Jä�sÓ€AØˆQ�4”= ¨¨1Ó-Ô-Ð-Ð-ØˆQ�4”= ¨¨1Ó-Ô-Ð-Ð-ØˆQ�4”= ¨¨1Ó-Ô-Ð-Ð-Ü
Œ:”|Ô$Ü�sšOÓ,€AØˆS�6�Q—S‘SŒ=Ðˆ=ØˆS�6�Q—S‘SŒ=Ðˆ=ØˆS�6�Q—S‘SŒ=Ðˆ=Ü
Œ:”~Ô&Üˆq‹6�SŒ=Ðˆ=ä�sÓ€AÜ�sÓ€AÜ˜]Ó+�N€BˆˆB�Ü
Œ9Õ3Ô4Ü
Œ9×GÐGÔHÜ
Œ9ÖMÔNÜ
Œ9Ö5Ô6Ü
Œ:Ö8Ô9Ü
Œ9×PÑPÔQÜ
Œ9Ö;Ô<Ü
Œ9×EÐEÔFÜ
Ô× HÐ HÔIÜ
Œ9×BÔCÜ
Œ9×CÔDà‡M�M�!�QÔØ�<‰<˜‹?œf Q›iÔ'Ð'Ð'Ø‡M�M�!�QÔØ�<‰<˜‹?œf Q›iÔ'Ð'Ò'r&   c                  ó(   € \        \        R  4       R# )c                  ó   € \        ^ 4      # r(   r   r†   r&   r"   r#   Ú"test_check_frame.<locals>.<lambda>£  s   € ¤L°¤Or&   N)r   r   r†   r&   r"   Útest_check_framerô   ¢  s   € Ü
Œ?Ñ3Ö4r&   c                  óò  € \        R 4      w  rp\        V 4      p\        V 4      p\        V4      p\        V4      p\        V4      p\        V4      p\        Wh,          W5,          V,          Wt,          ,
          WE,          V,          Ws,          ,           .Wg,          W5,          V,          W„,          ,           WE,          V,          Wƒ,          ,
          .V) W6,          WF,          ..4      p	\	        R4      p
\	        R4      pVP                  V
RV	4       VP                  V
4      pWv,          V P                  4       ,          W�P                  4       ,          ,           pW6,          VP                  4       ,          WAP                  4       ,          ,           p\        VP                  V
P                  4      V,
          4      ^ 8X  g   Q h\        VP                  VP                  4      V,
          4      ^ 8X  g   Q hR# )r   r   r   rd   N)r   r   r   r^   r   re   rJ   Údiffr   r   r<   )rM   rN   rO   Ús1Úc1Ús2Úc2Ús3Úc3r]   r   r   ÚAwBÚalpha2Úbeta2s                  r"   Útest_dcm_diff_16824r   ¦  si  € ô   Ó'�J€BˆBä	ˆR‹€BÜ	ˆR‹€BÜ	ˆR‹€BÜ	ˆR‹€BÜ	ˆR‹€BÜ	ˆR‹€Bä
�2•5˜"�% �( R¥UÕ*¨B­E°"­H°rµuÕ,<Ð=Ø•5˜"�% �( R¥UÕ*¨B­E°"­H°rµuÕ,<Ð=Ø�3˜"�%¨B­EÐ2ð4ó 5€Cô 	�sÓ€AÜ�sÓ€AØ‡H�HˆQ��sÔà
�,‰,�q‹/€Cà�U�2—7‘7“9�_˜r§'¡'£)�|Õ+€FØ�E�"—'‘'“)�O˜b§¡£�lÕ*€Eä�C—G‘G˜AŸC™C“L 6Õ)Ó*¨aÔ/Ð/Ð/Ü�C—G‘G˜AŸC™C“L 5Õ(Ó)¨QÔ.Ð.Ò.r&   c                  ó
  € \        R 4      w  rp\        R4      w  r4p\        R4      w  rgp\        R ^4      w  ršp\        R^4      w  rÍp\        R^4      w  ppp\        R4      p\        R4      p\        WV.WQV.WxV..4      pVV,          VV,          ,           Wk,          ,           VP                  ,          Wy,          WŒ,          ,           W-,          ,           VP                  ,          ,           W,          W:,          ,           WO,          ,           VP
                  ,          ,           pVP                  VV4       VP                  V4      V8X  g   Q hVP                  V4      V8X  g   Q hVP                  V4      V) 8X  g   Q hR# ©zc_{xx}, c_{yy}, c_{zz}zc_{xy}, c_{xz}, c_{yx}zc_{yz}, c_{zx}, c_{zy}r   r   N)	r   r   r^   r*   r<   r;   Úorient_explicitr]   rJ   )ÚcxxÚcyyÚczzÚcxyÚcxzÚcyxÚcyzÚczxÚczyÚdcxxÚdcyyÚdczzÚdcxyÚdcxzÚdcyxÚdcyzÚdczxÚdczyr   r   ÚB_C_AÚB_w_As                         r"   Útest_orient_explicitr  Æ  sZ  € Ü"Ð#;Ó<�M€CˆcÜ"Ð#;Ó<�M€CˆcÜ"Ð#;Ó<�M€CˆcÜ%Ð&>ÀÓBÑ€D�Ü%Ð&>ÀÓBÑ€D�Ü%Ð&>ÀÓBÑ€Dˆ$�Ü�sÓ€AÜ�sÓ€AÜ�S˜s�OØ˜s�OØ˜s�Oð%ó &€Eð �$�h˜˜T�Õ! C¥HÕ,¨a¯c©cÕ1Ø�X˜�Õ  3¥8Õ+¨Q¯S©SÕ0õ1à�X˜�Õ  3¥8Õ+¨Q¯S©SÕ0õ1€Eð ×Ñ�a˜ÔØ�5‰5�‹8�uÔÐÐØ�<‰<˜‹?˜eÔ#Ð#Ð#Ø�<‰<˜‹?˜u˜fÔ$Ð$Ò$r&   c                  ó$  € \        R 4      w  rp\        R4      w  r4p\        R4      w  rgp\        WV.WQV.WxV..4      p	\        R4      p
\        R4      pVP                  W©4       VP	                  V
4      \        WV.WQV.WxV..4      8X  g   Q hR# r  )r   r^   r   Ú
orient_dcmr]   )r  r  r  r  r  r	  r
  r  r  r  r   r   s               r"   Útest_orient_dcmr  Ú  s®   € Ü"Ð#;Ó<�M€CˆcÜ"Ð#;Ó<�M€CˆcÜ"Ð#;Ó<�M€CˆcÜ�S˜s�OØ˜s�OØ˜s�Oð%ó &€Eô 	�sÓ€AÜ�sÓ€AØ‡L�L�ÔØ�5‰5�‹8”v ¨#˜Ø #¨#˜Ø #¨#˜ð0ó 1ô 1ð 1ò 1r&   c                  ó˜  aa€ \        R 4      o\        R4      oSP                  SSP                  ) ^4       SP                  S4      p SP                  SSP                  R4       SP                  S4      pSP                  S^SP                  ) 4       SP                  S4      pW8X  g   Q hW8X  g   Q h\	        \
        VV3R l4       R# )r   r   c                  ó*   <€ S P                  S^^4      # )rµ   )r)   r¹   s   €€r"   r#   Ú"test_orient_axis.<locals>.<lambda>ó  s   ø€ ˜aŸm™m¨A¨q°!Ô4r&   Nr¸   )r   r)   r*   r]   r   rê   )ÚA1rE   ÚA3r   r   s      @@r"   Útest_orient_axisr!  è  s›   ù€ Ü�sÓ€AÜ�sÓ€AØ‡M�M�!�Q—S‘S�D˜!ÔØ	
�‰ˆq‹€BØ‡M�M�!�Q—S‘S˜"ÔØ	
�‰ˆq‹€BØ‡M�M�!�Q˜Ÿ™˜ÔØ	
�‰ˆq‹€BØŒ8€Oˆ8ØŒ8€Oˆ8Ü
Œ9Õ4Ö5r&   c            
      ó¢  € \        R 4      p \        R4      pVP                  V RR4       VP                  V 4      \        \	        ^4      \        ^4      ^,          \        ^4      ) \	        ^4      ,          .^ \	        ^4      \        ^4      .\        ^4      \        ^4      ) \	        ^4      ,          \	        ^4      ^,          ..4      8X  g   Q hR# )r   r   ÚXYXN)rµ   rµ   r   )r   Úorient_body_fixedr]   r^   r   r   r¹   s     r"   Útest_orient_bodyr%  õ  s®   € Ü�sÓ€AÜ�sÓ€AØ×Ñ˜˜7 EÔ*Ø�5‰5�‹8”v¤ A£¬¨A«°­	´C¸³F°7¼3¸q»6µ>ÐBÀQÌÈAËÔPSÐTUÓPVÐDWÔZ]Ð^_ÓZ`ÔcfÐghÓciÐbiÔjmÐnoÓjpÕbpÔruÐvwÓrxÐz{Õr{ÐY|Ð}Ó~Ô~Ð~Ò~r&   c                  ó.  € \        R 4      w  rp\        R4      w  r4p\        R ^4      w  rgp\        R4      \        R4      r©V
P                  W�W3R4       V	P	                  V
4      \        \        V 4      ) \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           \        V 4      ) \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,           .\        V 4      \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,           \        V 4      \        V4      ,          \        V 4      \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,
          .\        V4      ) \        V4      ,          \        V4      \        V4      \        V4      ,          ..4      8X  g   Q hV
P                  V	4      P                  V
4      \        \        V4      ) \        V4      ,          V,          \        V4      V,          ,           .\        V4      V,          V,           .\        V4      V,          \        V4      \        V4      ,          V,          ,           ..4      8X  g   Q h\        R4      \        R4      r©V
P                  W�WB3^ƒ4       V	P	                  V
4      \        \        V4      \        V4      ) \        V4      ,          \        V4      \        V4      ,          .\        V4      \        V 4      ,          \        V 4      ) \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,           \        V 4      ) \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,
          .\        V4      \        V 4      ,          \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,           \        V 4      ) \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           ..4      8X  g   Q hV
P                  V	4      P                  V
4      \        \        V4      V,          V,           .\        V4      ) \        V4      ,          V,          .\        V4      \        V4      ,          V,          ..4      8X  g   Q h\        R4      \        R4      r©V
P                  W“WE3^{4       V
P                  V	4      \        ^ 4      8X  g   Q hR# )r   úc1:4r   r   ÚzxyN)r   r   r   r$  r]   r^   r   r   rJ   Ú	to_matrixr   ©rM   rN   rO   rø   rú   rü   rU   rV   rW   r   r   s              r"   Útest_orient_body_advancedr+  ü  s  € Ü Ó'�J€BˆBÜ˜“�J€BˆBÜ ¨Ó*�J€BˆBô ˜#Ó¤¨sÓ 3€qØ×Ñ˜ ˜<¨Ô/Ø�5‰5�‹8”vÜ
ˆb‹'ˆ”C˜“GÕ	œc "›gÕ	%¬¨B«´#°b³'Õ(9Õ	9¼CÀ»G¸8ÄcÈ"ÃgÕ;MÜ	ˆR‹”3�r“7Õ	œS ›WÕ	$¤s¨2£w´°R³Õ'8Õ	8ð	:ä	ˆR‹”3�r“7Õ	œS ›W¤s¨2£wÕ.´°R³Õ8Õ	8¼#¸b»'ÄCÈÃGÕ:KÜ	ˆR‹”3�r“7Õ	œS ›W¤s¨2£wÕ.´°R³Õ8Õ	8ð	:ä
ˆb‹'ˆ”C˜“GÕ	œS ›W¤c¨"£g´°B³Õ&7Ð8ð:ó ;ô ;ð ;ð ;ð �<‰<˜‹?×$Ñ$ QÓ'¬6Ü
ˆb‹'ˆ”C˜“GÕ	˜bÕ	 ¤3 r£7¨R¥<Õ	/Ð0Ü	ˆR‹�2�˜Õ	ÐÜ	ˆR‹�2�œ˜B›¤# b£'Õ)¨BÕ.Õ	.Ð/ð31ó ,2ô 2ð 2ð 2ô ˜#Ó¤¨sÓ 3€qØ×Ñ˜ ˜<¨Ô-Ø�5‰5�‹8”vÜ	ˆR‹”3�r“7�(œS ›WÕ$¤c¨"£g´°B³Õ&7Ð8Ü	ˆR‹”3�r“7Õ	œS ›W˜H¤s¨2£wÕ.´°R³¼3¸r»7Õ1BÄSÈÃWÕ1LÕLÜ
ˆb‹'ˆ”C˜“GÕ	œc "›g¬¨B«Õ/´#°b³'Õ9Õ	9ð	;ä	ˆR‹”3�r“7Õ	œC ›G¤c¨"£gÕ-´°B³Õ7¼#¸b»'ÄCÈÃGÕ:KÕKÜ
ˆb‹'ˆ”C˜“GÕ	œc "›gÕ	%¬¨B«´#°b³'Õ(9Õ	9ð	;ð	<ó =ô =ð =ð =ð �<‰<˜‹?×$Ñ$ QÓ'¬6Ü	ˆR‹�2�˜Õ	ÐÜ
ˆb‹'ˆ”C˜“GÕ	˜bÕ	 Ð!Ü	ˆR‹”3�r“7Õ	˜RÕ	Ð ð3"ó ,#ô #ð #ð #ô ˜#Ó¤¨sÓ 3€qØ×Ñ˜ ˜<¨Ô-Ø�<‰<˜‹?œf Q›iÔ'Ð'Ò'r&   c                  ó.  € \        R 4      w  rp\        R4      w  r4p\        R ^4      w  rgp\        R4      \        R4      r©V
P                  W’W3R4       V	P	                  V
4      \        \        V 4      ) \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           \        V 4      ) \        V4      ,          \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,           .\        V 4      \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,           \        V 4      \        V4      ,          \        V 4      \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,
          .\        V4      ) \        V4      ,          \        V4      \        V4      \        V4      ,          ..4      8X  g   Q hV
P                  V	4      P                  V
4      \        \        V4      ) \        V4      ,          V,          \        V4      V,          ,           .\        V4      V,          V,           .\        V4      V,          \        V4      \        V4      ,          V,          ,           ..4      8X  g   Q h\        R4      \        R4      r©V
P                  W’W@3^ƒ4       V	P	                  V
4      \        \        V4      \        V4      ) \        V4      ,          \        V4      \        V4      ,          .\        V4      \        V 4      ,          \        V 4      ) \        V4      ,          \        V4      \        V 4      ,          \        V4      ,          ,           \        V 4      ) \        V4      ,          \        V4      \        V4      ,          \        V 4      ,          ,
          .\        V4      \        V 4      ,          \        V 4      \        V4      ,          \        V4      ,          \        V4      \        V 4      ,          ,           \        V 4      ) \        V4      ,          \        V4      ,          \        V 4      \        V4      ,          ,           ..4      8X  g   Q hV
P                  V	4      P                  V
4      \        \        V4      V,          V,           .\        V4      ) \        V4      ,          V,          .\        V4      \        V4      ,          V,          ..4      8X  g   Q h\        R4      \        R4      r©V
P                  W“WE3^{4       V
P                  V	4      \        ^ 4      8X  g   Q hR# )r   r'  r   r   ÚyxzN)r   r   r   Úorient_space_fixedr]   r^   r   r   rJ   r)  r   r*  s              r"   Útest_orient_space_advancedr/  #  s  € ä Ó'�J€BˆBÜ˜“�J€BˆBÜ ¨Ó*�J€BˆBô ˜#Ó¤¨sÓ 3€qØ×Ñ˜ ˜L¨%Ô0Ø�5‰5�‹8”vÜ
ˆb‹'ˆ”C˜“GÕ	œc "›gÕ	%¬¨B«´#°b³'Õ(9Õ	9¼CÀ»G¸8ÄcÈ"ÃgÕ;MÜ	ˆR‹”3�r“7Õ	œS ›WÕ	$¤s¨2£w´°R³Õ'8Õ	8ð	:ä	ˆR‹”3�r“7Õ	œS ›W¤s¨2£wÕ.´°R³Õ8Õ	8¼#¸b»'ÄCÈÃGÕ:KÜ	ˆR‹”3�r“7Õ	œS ›W¤s¨2£wÕ.´°R³Õ8Õ	8ð	:ä
ˆb‹'ˆ”C˜“GÕ	œS ›W¤c¨"£g´°B³Õ&7Ð8ð:ó ;ô ;ð ;ð ;ð �<‰<˜‹?×$Ñ$ QÓ'¬6Ü
ˆb‹'ˆ”C˜“GÕ	˜bÕ	 ¤3 r£7¨R¥<Õ	/Ð0Ü	ˆR‹�2�˜Õ	ÐÜ	ˆR‹�2�œ˜B›¤# b£'Õ)¨BÕ.Õ	.Ð/ð31ó ,2ô 2ð 2ð 2ô ˜#Ó¤¨sÓ 3€qØ×Ñ˜ ˜L¨#Ô.Ø�5‰5�‹8”vÜ	ˆR‹”3�r“7�(œS ›WÕ$¤c¨"£g´°B³Õ&7Ð8Ü	ˆR‹”3�r“7Õ	œS ›W˜H¤s¨2£wÕ.´°R³¼3¸r»7Õ1BÄSÈÃWÕ1LÕLÜ
ˆb‹'ˆ”C˜“GÕ	œc "›g¬¨B«Õ/´#°b³'Õ9Õ	9ð	;ä	ˆR‹”3�r“7Õ	œC ›G¤c¨"£gÕ-´°B³Õ7¼#¸b»'ÄCÈÃGÕ:KÕKÜ
ˆb‹'ˆ”C˜“GÕ	œc "›gÕ	%¬¨B«´#°b³'Õ(9Õ	9ð	;ð	<ó =ô =ð =ð =ð �<‰<˜‹?×$Ñ$ QÓ'¬6Ü	ˆR‹�2�˜Õ	ÐÜ
ˆb‹'ˆ”C˜“GÕ	˜bÕ	 Ð!Ü	ˆR‹”3�r“7Õ	˜RÕ	Ð ð3"ó ,#ô #ð #ð #ô ˜#Ó¤¨sÓ 3€qØ×Ñ˜ ˜L¨#Ô.Ø�<‰<˜‹?œf Q›iÔ'Ð'Ò'r&   c                 ó¨  € \        R4      w  rp\         P                  p\        R4      p\        R4      pVP                  W@W3R4       VP	                  V4      pVP
                  ^ ,          ^,          V8X  g   Q hVP
                  ^ ,          ^ ,          ^ ,          \        V4      \        V4      ,          V P                  V4      ,          \        V4      VP                  V4      ,          ,           8X  g   Q hVP
                  ^ ,          ^ ,          ^,          \        V4      \        V4      ,          V P                  V4      ,          \        V4      VP                  V4      ,          ,
          8X  g   Q hVP
                  ^ ,          ^ ,          ^,          \        V4      V P                  V4      ,          VP                  V4      ,           8X  g   Q hR# )zThis test ensures that the simplest form of that linear system solution
is returned, thus the == for the expression comparison.zpsi, theta, varphir   r   ÚZXZN)	r   Ú_tr   r$  rJ   Úargsr   rö   r   )ÚpsiÚthetaÚphiÚtr   r   ÚA_w_Bs          r"   Útest_orient_body_simple_ang_velr9  K  s_  € ô %Ð%9Ó:�O€C�Ü×Ñ€AÜ�sÓ€AÜ�sÓ€AØ×Ñ˜ Ð,¨eÔ4Ø�L‰L˜‹O€EØ�:‰:�a�=˜Õ˜qÔ Ð Ð Ø�:‰:�a�=˜Õ˜AÕ¤3 u£:¬c°#«hÕ#6°s·x±xÀ³{Õ#BÜ#& s£8¨E¯J©J°q«MÕ#9õ$:ô ;ð ;ð ;à�:‰:�a�=˜Õ˜AÕ¤3 u£:¬c°#«hÕ#6°s·x±xÀ³{Õ#BÜ#& s£8¨E¯J©J°q«MÕ#9õ$:ô ;ð ;ð ;à�:‰:�a�=˜Õ˜AÕ¤# e£*¨S¯X©X°a«[Õ"8¸3¿8¹8ÀA»;Õ"FÔFÐFÒFr&   c                  ó¬   € \        R 4      p \        R4      pVP                  V RR4       VP                  V 4      \        . RO. RO. RO.4      8X  g   Q hR# )r   r   r\   N©r   r   r   r´   r¶   r·   )r   r.  r]   r^   r¹   s     r"   Útest_orient_spacer<  ]  sJ   € Ü�sÓ€AÜ�sÓ€AØ×Ñ˜˜G UÔ+Ø�5‰5�‹8”všyª)²YÐ?Ó@Ô@Ð@Ò@r&   c                  óª   € \        R 4      p \        R4      pVP                  V R4       VP                  V 4      \        . RO. RO. RO.4      8X  g   Q hR# )r   r   N)r   r   r   r   r;  )r   Úorient_quaternionr]   r^   r¹   s     r"   Útest_orient_quaternionr?  c  sH   € Ü�sÓ€AÜ�sÓ€AØ×Ñ˜˜9Ô%Ø�5‰5�‹8”všyª)²YÐ?Ó@Ô@Ð@Ò@r&   c                  óJ  € \        R 4      p \        R4      p\        R4      p\        R4      w  r4pVP                  W P                  V4       VP                  WP                  V4       \        P
                  ! RR7      ;_uu_ 4       p\        P                  ! R4       V P                  W"P                  V4       \        VR,          P                  \        4      '       g   Q hR	\        VR,          P                  4      9   g   Q h RRR4       R#   + '       g   i     R# ; i)
r   r   r   úa b cT)ÚrecordÚalwaysNr¸   zxLoops are defined among the orientation of frames. This is likely not desired and may cause errors in your calculations.)r   r   r)   r*   ÚwarningsÚcatch_warningsÚsimplefilterÚ
issubclassÚcategoryÚUserWarningrë   Úmessage)r   r   r   r�   r‘   rÈ   Úws          r"   Útest_looped_frame_warningrL  i  sÜ   € Ü�sÓ€AÜ�sÓ€AÜ�sÓ€Aä�gÓ�G€Aˆ!Ø‡M�M�!—S‘S˜!ÔØ‡M�M�!—S‘S˜!Ôä	×	 Ò	 ¨$×	/Õ	/°1Ü×Ò˜hÔ'Ø	�‰�aŸ™˜aÔ Ü˜!˜B�%Ÿ.™.¬+×6Ò6Ð6Ð6ðTÜWZÐ[\Ð]_Õ[`×[hÑ[hÓWiôjð 	jñ j÷	 
0×	/×	/Ò	/ús   ÂA?DÄD"	c                  óþ  € \        R 4      p \        R4      p\        R4      p\        R4      w  r4pVP                  W P                  V4       V P                  V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hVP                  V \        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      /8X  g   Q hVP                  / 8X  g   Q hVP                  W"P                  V4       V P                  V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hVP                  V \        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      V\        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      /8X  g   Q hVP                  V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hV P                  WP                  V4       VP                  V\        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      V \        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hV P                  V\        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      /8X  g   Q hVP                  V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hR# )r   r   r   rA  Nr´   )r   r   r)   r*   Ú	_dcm_dictr^   r   r   )r   r   r   r�   r‘   rÈ   s         r"   Útest_frame_dictrO  y  s   € Ü�sÓ€AÜ�sÓ€AÜ�sÓ€Aä�gÓ�G€Aˆ!à‡M�M�!—S‘S˜!ÔØ�;‰;˜1œf¢i°´C¸³F¼SÀ»V¸GÐ0DÀaÌÈQËÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\Ø�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\Ø�;‰;˜"ÔÐÐà‡M�M�!—S‘S˜!Ôà�;‰;˜1œf¢i°´C¸³F¼SÀ»V¸GÐ0DÀaÌÈQËÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\Ø�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ø	Œ6’9˜a¤# a£&¬#¨a«&Ð1°1´s¸1³v°g¼sÀ1»vÐ2FÐGÓHðJô Jð Jð Jà�;‰;˜1œf¢i°´C¸³F¼SÀ»V¸GÐ0DÀaÌÈQËÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\à‡M�M�!—S‘S˜!Ôà�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ø	Œ6’9˜a¤ Q£¬#¨a«&¨Ð1°1´c¸!³f¼sÀ1»vÐ2FÐGÓHðJô Jð Jð Jà�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\Ø�;‰;˜1œf¢i°´C¸³F¼SÀ»V¸GÐ0DÀaÌÈQËÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ò\r&   c                  óŽ  € \        R 4      p \        R4      p\        R4      p\        R4      p\        R4      w  rEpVP                  W P                  V4       VP                  WP                  V4       VP                  W"P                  V4       VP                  V\        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      /8X  g   Q hVP                  V\        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hVP                  V \        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hV P                  V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hVP                  VP                  8X  g   Q hVP                  V 4       \        V P                  P                  4       4      WV.8X  g   Q h\        VP                  P                  4       4      W .8X  g   Q h\        V P                  P                  4       4      V.8X  g   Q h\        VP                  P                  4       4      V.8X  g   Q hV P                  V P                  8w  g   Q hV P                  WP                  V4       V P                  V\        . RO^ \        V4      \        V4      .^ \        V4      ) \        V4      ..4      /8X  g   Q hV P                  V P                  8X  g   Q hVP                  V\        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      V \        . RO^ \        V4      \        V4      ) .^ \        V4      \        V4      ..4      /8X  g   Q hR# )r   r   r   r   rA  Nr´   )r   r   r)   r*   rN  r^   r   r   Ú
_dcm_cacher]   ÚlistÚkeys)r   r   r   r   r�   r‘   rÈ   s          r"   Útest_dcm_cache_dictrT  “  s²  € Ü�sÓ€AÜ�sÓ€AÜ�sÓ€AÜ�sÓ€Aä�gÓ�G€Aˆ!à‡M�M�!—S‘S˜!ÔØ‡M�M�!—S‘S˜!ÔØ‡M�M�!—S‘S˜!Ôà�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\Ø�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ø	Œ6’9˜a¤ Q£¬#¨a«&¨Ð1°1´c¸!³f¼sÀ1»vÐ2FÐGÓHðJô Jð Jð Jà�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ø	Œ6’9˜a¤ Q£¬#¨a«&¨Ð1°1´c¸!³f¼sÀ1»vÐ2FÐGÓHðJô Jð Jð Jà�;‰;˜1œf¢i°´C¸³F¼SÀ»V¸GÐ0DÀaÌÈQËÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\à�;‰;˜!Ÿ,™,Ô&Ð&Ð&à‡E�Eˆ!„HÜ�—‘×!Ñ!Ó#Ó$¨¨q¨	Ô1Ð1Ð1Ü�—‘×!Ñ!Ó#Ó$¨¨Ô.Ð.Ð.Ü�—‘× Ñ Ó"Ó#¨ sÔ*Ð*Ð*Ü�—‘× Ñ Ó"Ó#¨ sÔ*Ð*Ð*Ø�;‰;˜!Ÿ,™,Ô&Ð&Ð&à‡M�M�!—S‘S˜!ÔØ�;‰;˜1œf¢i°´S¸³V¼SÀ»VÐ0DÀaÌ#ÈaË&ÈÔRUÐVWÓRXÐEYÐ%ZÓ[Ð\Ô\Ð\Ð\Ø�;‰;˜!Ÿ,™,Ô&Ð&Ð&Ø�;‰;˜1œf¢i°´C¸³F¼SÀ»V¸GÐ0DÀaÌÈQËÔRUÐVWÓRXÐEYÐ%ZÓ[Ø	Œ6’9˜a¤ Q£¬#¨a«&¨Ð1°1´c¸!³f¼sÀ1»vÐ2FÐGÓHðJô Jð Jò Jr&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P                  4      8X  g   Q hVP                  \        P                  ! VP                  VP                  4      8X  g   Q hR# ©r5   r   r’   N)r�   Ú2Ú3)r   Úxxr   Úouterr*   ©r5   r   s     r"   Útest_xx_dyadr\  µ  ób   € Ü�sÓ€AÜ�s¢OÔ4€AØ�4‰4”6—<’< §¡ Q§S¡SÓ)Ô)Ð)Ð)Ø�4‰4”6—<’< §¡ Q§S¡SÓ)Ô)Ð)Ò)r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P
                  4      8X  g   Q hVP                  \        P                  ! VP                  VP
                  4      8X  g   Q hR# rV  )r   Úxyr   rZ  r*   r<   r[  s     r"   Útest_xy_dyadr`  »  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P
                  4      8X  g   Q hVP                  \        P                  ! VP                  VP
                  4      8X  g   Q hR# rV  )r   Úxzr   rZ  r*   r;   r[  s     r"   Útest_xz_dyadrc  Á  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P
                  4      8X  g   Q hVP                  \        P                  ! VP                  VP
                  4      8X  g   Q hR# rV  )r   Úyxr   rZ  r<   r*   r[  s     r"   Útest_yx_dyadrf  Ç  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P                  4      8X  g   Q hVP                  \        P                  ! VP                  VP                  4      8X  g   Q hR# rV  )r   Úyyr   rZ  r<   r[  s     r"   Útest_yy_dyadri  Í  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P
                  4      8X  g   Q hVP                  \        P                  ! VP                  VP
                  4      8X  g   Q hR# rV  )r   Úyzr   rZ  r<   r;   r[  s     r"   Útest_yz_dyadrl  Ó  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P
                  4      8X  g   Q hVP                  \        P                  ! VP                  VP
                  4      8X  g   Q hR# rV  )r   Úzxr   rZ  r;   r*   r[  s     r"   Útest_zx_dyadro  Ù  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P
                  4      8X  g   Q hVP                  \        P                  ! VP                  VP
                  4      8X  g   Q hR# rV  )r   Úzyr   rZ  r;   r<   r[  s     r"   Útest_zy_dyadrr  ß  r]  r&   c                  ó*  € \        R 4      p \        R. ROR7      pV P                  \        P                  ! V P                  V P                  4      8X  g   Q hVP                  \        P                  ! VP                  VP                  4      8X  g   Q hR# rV  )r   Úzzr   rZ  r;   r[  s     r"   Útest_zz_dyadru  å  r]  r&   c                  ó6  € \        R 4      p \        R. ROR7      pV P                  V P                  V P                  ,           V P                  ,           8X  g   Q hVP                  VP                  VP                  ,           VP                  ,           8X  g   Q hR# rV  )r   r¬   rY  rh  rt  r[  s     r"   Útest_unit_dyadicrw  ë  sf   € Ü�sÓ€AÜ�s¢OÔ4€AØ�3‰3�!—$‘$˜Ÿ™•+ §¡Õ$Ô$Ð$Ð$Ø�3‰3�!—$‘$˜Ÿ™•+ §¡Õ$Ô$Ð$Ò$r&   c                  ód  € \        R 4      p \        R4      pVP                  W P                  ^4       VP                  V 4      p\        P
                  ! \        P                  ! V 4      4      p\        VP                  P                  4       4      ^ ,          pVP                  V4      V8X  g   Q hR# )r5   r   N)
r   r)   r*   r]   ÚpickleÚloadsÚdumpsÚtuplerN  rS  )r5   r   ÚA_C_NÚN1r  s        r"   Útest_pickle_framer  ò  s}   € Ü�sÓ€AÜ�sÓ€AØ‡M�M�!—S‘S˜!ÔØ�E‰E�!‹H€EÜ	�Š”f—l’l 1“oÓ	&€BÜ	ˆr�|‰|× Ñ Ó"Ó	# AÕ	&€BØ�6‰6�"‹:˜ÔÐÒr&   )IÚsympy.core.numbersr   Úsympy.core.symbolr   Úsympy.simplifyr   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.matrices.denser   r	   Úsympy.matrices.immutabler
   r^   Úsympy.simplify.simplifyr   Úsympy.physics.vectorr   r   r   r   r   r   r   Úsympy.physics.vector.framer   Úsympy.physics.vector.vectorr   Úsympy.testing.pytestr   rD  ry  r,   rB   rY   ra   r}   r‚   r�   r•   rž   r§   r­   r¯   r²   rº   rð   rô   r   r  r  r!  r%  r+  r/  r9  r<  r?  rL  rO  rT  r\  r`  rc  rf  ri  rl  ro  rr  ru  rw  r  r†   r&   r"   Ú<module>r‹     s  ðÝ !Ý %Ý #ß ?ß -Ý CÝ ,÷'÷ 'ñ 'õ 4Ý 7Ý 'Û Û ò3ò47Fòt?=òDòB#'òJJò,+ò	ò ò4,ò (ò#ò*ò&"ò$,(ò^5ò/ò@%ò(1ò6òò$(òN%(òPGò$AòAòjò ]ò4 JòD*ò*ò*ò*ò*ò*ò*ò*ò*ò%ôr&   