+
    ‹°³ji  ã                   ó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Ht ^ RIHtHt ^ R	I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!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t) ^ RI*H+t+ ]R 4       t,],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R l4       t.],P[                  ]4      R R  l4       t.],P[                  ] 4      R! R" l4       t.],P[                  ]4      R# R$ l4       t.],P[                  ]	4      R% R& l4       t.],P[                  ]#4      R' R( l4       t.],P[                  ]4      R) R* l4       t.],P[                  ]4      R+ R, l4       t.],P[                  ]4      R- R. l4       t.],P[                  ])4      R/ R0 l4       t.R1 t/R# )2é    N)ÚreduceÚsingledispatch)ÚExpr)ÚS)ÚHadamardProduct)ÚInverse)Ú
MatrixExprÚMatrixSymbol)ÚIdentityÚ	OneMatrix)Ú	Transpose)Ú
_af_invert)ÚElementwiseApplyFunction)Ú
_ArrayExprÚ	ZeroArrayÚArraySymbolÚArrayTensorProductÚArrayAddÚPermuteDimsÚArrayDiagonalÚArrayElementwiseApplyFuncÚget_rankÚ	get_shapeÚArrayContractionÚ_array_tensor_productÚ_array_contractionÚ_array_diagonalÚ
_array_addÚ_permute_dimsÚReshape)Úconvert_matrix_to_arrayc                ó0   € \        R\        V 4       24      h)z0
Derivatives (gradients) for array expressions.
znot implemented for type )ÚNotImplementedErrorÚtype©ÚexprÚxs   &&Úu/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/tensor/array/expressions/arrayexpr_derivatives.pyÚarray_deriver)      s   € ô
 Ð 9¼$¸t»*¸ÐFÓ
GÐGó    c                ó0   € V ^8„  d   QhR\         R\        /# ©é   r&   r'   )r   r   )Úformats   "r(   Ú__annotate__r/      s   € ÷ ñ ŒDð ”Zñ r*   c                 ó(   € \        VP                  !  # ©N©r   Úshaper%   s   &&r(   Ú_r4      s   € ä�a—g‘gÑÐr*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   #   s   € ÷ (ñ (Ôð (¤4ñ (r*   c                 óž  € V P                   p. p\        V P                   4       EFd  w  rE\        WQ4      pV^ 8X  d   K  VRV pW$^,           R p\        \        P
                  \        \        V4      R4      p	\        \        P
                  \        \        V4      R4      p
\        . VOVNVO5!  p\        \        V4      4      pV\        V	4      ,           pV\        \        V4      4      ,           pV\        V
4      ,           p\        \        WÍ4      4      \        \        V4      4      ,           \        \        WÞ4      4      ,           \        \        Wï4      4      ,           p\        V\        V4      4      pVP                  V4       EKg  	  \        V4      ^8X  d
   V^ ,          # \        V4      ^ 8X  d   \        P                   # \#        V!  # )r   N© )ÚargsÚ	enumerater)   r   ÚoperatorÚaddÚmapr   r   ÚlenÚlistÚranger   r   Úappendr   ÚZeror   )r&   r'   r8   Úaddend_listÚiÚargÚdargÚ	args_prevÚ	args_succÚ
shape_prevÚ
shape_succÚaddendÚtot1Útot2Útot3Útot4Úperms   &&               r(   r4   r4   "   sv  € à�9‰9€DØ€KÜ˜DŸI™I×&‰ˆÜ˜CÓ#ˆØ�1Œ9ÙØ˜˜!�Hˆ	Ø˜1�˜�Jˆ	ÜœHŸL™L¬#¬i¸Ó*CÀRÓHˆ
ÜœHŸL™L¬#¬i¸Ó*CÀRÓHˆ
Ü&ÐD¨	ÐD°4ÐD¸)ÓDˆÜ”9˜Q“<Ó ˆØ”c˜*“oÕ%ˆØ”cœ) C›.Ó)Õ)ˆØ”c˜*“oÕ%ˆÜ”E˜$Ó%Ó&Ü”E˜$“KÓ õ!Ü#'¬¨dÓ(9Ó#:õ;ä”E˜$Ó%Ó&õ'ˆô ˜v¤z°$Ó'7Ó8ˆØ×Ñ˜6×"ñ# 'ô$ ˆ;Ó˜1ÔØ˜1�~ÐÜ	ˆ[Ó	˜QÔ	Ü�v‰vˆä˜;Ñ'Ð'r*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   A   s   € ÷ .ñ .ŒKð .œJñ .r*   c           	      ó´  € W8X  d¦   \        \        P                  ! R  V P                   4       4      \	        \        V P                  4      4       Uu. uF  p^V,          NK  	  up\	        \        V P                  4      4       Uu. uF  p^V,          ^,           NK  	  up,           4      # \        VP                  V P                  ,           !  # u upi u upi )c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir1   )r   )Ú.0rC   s   & r(   Ú	<genexpr>Ú_.<locals>.<genexpr>D   s   é € Ð'H¹Z¸¬°¯¨»Zùs   ‚)r   r   Úfromiterr3   r?   r=   r   )r&   r'   rC   s   && r(   r4   r4   @   s¢   € à„yÜÜ×'Ò'Ñ'H¸T¿ZºZÓ'HÓHÜ¤ D§J¡J£Ô0Ó1Ñ0�QˆQˆq�SˆSÑ0Ñ1ÄEÌ#ÈdÏjÉjË/ÔDZÓ4[ÑDZ¸q°Q°qµS¸·U°UÑDZÑ4[Õ[ó
ð 	
ô �q—w‘w §¡Õ+Ñ-Ð-ùò 2ùÒ4[s   ÁC
ÂCc                ó0   € V ^8„  d   QhR\         R\        /# r,   )r
   r   )r.   s   "r(   r/   r/   K   s   € ÷ .ñ .ŒLð .œZñ .r*   c                 óÆ   € V P                   w  r#W8X  d+   \        \        \        V4      \        V4      4      . RO4      # \	        VP                   V P                   ,           !  # )r   )r   r-   é   é   )r3   r   r   r   r   )r&   r'   ÚmÚns   &&  r(   r4   r4   J   sN   € à�:‰:�D€AØ„yÜÜ!¤(¨1£+¬x¸«{Ó;Úó
ð 	
ô �q—w‘w §¡Õ+Ñ-Ð-r*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   V   s   € ÷ .ñ .ŒHð .œñ .r*   c                 óJ   € \        VP                  V P                  ,           !  # r1   r2   r%   s   &&r(   r4   r4   U   ó   € ä�q—w‘w §¡Õ+Ñ-Ð-r*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   [   s   € ÷ .ñ .ŒIð .œ*ñ .r*   c                 óJ   € \        VP                  V P                  ,           !  # r1   r2   r%   s   &&r(   r4   r4   Z   r_   r*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   `   s   € ÷ +ñ +ŒIð +œ$ñ +r*   c                 óJ   € \        V P                  V4      p\        V. RO4      # )r   )r   rY   rZ   r-   )r)   rD   r   )r&   r'   Úfds   && r(   r4   r4   _   s!   € ô 
�d—h‘h Ó	"€BÜ˜š\Ó*Ð*r*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   h   s   € ÷ ñ ŒGð œñ r*   c                 ó„   € V P                   p\        W!4      p\        V ) W04      p\        VRR4      p\	        V. RO4      pV# )rY   )rY   é   )é   é   )rY   r-   r   rZ   )ÚIr)   r   r   r   )r&   r'   ÚmatÚdexprÚtpÚmpÚpps   &&     r(   r4   r4   g   sB   € à
�&‰&€CÜ˜Ó €EÜ	 ˜u eÓ	2€BÜ	˜B ¨Ó	/€BÜ	�rš<Ó	(€BØ€Ir*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   r   s   € ÷ ñ Ô$ð ¬ñ r*   c                 óò   € \        V 4      ^8X  g   Q h\        V4      ^8X  g   Q hV P                  4       p\        V P                  V4      p\	        \        W P                  4      V4      p\        VRR4      pV# )r-   )r   rg   )rY   rh   )r   Ú_get_function_fdiffr)   r&   r   r   r   )r&   r'   Úfdiffrl   rm   Útds   &&    r(   r4   r4   q   sw   € ä�D‹>˜QÔÐÐÜ�A‹;˜!ÔÐÐØ×$Ñ$Ó&€EÜ˜Ÿ™ AÓ&€EÜ	Ü  ¯	©	Ó2Øó
€Bô 
Ø
ˆF�Fó
€Bð €Ir*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   ‚   s   € ÷ .ñ .Ô%ð .¬$ñ .r*   c                 ó(  € V P                  4       pV P                  p\        W14      p\        V\	        W#4      4      p\        V4      p\        V 4      p\        V4       Uu. uF  q†V,           Wg,           V,           3NK  	  p	p\        V.V	O5!  # u upi r1   )rr   r&   r)   r   r   r   r?   r   )
r&   r'   rs   ÚsubexprÚdsubexprrm   ÚbÚcrC   Údiag_indicess
   &&        r(   r4   r4   �   s†   € à×$Ñ$Ó&€EØ�i‰i€GÜ˜GÓ'€HÜ	ØÜ! %Ó1ó
€Bô 	�‹€AÜ�‹€AÜ05°a´Ó9±¨1˜•U˜A�E A�IÓ&±€LÐ9Ü˜2Ð- Ó-Ð-ùò :s   Á  Bc                ó0   € V ^8„  d   QhR\         R\        /# r,   )r	   r   )r.   s   "r(   r/   r/   ‘   s   € ÷ ñ ŒJð œ4ñ r*   c                 ó.   € \        V 4      p\        W!4      # r1   )r!   r)   )r&   r'   Úcgs   && r(   r4   r4   �   s   € ä	  Ó	&€BÜ˜ÓÐr*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   —   s   € ÷  ñ  ŒOð  ¤ñ  r*   c                 ó   € \        4       hr1   )r#   r%   s   &&r(   r4   r4   –   s   € ä
Ó
Ðr*   c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   œ   s   € ÷ <ñ <Ôð <¤ñ <r*   c                 ó  a€ \        V P                  V4      p\        \        V4      4      oV P                  pV Uu. uF5  p\
        ;QJ d    . V3R  lV 4       F  NK  	  5M! V3R  lV 4       4      NK7  	  pp\        V.VO5!  # u upi )c              3   ó4   <"  € T F  qS,           x € K  	  R # 5ir1   r7   )rS   ÚjÚrank_xs   & €r(   rT   rU       s   øé € Ð$;¹°A¨§Z¢Z»ùs   ƒ)r)   r&   r=   r   Úcontraction_indicesÚtupler   )r&   r'   rd   r†   rC   Únew_contraction_indicesr…   s   &&    @r(   r4   r4   ›   st   ø€ ä	�d—i‘i Ó	#€BÜ”˜1“Ó€FØ×2Ñ2ÐÙEXÓYÑEXÀŸuœuÔ$;¹Ó$;Ÿu™uÔ$;¹Ó$;Ö;ÑEXÐÐYÜ˜bÐ;Ð#:Ó;Ð;ùò Zs   ¼BÁ+Bc                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   ¥   s   € ÷ 4ñ 4ŒMð 4œdñ 4r*   c           	      óê   € \        V P                  V4      p\        \        V4      4      pV P                   UUu. uF  qD Uu. uF  qUV,           NK  	  upNK  	  ppp\        V.VO5!  # u upi u uppi r1   )r)   r&   r=   r   Údiagonal_indicesr   )r&   r'   rx   r…   rC   r„   r{   s   &&     r(   r4   r4   ¤   sg   € ä˜DŸI™I qÓ)€HÜ”˜1“Ó€FØ59×5JÒ5JÔKÑ5J°¨Ó+© A˜—Z�Z©Ô+Ñ5J€LÑKÜ˜8Ð3 lÓ3Ð3ùò ,ùÓKs   ºA/ÁA*ÁA/Á*A/c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   ­   s   € ÷ Dñ DŒHð Dœñ Dr*   c           	      ód   € \        V P                   Uu. uF  p\        W!4      NK  	  up!  # u upi r1   )r   r8   r)   )r&   r'   rD   s   && r(   r4   r4   ¬   s(   € ä¸¿	º	ÓB¹	°œ SÖ,¹	ÑBÑCÐCùÒBs   ”-c                ó0   € V ^8„  d   QhR\         R\        /# r,   )r   r   )r.   s   "r(   r/   r/   ²   s   € ÷ #ñ #ŒKð #œDñ #r*   c                 ó¸   € \        V P                  V4      p^ ^.V P                  P                   Uu. uF  q3^,           NK  	  up,           p\	        W$4      # u upi )r   )r)   r&   ÚpermutationÚ
array_formr   )r&   r'   ÚderC   rO   s   &&   r(   r4   r4   ±   sR   € ä	�d—i‘i Ó	#€BØˆqˆ6 D×$4Ñ$4×$?Ò$?Ó@Ñ$?˜q˜—U�UÑ$?Ñ@Õ@€DÜ˜Ó"Ð"ùò As   ²Ac                ó0   € V ^8„  d   QhR\         R\        /# r,   )r    r   )r.   s   "r(   r/   r/   ¹   s   € ÷ 2ñ 2ŒGð 2œñ 2r*   c                 óz   € \        V P                  V4      p\        V\        V4      V P                  ,           4      # r1   )r)   r&   r    r   r3   )r&   r'   r’   s   && r(   r4   r4   ¸   s,   € ä	�d—i‘i Ó	#€BÜ�2”y “| d§j¡jÕ0Ó1Ð1r*   c                 óf   € ^ RI Hp \        V 4      p\        W14      pV! V4      P	                  4       # )r   )Úconvert_array_to_matrix)Ú3sympy.tensor.array.expressions.from_array_to_matrixr–   r!   r)   Údoit)r&   r'   r–   ÚceÚdces   &&   r(   Úmatrix_deriver›   ¾   s-   € Ý[Ü	  Ó	&€BÜ
�rÓ
€CÙ" 3Ó'×,Ñ,Ó.Ð.r*   )0r:   Ú	functoolsr   r   Úsympy.core.exprr   Úsympy.core.singletonr   Ú#sympy.matrices.expressions.hadamardr   Ú"sympy.matrices.expressions.inverser   Ú"sympy.matrices.expressions.matexprr	   r
   Ú"sympy.matrices.expressions.specialr   r   Ú$sympy.matrices.expressions.transposer   Ú sympy.combinatorics.permutationsr   Ú$sympy.matrices.expressions.applyfuncr   Ú0sympy.tensor.array.expressions.array_expressionsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Ú3sympy.tensor.array.expressions.from_matrix_to_arrayr!   r)   Úregisterr4   r›   r7   r*   r(   Ú<module>r©      su  ðÛ ß ,å  Ý "Ý ?Ý 6ß Iß BÝ :Ý 7Ý I÷9÷ 9÷ 9÷ 9õ 9õ
 Xð ñHó ðHð ×Ñ�tÓôó ðð ×ÑÐ)Ó*ô(ó +ð(ð: ×Ñ�{Ó#ô.ó $ð.ð ×Ñ�|Ó$ô.ó %ð.ð ×Ñ�xÓ ô.ó !ð.ð ×Ñ�yÓ!ô.ó "ð.ð ×Ñ�yÓ!ô+ó "ð+ð ×Ñ�wÓôó  ðð ×ÑÐ/Ó0ôó 1ðð ×ÑÐ0Ó1ô.ó 2ð.ð ×Ñ�zÓ"ôó #ðð
 ×Ñ�Ó'ô ó (ð ð ×ÑÐ'Ó(ô<ó )ð<ð ×Ñ�}Ó%ô4ó &ð4ð ×Ñ�xÓ ôDó !ðDð ×Ñ�{Ó#ô#ó $ð#ð ×Ñ�wÓô2ó  ð2ô
/r*   