+
    ‹°³jk  ã                   óR  € R t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHtHt ^ R
IHt ^ RIHtHt ^ RIHt ^ RIHtHtH t  ^ RI!H"t" ^ RI#H$t$ ]! R4      t%]! R4      t&]! R4      t']! R4      t(]! R4      w  t)t*t+]! R4      ! ]&]'4      t,]! R4      ! ],](4      t-]! ^ 4      t.]! ^4      t/]! ^4      t0]! R!4      t1]Pd                  Pg                  R]..]&.3]/.]&.3]0.]&.3]1.]&.3]&.]&.3]'.]&.3]&]',           .]&.3]&]',          .]&.3]&^,          .]&.3]&]',          .]&.3]! ]&4      .]&.3]! ]&4      .]&.3] ! ]&4      .]&.3].]/]&]']&]',          ]&]',           .]&]'.3]&]',          ]! ]&]',          4      ,           ]! ]'4      ,
          ]&]',          ]! ]'4      ,
          ,          .]&]'.3]%] ! ]'](,          4      ,          ]&] ! ]'](,          4      ,
          ,          ]%]&,          ] ! ]'](,          4      ,          ]&] ! ]'](,          4      ,
          ,          .]%]&]'](.3])^,          ]*,           ]*^,          ]+,           ]+^,          ]),           .])]*]+.3]-]
! ]-]&4      ,           ],,           ^]&,          ,           .]&.3.4      R 4       t4R t5R t6R t7R t8R t9R t:R t;R  t<R# )"z5Tests for the ``sympy.simplify._cse_diff.py`` module.N)ÚSymbolÚsymbols)ÚInteger)ÚFunction)Ú
Derivative)Úexp)ÚImmutableDenseMatrix)Údynamicsymbols)Ú_forward_jacobianÚ_remove_cse_from_derivativeÚ_forward_jacobian_cseÚ!_forward_jacobian_norm_in_cse_out)Úsimplify)ÚMatrixÚeye)Úraises)ÚcosÚsinÚtan)Útrigsimp)ÚcseÚwÚxÚyÚzzq1 q2 q3ÚkÚfz	expr, wrtc                 óþ   € \        V .4      P                  p \        V.4      P                  p\        W4      p\         P                  ! VP                  !  p\        W P                  V4      ,
          4      V8X  g   Q hR # ©N)r   ÚTr
   ÚzerosÚshaper   Újacobian)ÚexprÚwrtr"   r    s   &&  Úc/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/simplify/tests/test_cse_diff.pyÚtest_forward_jacobianr&   +   se   € ô4    Ó'×)Ñ)€DÜ
 ˜uÓ
%×
'Ñ
'€CÜ  Ó+€HÜ ×&Ò&¨¯©Ñ7€EÜ�HŸ}™}¨SÓ1Õ1Ó2°eÔ;Ð;Ò;ó    c                  óz  € \        R 4      w  rp\        R4      p\        R4      p\        V! V! W4      V4      \        V! V! W4      V4      V 4      ,           V! W4      ,           ^V ,          ,           .4      p\	        V4      w  rg\        Wg4      w  r‰\        R4      p
\        R4      pW¤! W4      3W³! W¢4      3.\        ^V ,          V
,           V,           \        V! V! W4      V4      V 4      ,           .4      .3pWŒ^ ,          8X  g   Q RV^ ,           RV 24       hWœ^,          8X  g   Q RV^,           RV	 24       hR# )úx y zr   r   Úx0Úx1z	Expected z
, but got N)r   r   r   r   r   r   )r   r   r   r   r   r#   ÚreplÚreducedÚp_replÚ	p_reducedr*   r+   Úexpected_outputs                r%   Útest_process_cser1   L   s4  € Ü�gÓ�G€Aˆ!Ü�‹€AÜ�‹€AÜ‘1‘Q�q“V˜Q“<¤*©Q©q°«v°q«\¸1Ó"=Õ=ÁÀ!ÃÕFÈÈ1ÍÕLÐMÓN€DÜ˜“I�M€DÜ3°DÓBÑ€Fä	�‹€BÜ	�‹€Bð ˆa�‹gˆ˜˜Q˜r›X˜Ð'Ü	��Q•˜•˜b•¤:©a±°!³¸«m¸QÓ#?Õ?Ð@Ó	AÐBð€Oð
  QÕ'Ô'Ð[¨9°_ÀQÕ5GÐ4HÈ
ÐSYÐRZÐ)[Ó[Ð'Ø¨Õ*Ô*Ða¨i¸ÈÕ8JÐ7KÈ:ÐV_ÐU`Ð,aÓaÒ*r'   c                  óš  € \        R 4      w  rp\        W,          W,          ,           W,          V,          ,           V ^,          V^,          ,           V^,          ,           W,          W,          ,           W,          ,           .4      p\        WV.4      p\        V4      w  rV\        WVV4      w  rxp	\	        V^ ,          \        V^ ,          4      4      '       g   Q R4       h\        W44      w  r«p\	        V^ ,          \        V^ ,          4      4      '       g   Q R4       h\        W44      p\	        V\        V4      4      '       g   Q R4       hR# )r)   z9Jacobian should be a Matrix of the same type as the inputN)r   r   r   r   Ú
isinstanceÚtyper   r
   )r   r   r   r#   r$   ÚreplacementsÚreduced_exprÚreplacements_coreÚjacobian_coreÚprecomputed_fs_coreÚreplacements_normÚjacobian_normÚprecomputed_fs_normr"   s                 r%   Útest_io_matrix_typer=   `   s!  € Ü�gÓ�G€Aˆ!ÜØ	��•�˜� �	Õ!Ø	ˆQ���a•�˜!˜q�&Õ Ø	��•�˜�Õð!ó €Dô
   a˜yÓ
)€Cä!$ T£Ñ€Lô =RÐR^ÐnqÓ<rÑ9ÐÐ&9Ü�m AÕ&¬¨\¸!­_Ó(=×>Ò>Ð{Ð@{Ó{Ð>ô =^Øó=Ñ9ÐÐ&9ä�m AÕ&¬¨\¸!­_Ó(=×>Ò>Ð{Ð@{Ó{Ð>ô ! Ó+€HÜ�h¤ T£
×+Ò+ÐhÐ-hÓhÒ+r'   c                  ó`  € \        R 4      w  rp\        W,          W,          ,           W,          V,          ,           V ^,          V^,          ,           V^,          ,           W,          W,          ,           W,          ,           .4      p\        WV.4      p\        V4      w  rV\        WVV4      w  rxp	\	        V\        V4      4      '       g   Q R4       h\	        V\        V4      4      '       g   Q R4       h\	        V	\        4      '       g   Q R4       h\        V4      \        V4      8X  g   Q R4       h\        V4      ^8X  g   Q R4       h\        V	4      \        V4      8X  g   Q R4       h\        W44      w  r«p\	        V
\        V4      4      '       g   Q R4       h\	        V\        V4      4      '       g   Q R4       h\	        V\        4      '       g   Q R4       h\        V
4      \        V4      8X  g   Q R4       h\        V4      ^8X  g   Q R4       h\        V4      \        V4      8X  g   Q R4       hR# )r)   zReplacements should be a listzJacobian should be a listz)Precomputed free symbols should be a listz%Length of replacements does not matchz Jacobian should have one elementz1Length of precomputed free symbols does not matchN)	r   r   r   r   r3   r4   ÚlistÚlenr   )r   r   r   r#   r$   r5   r6   r7   r8   r9   r:   r;   r<   s                r%   Ú"test_forward_jacobian_input_outputrA   y   s  € Ü�gÓ�G€Aˆ!ÜØ	��•�˜� �	Õ!Ø	ˆQ���a•�˜!˜q�&Õ Ø	��•�˜�Õðó €Dô
 �!˜�Ó
€Cä!$ T£Ñ€Lô =RÐR^ÐnqÓ<rÑ9ÐÐ&9ÜÐ'¬¨lÓ);×<Ò<Ð]Ð>]Ó]Ð<Ü�m¤T¨,Ó%7×8Ò8ÐUÐ:UÓUÐ8ÜÐ)¬4×0Ò0Ð]Ð2]Ó]Ð0ÜÐ Ó!¤S¨Ó%6Ô6Ð_Ð8_Ó_Ð6Üˆ}Ó Ô"ÐFÐ$FÓFÐ"ÜÐ"Ó#¤s¨<Ó'8Ô8ÐmÐ:mÓmÐ8ô =^Ð^bÓ<hÑ9ÐÐ&9ÜÐ'¬¨lÓ);×<Ò<Ð]Ð>]Ó]Ð<Ü�m¤T¨,Ó%7×8Ò8ÐUÐ:UÓUÐ8ÜÐ)¬4×0Ò0Ð]Ð2]Ó]Ð0ÜÐ Ó!¤S¨Ó%6Ô6Ð_Ð8_Ó_Ð6Üˆ}Ó Ô"ÐFÐ$FÓFÐ"ÜÐ"Ó#¤s¨<Ó'8Ô8ÐmÐ:mÓmÒ8r'   c                  ó”  € \        ^^\        ^,          \        ,          ^\        ^,          ,          \        \        ,          ,           .4      p \        \        .p\        W4      \        ^\        ,          \        ,          \        ^,          .\        ^\        ,          \        ,           ..4      8X  g   Q h\        ^^\        \        ^,          \        ^,          ,          .4      p \        W4      \        ^^ .^\        ,          \        ^,          ,          \        ^,          ^,          \        ^,          ,          ..4      8X  g   Q hR# )é   N)r   r   r   r
   )ÚLÚsymss     r%   Útest_jacobian_hessianrF   —   sÏ   € Üˆq�!”a˜•dœ1•f˜a¤ 1¥�f¤q¬¥s�lÐ+Ó,€AÜŒqˆ6€DÜ˜QÓ%¬°!´Aµ#´aµ%¼¸A½°ÄÀAÄaÅCÌ!ÅGÀÐ0MÓ)NÔNÐNÐNäˆq�!”aœ˜A�œa �d��^Ó$€AÜ˜QÓ%¬°!°Q°¸!¼A½#¼aÀ½d½(ÄAÀqÅDÈÅFÌ1ÈaÍ4ÅKÐ9PÐ0QÓ)RÔRÐRÒRr'   c                  óR  € \        R 4      w  r\        V \        V4      ,          V \        V4      ,          .4      p\        W.4      p\	        W#4      pWBP                  VP                  4      8X  g   Q hWBP                  P                  V4      8X  g   Q hWBP                  P                  VP                  4      8X  g   Q hVP                  \        VP                  ^ ,          4      ,          V,          pVP                  \        4      pV\        ^^ .^ V ^,          ..4      8X  g   Q hR# ©zrho,phiN)r   r   r   r   r
   r"   r   r   r!   Ú	applyfuncr   )ÚrhoÚphiÚXÚYÚJÚgs         r%   Útest_jacobian_metricsrP       sâ   € Ü�yÓ!�H€CÜ�”c˜#“h• ¤c¨#£h¥Ð/Ó0€AÜ�ˆzÓ€AÜ˜!Ó€AØ—
‘
˜1Ÿ3™3“ÔÐÐØ—‘—‘˜qÓ!Ô!Ð!Ð!Ø—‘—‘˜qŸs™sÓ#Ô#Ð#Ð#Ø	�‰Œc�!—'‘'˜!•*‹oÕ Õ!€AØ	�‰”HÓ€AØ”˜˜A˜  C¨1¥H Ð.Ó/Ô/Ð/Ò/r'   c                  ób  € \        R 4      w  r\        V \        V4      ,          V \        V4      ,          V ^,          .4      p\        W.4      p\        \        V4      V ) \        V4      ,          .\        V4      V \        V4      ,          .^V ,          ^ ..4      p\	        W#4      V8X  g   Q hR# rH   )r   r   r   r   r
   )rJ   rK   rL   rM   rN   s        r%   Útest_jacobian2rR   ­   s˜   € Ü�yÓ!�H€CÜ�”c˜#“h• ¤c¨#£h¥°°qµÐ9Ó:€AÜ�ˆzÓ€AÜÜ	ˆS‹�C�4œ#˜c›(•?Ð#Ü	ˆS‹�3œ˜S›•>Ð"Ø	
ˆS��!ˆðó 	€Aô
 ˜QÓ" aÔ'Ð'Ò'r'   c                  óR  € \        \        \        \        ,           \        ,           4      \        \        \        ,           \        ,           4      \        \        \        ,           \        ,           4      .4      p \        \        \        \        .4      p\        ^^4       F…  p\        ^^4       Fr  pV RV1R3,          pVRV1R3,          p\        WE4      pVP                  V8X  g   Q hVP                  V8X  g   Q h\        V4       F  pVRV3,          V8X  d   K  Q h	  Kt  	  K‡  	  R# )rC   NºNNN)	r   r   r   r   r   Úranger
   ÚrowsÚcols)rL   rM   ÚiÚjÚX_sliceÚY_slicerN   r   s           r%   Útest_issue_4564r\   ¹   s×   € Ü””Aœ•EœA•I“¤¤A¬¥E¬A¥I£´´A¼µE¼AµI³Ð?Ó@€AÜ””1”aˆyÓ€AÜ�1�aŽ[ˆÜ�q˜!–ˆAØ˜˜˜˜A˜•hˆGØ˜˜˜˜A˜•hˆGÜ! 'Ó3ˆAØ—6‘6˜Q”;Ð�;Ø—6‘6˜Q”;Ð�;Ü˜1–X�Ø˜˜A˜•w 'Ö)Ð)Ð)ó ó ó r'   c                  ó  a a€ \        \        \        \        ,           \        ,           4      \        \        \        ,           \        ,           4      .\        \        \        ,           \        ,           4      \        \        \        ,           \        ,           4      ..4      o \        \        V 3R  l4       S R,          o \        \        \        .\        \        ..4      o\        \        V V3R l4       \        \        V 3R l4       R# )c                  óL   <€ \        S \        \        \        \        .4      4      # r   ©r
   r   r   r   r   ©rL   s   €r%   Ú<lambda>Ú(test_nonvectorJacobian.<locals>.<lambda>Ê   s   ø€ Ô/°´6¼1¼aÄ¸)Ó3DÔEr'   c                  ó   <€ \        S S4      # r   )r
   ©rL   rM   s   €€r%   ra   rb   Í   s   ø€ Ô/°°1Ô5r'   c                  óZ   <€ \        S \        \        \        .\        \        ..4      4      # r   r_   r`   s   €r%   ra   rb   Î   s   ø€ Ô/°´6¼A¼q¸6ÄAÄqÀ6Ð:JÓ3KÔLr'   N)é    rT   )r   r   r   r   r   r   Ú	TypeErrorrd   s   @@r%   Útest_nonvectorJacobianrh   Ç   s’   ù€ Ü””Qœ•UœQ•Y“¤¤Q¬¥U¬Q¥Y£Ð0Ü”Qœ•UœQ•Y“¤¤Q¬¥U¬Q¥Y£Ð0ð2ó 	3€Aä
Œ9ÔEÔFØ	ˆ$�€AÜ””A�œœA˜ÐÓ €AÜ
Œ9Õ5Ô6Ü
Œ9ÔLÖMr'   éÿÿÿÿ)=Ú__doc__ÚpytestÚsympy.core.symbolr   r   Úsympy.core.numbersr   Úsympy.core.functionr   Ú
sympy.corer   Ú&sympy.functions.elementary.exponentialr   Úsympy.matrices.immutabler   Úsympy.physics.mechanicsr	   Úsympy.simplify._cse_diffr
   r   r   r   Úsympy.simplify.simplifyr   Úsympy.matricesr   r   Úsympy.testing.pytestr   Ú(sympy.functions.elementary.trigonometricr   r   r   Úsympy.simplify.trigsimpr   Úsympyr   r   r   r   r   Úq1Úq2Úq3r   r   ÚzeroÚoneÚtwoÚneg_oneÚmarkÚparametrizer&   r1   r=   rA   rF   rP   rR   r\   rh   © r'   r%   Ú<module>r„      sÅ  ðÙ ;ã ç /Ý &Ý (Ý !Ý 6Ý 9Ý 2÷Ió Iõ -ß &å 'ß DÑ DÝ ,å ñ ˆ3ƒK€Ù
ˆ3ƒK€Ù
ˆ3ƒK€Ù
ˆ3ƒK€á˜JÓ'�
€€Bˆñ ˆS„M�!�QÓ€ÙˆS„M�!�QÓ€áˆqƒz€Ùˆaƒj€Ùˆaƒj€Ù
�"‹+€ð ‡�×ÑØà
ˆ�!�ˆØ
ˆ��ˆØ
ˆ��ˆØ
ˆ�Q�CÐØ
ˆˆqˆcˆ
Ø
ˆˆqˆcˆ
Ø
ˆa�%ˆ�1�#ˆØ
ˆA�#ˆ��ˆØ
ˆQ�$ˆ�!�ˆØ
ˆQ�$ˆ�!�ˆÙ
ˆa‹&ˆ�A�3ˆÙ
ˆa‹&ˆ�A�3ˆÙ
ˆa‹&ˆ�A�3ˆØ
��Q˜˜1˜Q�3  A¥Ð	&¨¨A¨Ð/Øˆa�C‘3�q˜•s“8Õ™c !›fÕ$¨¨!­©s°1«v¥~Õ
6Ð	7¸!¸Q¸Ð@Ø
‰C��!•‹H�*�a™#˜a �c›(•lÕ
# Q q¥S©¨Q¨q­S«¥\°1±s¸1¸Q½3³xµ<Õ%@Ð	AÀAÀqÈ!ÈQÀ<ÐPØ
ˆa�%�"�*�b˜!•e˜b•j " a¥%¨"¥*Ð	-°°B¸¨|Ð<Ø
‰j˜˜AÓÕ
 Õ
" Q q¥SÕ
(Ð	)¨A¨3Ð/ð%óñ2<ó3ð2<òbò(iò2nò<Sò
0ò	(ò*ôNr'   