+
    iw>                        R 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 ^ RIHt ^ R	IHtHtHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt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- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3H4t4H5t5 ]! R4      w  t6t7t8]! R4      w  t9t:]#! R]8]84      t;]#! R]8^4      t<]#! R]8^4      t=]#! R]8]84      t>]#! R]8]84      t?]#! R]8]84      t@]#! R ]8]84      tA]#! R!]8^4      tB]#! R"]8^4      tC]#! R#]8^4      tD]#! R$]8^4      tER% tFR4R& ltGR' tHR( tIR) tJR* tKR+ tLR, tMR- tNR. tOR/ tPR0 tQR1 tRR2 tSR3# )5za
Some examples have been taken from:

http://www.math.uwaterloo.ca/~hwolkowi//matrixcookbook.pdf
)KroneckerProduct)Permutation)Sum)Rational)S)symbols)explog)sqrt)cossintan)KroneckerDelta)Determinant)
DiagMatrix)HadamardPowerHadamardProducthadamard_product)Inverse)MatrixSymbol)	OneMatrix)Trace)MatAdd)MatMul)Identity
ZeroMatrix)ArrayDerivative)hadamard_power)ArrayAddArrayTensorProductPermuteDimszi j kzm nXxyABCDabcdc                 4    \        W^ \        ^,
          34      # )    )r   k)ijs   &&o/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/matrices/expressions/tests/test_derivatives.py<lambda>r2   0   s    nQAqs84    c                     R # N)xreplacer.   as_explicitdiffreshapeshapetomatrix)exprr"   diffexprdims   &&&&r1   &_check_derivative_with_explicit_matrixr?   3   s    
r3   c            	         \         P                  \        4      \        \        \        4      8X  g   Q h\         \
        \        ,           ,          \        ,          P                  \        4      \        \        ^4      8X  g   Q h\        P                  \        4      \        \        ^4      8X  g   Q h\        P                  \        ,          P                  \        4      \        ^^4      8X  g   Q h\        \        P                  ,          P                  \        4      \        \        \        4      8X  g   Q h\        \        ,           P                  \        4      \        \        ^4      8X  g   Q h\        \        ^4      P                  \        4      \        \        ^4      8X  g   Q h\        \        \        4      P                  \        4      P                  \        \        P                  \        4      \!        \        \        4      4      4      '       g   Q h\#        \        \        4      P                  \        4      \        \        ^4      8X  g   Q h\#        \        \%        \        ^4      ,          \        \        4      P                  \        4      \#        \        \        4      8X  g   Q h\        \        ,          P                  \        4      \        8X  g   Q h\'        \        4      \         ,          \        ,          \        ,          P                  \        4      \)        \        4      \         ,          \        ,          \        ,          8X  g   Q h\        P                  \&        4      P                  \        4      \        \        ^4      8X  g   Q h\+        \        ^,          \
        ,          4      P                  \        4      ^\        ,          \+        \
        4      ,          8X  g   Q h\-        R4      p ^V ,          \        ,          pVP                  \        4      ^V ,          \/        \        4      ,          8X  g   Q hR# )   muN)r$   r8   r/   r   r.   r!   r%   r*   r"   Tr#   r   dummy_eqr   	applyfuncr	   r   r   r   r   r   r   r   r   )rB   r<   s     r1    test_matrix_derivative_by_scalarrF   B   s   66!9
1a((((q1uIaKa Jq!$444466!9
1a((((CCE<<?jA....accE<<?jA....E<<?jA....!Q$$Q':a+;;;;!Q$$Q'00C(-1*=>@ @ @ @Aq!&&q)Z1-====Ai1o-q!499!<@PQRTU@VVVVaC::a=AF1HQJqLq!SVAXaZ\111;;s  #z!Q'7777Aa=a AaCaL000	BbDFD99Q<1R4++++r3   c                      \        \        P                  \        \        ^4      4      P                  \        4      \        \        ^4      8X  g   Q hR# )rA   N)r   r"   rC   r   r.   r8    r3   r1   test_one_matrixrI   X   s2    !##yA',,Q/9Q?BBBr3   c            	         \        \        4      p \        \        W 4      \	        ^4      ! ^^4      4      p\
        P                  \
        4      V8X  g   Q h\
        P                  P                  \
        4      \        \        W 4      \	        ^4      ! ^^^4      4      8X  g   Q h^\
        ,          P                  \
        4      \        \        ^V ,          V 4      \	        ^4      ! ^^4      4      8X  g   Q h\        \
        \
        4      P                  \
        4      \        W4      8X  g   Q h\
        \        ,           P                  \
        4      V8X  g   Q hR#    N)r   r.   r    r   r   r$   r8   rC   r   r   r%   )IAdAs     r1   (test_matrix_derivative_non_matrix_resultrO   \   s    A
(.Aq!0D
EC66!93388A;+&8&>AqRSUV@WXXXXaC::a=K(:1Q3(BKPQNSTVWDXYYYY!Q<Q8C#5555E<<?c!!!r3   c                  j    \         P                  \        4      \        \         \        4      8X  g   Q hR # r5   )r!   r8   r$   r   rH   r3   r1   $test_matrix_derivative_trivial_casesrQ   g   s!     66!91----r3   c                  Z   \         P                  \        \        4      ,          \        ,          p V P                  \        4      \        \        4      P                  ) \         ,          \        P                  ,          \        \        4      P                  ,          8X  g   Q h\        \        \        4      4      p \        \        \        \        4      ,          \        ,          4      p V P                  \        4      \        R,          \        ,          \        ,          \        R,          ,          P                  ) 8X  g   Q h\        \        \        \        ,           4      4      p V P                  \        4      \        \        \        ,           4      P                  ^,          ) 8X  g   Q hR# )rA   N)
r(   rC   r   r!   r)   r8   r   r   r$   r%   r<   s    r1   #test_matrix_derivative_with_inverserU   m   s     33wqz>!D99Q<GAJLL=?133.wqz||;;;; wqz"D
 71:a D99Q<QWQYq[R0333333 Q D99Q<WQU^..11111r3   c                  t   \         P                  \         4      \        \        4      8X  g   Q h\         \        ^ 3,          P                  \         \
        ^ 3,          4      P                  4       \        \
        \        4      8X  g   Q h\         P                  P                  \         4      \        \        4      8X  g   Q h\         P                  \        ,          p V P                  \         4      \        8X  g   Q hV R,          P                  \         \
        ^ 3,          4      P                  4       \        \
        ^ 3,          8X  g   Q h\        P                  \         ,          p V P                  \         4      \        8X  g   Q h\        P                  \        ,          \        ,          p V P                  \        4      \        \        P                  ,          8X  g   Q h\        P                  \        P                  ,          \        ,          p V P                  \        4      \        \        P                  ,          8X  g   Q h\        P                  \        ,          \        ,          p V P                  \        4      \        \        P                  ,          8X  g   Q h\        P                  \        P                  ,          \        ,          p V P                  \        4      \        \        P                  ,          8X  g   Q h\        P                  \        P                  ,          \        ,          \        ,          p V P                  \        4      \        \        ,          \        P                  ,          \        \        ,          \        P                  ,          ,           8X  g   Q h\        \         ,          \        ,           P                  \        ,          \        \         ,          \         ,           ,          p V P                  \         4      \        P                  \        ,          \        \         ,          \         ,           ,          \        P                  \        P                  ,          \        \         ,          \        ,           ,          ,           8X  g   Q h\         P                  \        ,          \         ,          p V P                  \         4      \        \         ,          \        P                  \         ,          ,           8X  g   Q h\        P                  \        P                  ,          \        ,          \        ,          \        ,          p V P                  \        4      \        P                  \        ,          \        ,          \        P                  ,          \        \        ,          \        ,          \        P                  ,          ,           8X  g   Q h\        \        ,          \        ,           P                  \        ,          \        \        ,          \        ,           ,          p V P                  \        4      \        \        \        ,          \        ,           ,          \        P                  ,          \        P                  \        \        ,          \        ,           ,          \        P                  ,          ,           8X  g   Q h\#        V R,          P                  \        \
        \$        3,          4      P                  4       4      R8X  g   Q h\         \         P                  ,          \         ,          p \        \        4      pV P                  \         4      \'        V\         P                  \         ,          4      ^\         ,          \         P                  ,          ,           8X  g   Q hR# )r-   zb[n, 0]*Sum((c[_i_1, 0] + Sum(X[_i_1, _i_3]*b[_i_3, 0], (_i_3, 0, k - 1)))*D[_i_1, m], (_i_1, 0, k - 1)) + Sum((c[_i_2, 0] + Sum(X[_i_2, _i_4]*b[_i_4, 0], (_i_4, 0, k - 1)))*D[m, _i_2]*b[n, 0], (_i_2, 0, k - 1))Nr-   r-   )r"   r8   r   r.   r/   mdoitKDeltarC   r(   r!   r)   r*   r%   r&   r'   r+   strnr   r<   rM   s     r1   *test_matrix_derivative_vectors_and_scalarsr^      s   66!9###QT7<<!Q$ %%'6!Q<7773388A;(1+%%% 33q5D99Q<1:??1QT7#((*a1g55533q5D99Q<1 33q57D99Q<1QSS5    33qss719D99Q<1QSS5    33q57D99Q<1QSS5   33qss719D99Q<1QSS5    33qss719Q;D99Q<1Q3qss7QqSW,,,, aC!G;;q=!A#'"D99Q<133q5!A#'?QSSWacAg->>>>> 33q57D99Q<1Q3Q;&&& 33qss719Q;q=D99Q<133q57133;1Qqss2222 aC!G;;q=!A#'"D99Q<1acAg;qss?QSS!A#']133->>>>>tDzqAw',,./ 	^^ ^ ^ QSS57DA99Q<+Aqss1u5!ACC????r3   c                  +   \        \        4      \        ,          p \        \        4      pV P	                  \        4      \        \        V\        4      \        \        \        \        4      V,          V4      \        ^4      ! ^^4      4      4      8X  g   Q hV \        \        3,          P	                  \        \        \        3,          4      P                  4       \        \        \        4      \        \        \        4      ,          \        \        4      ,          \        \        \        4      \        \        \        3,          ,          ,           8X  g   Q h\        \        4      p V P	                  \        4      \        \        4      8X  g   Q hV P!                  \"        4      P	                  \        \        \        3,          4      P                  4       \        \        \        4      8X  g   Q h\        \        \        ,          4      p V P	                  \        4      \        P$                  8X  g   Q hV P!                  \"        4      P	                  \        \        \        3,          4      P                  4       \        \        \        3,          8X  g   Q h\        \        \        ,          \&        ,          4      p V P	                  \        4      \        P$                  \&        P$                  ,          8X  g   Q hV P!                  \"        4      P	                  \        \        \        3,          4      P                  4       P)                  \        P$                  \&        P$                  ,          \        \        3,          4      '       g   Q h\        \        \        P$                  ,          \&        ,          4      p V P	                  \        4      \&        \        ,          8X  g   Q h\        \        P$                  \        ,          4      p V P	                  \        4      \        8X  g   Q h\        \        \        P$                  ,          4      p V P	                  \        4      \        8X  g   Q h\        \        ^,          4      p V P	                  \        4      ^\        P$                  ,          8X  g   Q h\        \        ^,          \&        ,          4      p V P	                  \        4      \        \&        ,          \&        \        ,          ,           P$                  8X  g   Q h\        \+        \        \        \&        4      4      p V P	                  \        4      \        \&        ,          \&        \        ,          ,           P$                  8X  g   Q h\        \        P$                  \&        ,          \        ,          4      p V P	                  \        4      \&        \        ,          \&        P$                  \        ,          ,           8X  g   Q h\        \&        \        ,          \        P$                  ,          4      p V P	                  \        4      \&        \        ,          \&        P$                  \        ,          ,           8X  g   Q h\        \        \        P$                  ,          \&        ,          4      p V P	                  \        4      \&        \        ,          \&        P$                  \        ,          ,           8X  g   Q h\        \        \&        ,          \        P$                  ,          4      p V P	                  \        4      \        \&        P$                  ,          \        \&        ,          ,           8X  g   Q h\        \&        \        P$                  ,          \        ,          4      p V P	                  \        4      \        \&        P$                  ,          \        \&        ,          ,           8X  g   Q h\        \        P$                  \        ,          \&        ,          4      p V P	                  \        4      \        \&        P$                  ,          \        \&        ,          ,           8X  g   Q h\        \        \        ,          \&        ,          \        ,          4      p V P	                  \        4      \        P$                  \        P$                  ,          \&        P$                  ,          \&        P$                  \        P$                  ,          \        P$                  ,          ,           8X  g   Q h\        \        P$                  \        ,          4      p V P	                  \        4      ^\        ,          8X  g   Q h\        \        \        P$                  ,          4      p V P	                  \        4      ^\        ,          8X  g   Q h\        \&        P$                  \        P$                  ,          \,        ,          \        ,          \&        ,          4      p V P	                  \        4      \,        P$                  \        ,          \&        ,          \&        P$                  ,          \,        \        ,          \&        ,          \&        P$                  ,          ,           8X  g   Q h\        \        P$                  \&        ,          \        ,          \,        ,          4      p V P	                  \        4      \&        \        ,          \,        ,          \&        P$                  \        ,          \,        P$                  ,          ,           8X  g   Q h\        \        \        ,          \&        ,          \        P$                  ,          \,        ,          4      p V P	                  \        4      \        P$                  \,        P$                  ,          \        ,          \&        P$                  ,          \,        \        ,          \        ,          \&        ,          ,           8X  g   Q h\        \        \        ,          \&        ,          \,        ,           \        \        ,          \&        ,          \,        ,           P$                  ,          4      p V P	                  \        4      ^\        P$                  ,          \        \        ,          \&        ,          \,        ,           ,          \&        P$                  ,          8X  g   Q h\        \        \        ,          4      p \        \        \        \        ,          ,          4      p \        \&        P$                  \        P$                  ,          \,        ,          \        ,          \        P$                  ,          \,        ,          \        ,          \&        ,          4      p V P	                  \        4      \,        \        ,          \        P$                  ,          \,        ,          \        ,          \&        ,          \&        P$                  ,          \,        P$                  \        ,          \&        ,          \&        P$                  ,          \        P$                  ,          \,        P$                  ,          \        ,          ,           \,        \        ,          \&        ,          \&        P$                  ,          \        P$                  ,          \,        ,          \        ,          ,           \,        P$                  \        ,          \        P$                  ,          \,        P$                  ,          \        ,          \&        ,          \&        P$                  ,          ,           8X  g   Q h\        \        \        R,          ,          \&        ,          4      p V P	                  \        4      \/        \        4      P$                  ) \        P$                  ,          \&        P$                  ,          \/        \        4      P$                  ,          8X  g   Q h\        \/        \        P$                  \,        ,          \        ,          4      \        ,          4      p V P	                  \        4      \        P1                  4       P$                  ) \        P$                  ,          \        P1                  4       ,          \,        P1                  4       P$                  ,          \        P1                  4       P$                  ,          \        P1                  4       P$                  \        ,          \        P1                  4       ,          \,        P1                  4       ,          \        P1                  4       P$                  ,          ,
          8X  g   Q h\        \        P$                  \,        ,          \        ,          P1                  4       \        P$                  \&        ,          \        ,          ,          4      p V P	                  \        4      R\,        ,          \        ,          \        P$                  \,        ,          \        ,          P1                  4       ,          \        P$                  ,          \&        ,          \        ,          \        P$                  \,        ,          \        ,          P1                  4       ,          ^\&        ,          \        ,          \        P$                  \,        ,          \        ,          P1                  4       ,          ,           8X  g   Q h\        \        \        P$                  \,        ,          \        ,          ,           P1                  4       \        P$                  \&        ,          \        ,          ,          4      p V P	                  \        4      \&        \        ,          \/        \        \        P$                  \,        ,          \        ,          ,           4      ,          \,        \        ,          \/        \        \        P$                  \,        ,          \        ,          ,           4      ,          \        P$                  ,          \&        ,          \        ,          \/        \        \        P$                  \,        ,          \        ,          ,           4      ,          ,
          \,        P$                  \        ,          \/        \        P$                  \,        \        ,          P$                  \        ,          ,           4      ,          \        P$                  ,          \&        P$                  ,          \        ,          \/        \        P$                  \,        \        ,          P$                  \        ,          ,           4      ,          ,
          \&        P$                  \        ,          \/        \        P$                  \,        \        ,          P$                  \        ,          ,           4      ,          ,           8X  g   Q hR# )rL   NrS   )r   r$   r   r.   r8   r   r   r    r   r/   r0   rX   r\   rY   rZ   r!   rewriter   rC   r%   rD   r   r&   r   invr]   s     r1   !test_matrix_derivatives_of_tracesrc      sP   8A:DA99Q<8$6q!$<kJ\]bcd]efg]gijJkmxyzm{|}  @A  nB  ?C  D  D  D  D1:??1QT7#((*q!VAq\!%(*q!Qq!tW	   8D99Q<8A;&&&<<!!!AqD'*//1VAq\AAA 1:D99Q<133<<!!!AqD'*//1Qq!tW<<< 1Q<D99Q<133qss7"""<<!!!AqD'*//1::ACCGQT?KKKK 133q>D99Q<1Q3 Q<D99Q<1 133<D99Q<1 A;D99Q<1QSS5    Aa=D99Q<AaC!A#I==(((1a!D99Q<AaC!A#I==((( Qq>D99Q<1Q3Q;&&& 1QSS>D99Q<1Q3Q;&&& 133q>D99Q<1Q3Q;&&& 1QSS>D99Q<1QSS51Q3;&&& 133q>D99Q<1QSS51Q3;&&& Qq>D99Q<1QSS51Q3;&&& 1Qq>D99Q<133qss7133;QSS4444 Q<D99Q<1Q3133<D99Q<1Q3 QSS1QD99Q<133q57133;1Qqss2222 QqD99Q<1Q3q5133q59,,,, 1Qqss1D99Q<133qss719QSS=1Q3q572222 !A#a%!)ac!eai]]*+D99Q<1QSS5!A#a%!),QSS0000 A;D 1a4=D QSS1QSS"1$Q&'D99Q<1Q3qss719Q;q=,qss1uQwqss{133qss/B1/DDqs1uQSSyQRQTQT}UVWXGXX[\[^[^_`[`abadad[defeheh[hij[jkl[lmnmpmp[ppppp
 1r71D99Q<GAJLL=,QSS0==== Qq!!#$D99Q<QUUWYY;qss?15572155799<QUUWYYFSTUVUZUZU\I\]^]b]b]dIdefejejelenenInnnnn !##a%'!##a%'*+D99Q<2a46133q57--/1!##5a79133q57--/IAaCPQESTSVSVWXSXYZSZR_R_RaLaaaaa !acc!eAg+""$acc!eAg./D99Q<1Q3wq133q57{33ac'!acc!eAg+:N6Nqss6RST6TUV6VW^_`cdcfcfghchijcj_jWk6kknonqnqrsnst{|}||  DE  FG  DG  CJ  CJ  KL  CL  }L  uM  oM  NO  NQ  NQ  oQ  RS  RU  RU  oU  VW  oW  X_  `a  `c  `c  gh  ij  gj  fm  fm  no  fo  `o  Xp  op  p  st  sv  sv  wx  sx  y@  AB  AD  AD  HI  JK  HK  GN  GN  OP  GP  AP  yQ  sQ  Q  Q  Q  Qr3   c            	         \         P                  \        \        ,          \        P                  \        ,          \        \        ,          ,           ,          \        P                  \        P                  ,          \         \
        P                  ,          \        \        ,          \        P                  ,          \        \        P                  \        ,          \        \        ,          ,           ,          \        ,          \        ,          ,           \        P                  \        P                  ,          \        ,          ,
          ,          \        ,          \        \        \        P                  ,          \        \        ,          \        ,          \        P                  ,          ,           ^\        ,          \        ,          ,
          ,          ,           ,          \        ,          ,           ^*\        ,          \        ,          \        P                  ,          \        P                  ,          \        \        P                  ,           ,          ,           ,          \
        ,          p \        \        \        ,          \        ,          \        P                  ,          ^\        ,          \        ,          ,
          \        \        P                  ,          ,           ,          \         \
        P                  ,          \        \        \        ,          \        P                  \        ,          ,           ,          \        ,          \        ,          \        \        ,          \        P                  ,          ,           \        P                  \        P                  ,          \        ,          ,
          ,          \        ,          ,           \        ,          \
        ,          \         P                  ,          \        P                  ,          \        ^,          \
        ,          \         P                  ,          \        P                  ,          \        P                  ,          \         ,          \
        P                  ,          \        ,          \        ,          ,           ^*\        ,          \        ,          \        P                  ,          \        P                  ,          \         ,          \
        P                  ,          ,           \        \        ,          \        ^,          ,          \
        ,          \         P                  ,          \        P                  ,          \        P                  ,          \         ,          \
        P                  ,          \        ,          ,           \        \
        ,          \         P                  ,          \        ,          \        ,          ,           \         \
        P                  ,          ^*\        ,          ^*\        P                  ,          ,           ,          \        ,          \        ,          \        P                  ,          ,           \
        \         P                  ,          \        ,          \        ,          \         ,          \
        P                  ,          \        P                  ^,          ,          \        ,          \        P                  ,          ,           \
        \         P                  ,          \        ,          \        ,          \         ,          \
        P                  ,          \        P                  ^,          ,          \        P                  ,          \        P                  \        ,          \        P                  \        P                  ,          ,           ,          ,           ^*\
        ,          \         P                  ,          \        ,          \        ,          \        P                  ,          \        P                  ,          ,           \        P                  ^*\        ,          ^*\        P                  ,          ,           ,          \
        ,          \         P                  ,          \        ,          \        ,          ,           \        P                  \        P                  ^,          ,          \        ,          \        ,          \         ,          \
        P                  ,          \        P                  ,          \        ,          ,           \        P                  \         ,          \
        P                  ,          \        P                  \        P                  ,          \        P                  \        ,          ,           ,          ,           \        P                  \        P                  ,          \
        ,          \         P                  ,          \        ,          \        ,          \         ,          \
        P                  ,          \        P                  ^,          ,          \        P                  ,          ,           \        P                  \        ,          \        ,          \         ,          \
        P                  ,          \        P                  ,          \        ,          ,           ^\        P                  ,          \        ,          \        ,          \         ,          \
        P                  ,          \        P                  ,          \        P                  ,          ,
          \        P                  \        ,          \        ^,          ,          \
        ,          \         P                  ,          \        P                  ,          \        P                  ,          \         ,          \
        P                  ,          ,
          \        P                  \        P                  ,          \         ,          \
        P                  ,          \        P                  ,          ,           pV P                  \        4      V8X  g   Q hR# rK   )	r(   rC   r$   r!   r%   r)   r'   r&   r8   )r<   results     r1   +test_derivatives_of_complicated_matrix_exprrf   L  s*   33!QSSUQqS[!ACCGQqssUAaCGaQ1oa>OPQ>Q4QTUTWTWXYX[X[T[\]T]4]-^_`-`cdfghihkhkfknopqnqrsnstutwtwnwfwz{|}z}~zf  dA  .A  %B  CD  %D  D  GI  JK  GK  LM  GM  NO  NQ  NQ  GQ  RS  RU  RU  GU  WX  [\  [^  [^  W^  G_  _  `  ab  bD1QqssQqSU"QqssU*+aeQ!acc!e_Q5Fq5H1Q3qss75RUVUXUXYZY\Y\U\]^U^5^._`a.aacddeffghgjgjjklknknnqrtuquvwqwxyx{x{q{|}||q  AB  AD  AD  rD  EF  rF  GH  GJ  GJ  rJ  KL  rL  MN  rN  N  QS  TU  QU  VW  QW  XY  X[  X[  Q[  \]  \_  \_  Q_  `a  Qa  bc  be  be  Qe  e  hi  jk  hk  lm  op  lp  hp  qr  hr  st  sv  sv  hv  wx  wz  wz  hz  {|  {~  {~  h~  @  h@  AB  AD  AD  hD  EF  hF  F  IJ  KL  IL  MN  MP  MP  IP  QR  IR  ST  IT  T  WX  YZ  Y\  Y\  W\  ^`  ab  ^b  eg  hi  hk  hk  ek  ^k  Wl  mn  Wn  op  Wp  qr  qt  qt  Wt  t  wx  yz  y|  y|  w|  }~  w~  @  w@  AB  wB  CD  CF  CF  wF  GH  GJ  GJ  LM  GM  wM  NO  wO  PQ  PS  PS  wS  S  VW  XY  X[  X[  V[  \]  V]  ^_  V_  `a  Va  bc  be  be  Ve  fg  fi  fi  kl  fl  Vl  mn  mp  mp  Vp  rs  ru  ru  vw  rw  z{  z}  z}  ~  ~A  ~A  zA  rA  VB  B  EG  HI  EI  JK  JM  JM  EM  NO  EO  PQ  EQ  RS  RU  RU  EU  VW  VY  VY  EY  Y  \]  \_  \_  ac  de  ae  hj  kl  kn  kn  hn  an  \o  pq  \q  rs  ru  ru  \u  vw  \w  xy  \y  y  |}  |  |  @A  @C  @C  EF  @F  |F  GH  |H  IJ  |J  KL  |L  MN  MP  MP  |P  QR  QT  QT  |T  UV  |V  V  YZ  Y\  Y\  ]^  Y^  _`  _b  _b  Yb  de  dg  dg  hi  hk  hk  dk  no  nq  nq  rs  ns  ds  Yt  t  wx  wz  wz  {|  {~  {~  w~  @  w@  AB  AD  AD  wD  EF  wF  GH  wH  IJ  wJ  KL  KN  KN  wN  OP  OR  OR  TU  OU  wU  VW  VY  VY  wY  Y  \]  \_  \_  `a  \a  bc  \c  de  \e  fg  fi  fi  \i  jk  jm  jm  \m  no  \o  o  rs  tu  tw  tw  rw  xy  ry  z{  r{  |}  r}  ~  ~A  ~A  rA  BC  BE  BE  rE  FG  FI  FI  rI  I  LM  LO  LO  PQ  LQ  RS  UV  RV  LV  WX  LX  YZ  Y\  Y\  L\  ]^  ]`  ]`  L`  ab  ad  ad  Ld  ef  Lf  gh  gj  gj  Lj  j  mn  mp  mp  qr  qt  qt  mt  uv  mv  wx  wz  wz  mz  {|  {~  {~  m~  ~F99Q<6!!!r3   c                     ^\        \        4      ,          p V P                  \        4      ^\        \        4      ,          8X  g   Q h\        p V P                  \        4      p\        V\        4      '       g   Q hV\        \        \        4      8X  g   Q h\        \        4      ^,          p V P                  \        4      ^\        \        4      ,          \        \        4      ,          8X  g   Q h\        \        4      \        ,          p \        \        4      pV P                  \        4      \        \        V\        4      \        \        \        \        4      V,          V4      \        ^4      ! ^^4      4      4      8X  g   Q h\        \        \        4      \        ,          4      p V P                  \        4      ^\        \        4      ,          \        \        4      ,          8X  g   Q h\        \        \        \        4      \        ,          4      \        ,          4      p V P                  \        4      ^\        \        4      ^,          ,          \        \        4      ,          8X  g   Q hR# rK   )r   r$   r8   r   r.   
isinstancer   r   r   r    r   )r<   derivrM   s      r1   "test_mixed_deriv_mixed_expressionsrj   R  s   U1X:D99Q<1Xa[=(((DIIaLEeZ((((Jq!$$$$8Q;D99Q<AeAhJ33338A:DA99Q<8$6q!$<kJ\]bcd]efg]gijJkmxyzm{|}  @A  nB  ?C  D  D  D  Dq!D99Q<AeAhJ3333uQxz"1$%D99Q<AeAhkM8A;6666r3   c                  P
   \         P                  \        ,          p V P                  \         4      \        8X  g   Q hV R,          P                  \         \        ^ 3,          4      P                  4       \        \        ^ 3,          8X  g   Q h\         P                  \        ,          \        P                  ,          p V P                  \         4      \        ^\        \         P                  \        ,          4      ,          ,          8X  g   Q h\         P                  \         ,          \        P                  ,          p V P                  \         4      \         \         P                  \         ,          \        R^4      ,          ,          8X  g   Q h\        P                  \        ,          \         P                  ,          \        ,          \        P                  ,          p V P                  \         4      \        \        P                  ,          \        ,          \        \        P                  \        ,          \         P                  ,          \        ,          4      ,          ^,          8X  g   Q h\        P                  \        ,          \         P                  ,          \        ,          \        ^^4      ,          p V P                  \         4      \        \        P                  ,          \        ,          \        P                  \        ,          \         P                  ,          \        ,          \        R^4      ,          ,          ^,          8X  g   Q h\        P                  \        ,          \        ,          \        P                  ,          p V P                  \        4      \        ^\        \        P                  \        ,          \        ,          4      ,          ,          \        P                  ,          8X  g   Q h\        P                  \         ,          \        P                  \        ,          \        ,          \        P                  ,          ,          \        P                  ,          \        ,          p V P                  \        4      \        ^\        \        P                  \        ,          \        ,          4      ,          ,          \         P                  ,          \        ,          \        P                  ,          \        ,          \        P                  ,          8X  g   Q hR# )r-   NrW   rS   r`   )r"   rC   r#   r8   rX   rY   r   Halfr
   r   r*   r(   r)   r!   r+   rT   s    r1   test_derivatives_matrix_normsrm   j  s   33q5D99Q<1:??1QT7#((*a1g555CCEAFF?D99Q<1aQSSUm,,,,CCEAFF?D99Q<1acc!ehr1o55555CCE!##IaK!&& D99Q<1QSS574Aacc	!#44Q6666CCE!##IaK(1a.(D99Q<1QSS57ACCE!##IaK(2q/#AA!CCCCCCE!GaffD99Q<1aQSSU1Wo.qss222233q5!##a%'AFF""133&q(D99Q<1aQSSU1Wo.qss214QSS8:133>>>>r3   c                  &   \         P                  \        4      p V P                  \         4      P	                  \        \         P                  R  4      4      4      '       g   Q hV \        ^ 3,          P                  \         \        ^ 3,          4      P                  4       \        \         \        ^ 3,          4      ^,          ^,           \        \        \        4      ,          8X  g   Q h\        V \         V P                  \         4      4       \        ^,          \         ,          P                  \        4      p V P                  \        4      P	                  \        ^\        ,          \         ,          \        ^,          \         ,          P                  \        4      4      4      '       g   Q hV \        ^ 3,          P                  \        4      P                  4       ^\        ,          \         \        ^ 3,          ,          \        \        ^,          \         \        ^ 3,          ,          4      ,          8X  g   Q h\        V \        V P                  \        4      4       \        \        4      \        ,          \         ,          P                  \        4      p V P                  \        4      P	                  \        \        \         ,          \        ,          \        \        4      \        ,          \         ,          P                  \        4      4      4      '       g   Q h\        V \        V P                  \        4      4       \        \         P                  \"        4      ,          p \        V \         V P                  \         4      4       \         P$                  \        ,          \         ,          \&        \(        P                  \        4      P$                  ,          \         ,          ,           p V P                  \         4      P	                  \        P$                  \         ,          \        \         ,          ,           \&        \(        P                  \        4      ,          ,           4      '       g   Q h\        V \         V P                  \         4      4       \         P                  \        4      P$                  \(        ,          p \        V \         V P                  \         4      4       \*        P$                  \,        ,          \.        ,          P                  \        4      p V P                  \,        4      P	                  \*        \*        P$                  \,        ,          \.        ,          P                  \        4      ,          \.        P$                  ,          4      '       g   Q h\        V \,        V P                  \,        4      4       \*        P$                  \,        P                  \        4      ,          \.        ,          p V P                  \,        4      P	                  \        \*        4      \,        P                  \        4      ,          \        \.        4      ,          4      '       g   Q h\        V \,        V P                  \,        4      4       \*        P$                  \        \,        ,          \         ,          P                  \        4      ,          \.        ,          p V P                  \,        4      P	                  \        P$                  \        \*        4      ,          \        \,        ,          \         ,          P                  \        4      ,          \        \.        4      ,          \         P$                  ,          4      '       g   Q h\        V \,        V P                  \,        4      4       \*        P$                  \        \,        ,          \.        ,          P                  \        4      ,          \.        P$                  ,          p \*        P$                  \        ,          \,        P                  \        4      ,          \         ,          \.        ,          p V P                  \,        4      P	                  \        \        P$                  \*        ,          \.        P$                  ,          \         P$                  ,          \,        P                  \        4      4      4      '       g   Q h\*        P$                  \        \,        P                  \        4      ,          \         ,          P                  \        4      ,          \.        ,          p \*        P$                  \,        P                  \        4      P                  \        4      ,          \.        ,          p R# )c                 4    \        V 4      ^,          ^,           #    )r   )r"   s   &r1   r2   8test_derivatives_elementwise_applyfunc.<locals>.<lambda>  s    QQr3   N)r"   rE   r   r8   rD   r   r/   rX   rY   rZ   r?   r   r   r   r	   r$   r%   r   rC   r.   r#   r(   r!   r)   rT   s    r1   &test_derivatives_elementwise_applyfuncrs     sT   ;;sD99Q<  1;;678: : : :1:??1QT7#((*s1QT7|Q/BF1aL.PPPP*4DIIaLAqDFc"D99Q<  1a!Q$q&!3!3C!89; ; ; ;1:??1""$!AadGC1Qq!tW4E(EEEE*4DIIaLAF1HQJ!!#&D99Q<  !AAq
55c:;= = = =*4DIIaLAQ[[D +4DIIaLA33q57Qq{{3')))!++D99Q<  Q1qS1A/A!ABBBB*4DIIaLA;;saD +4DIIaLACC!GaK""3'D99Q<  ACCE!G#6#6s#;!;ACC!?@@@@*4DIIaLA33S!!A%D99Q<  1akk#&&z!}46 6 6 6*4DIIaLA33!A#a%""3''!+D99Q<  	JqM1Q3q5++C00A>qssBD D D D*4DIIaLA33!A#a%""3''!##-D
 33q5S!!!#A%D99Q<  a!##+Q[[-=>@ @ @ @ 33!AKK$$Q&11#66:D 33!++c"--c22Q6Dr3   c                  ^   \        \        \        \        4      p V P	                  \        4      \        \        \        \        4      4      8X  g   Q h\        P                  \        \        \        \        4      ,          \        ,          p V P	                  \        4      \        \        \        P                  ,          \        \        4      8X  g   Q h\        \        ^4      p V P	                  \        4      P                  4       ^\        \        4      ,          8X  g   Q h\        \        P                  ^4      p V P	                  \        4      P                  4       ^\        \        4      ,          8X  g   Q h\        \        \        P                  4      p V P	                  \        4      \        P                  \        \        \        \        R^4      4      4      ,          8X  g   Q h\        \        P                  \        ,          \        ,          ^4      p V P	                  \        4      ^\        ,          \        P                  ,          \        ,          \        ,          \        P                  ,          8X  g   Q h\        \        P                  \        ,          \        ,          \        P                  4      p V P	                  \        4      \        ^\!        \        P                  \        ,          \        ,          4      ,          ,          \        P                  ,          8X  g   Q hR# )rq   NrS   )r   r(   r"   r)   r8   r   rC   r$   r!   r%   r   r   rY   r   rl   r   r
   rT   s    r1   (test_derivatives_of_hadamard_expressionsru     s    Aq!$D99Q<:&6q!&<====331a((*D99Q<?1QSS5!Q7777 !QD99Q<!JqM/111!##q!D99Q<!JqM/111!QVV$D99Q<166*^AxA-O"PPPPP!##a%'1%D99Q<1Q3qss719Q;qss?***!##a%'166*D99Q<1aQSSU1Wo.qss2222r3   Nrp   )T__doc__sympyr   sympy.combinatoricsr   sympy.concrete.summationsr   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   &sympy.functions.elementary.exponentialr   r	   (sympy.functions.elementary.miscellaneousr
   (sympy.functions.elementary.trigonometricr   r   r   (sympy.functions.special.tensor_functionsr   &sympy.matrices.expressions.determinantr   #sympy.matrices.expressions.diagonalr   #sympy.matrices.expressions.hadamardr   r   r   "sympy.matrices.expressions.inverser   "sympy.matrices.expressions.matexprr   "sympy.matrices.expressions.specialr    sympy.matrices.expressions.tracer   !sympy.matrices.expressions.mataddr   !sympy.matrices.expressions.matmulr   r   r   $sympy.tensor.array.array_derivativesr   sympy.matrices.expressionsr   0sympy.tensor.array.expressions.array_expressionsr   r   r    r/   r0   r.   rX   r\   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   rZ   r?   rF   rI   rO   rQ   rU   r^   rc   rf   rj   rm   rs   ru   rH   r3   r1   <module>r      sa  
 # + ) ' " % = 9 D D C > : b b 6 ; 8 2 4 4 E @ 5 f f
'
1au~1aaaaaaaaaaa 
5H,,C".2(5@pPQf"70?2<7B3r3   