+
    iA              
          ^ RI t ^ RI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HtHtHtHt ^ RIHt ^ RIHtHtHtHtHt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,H-t-H.t.H/t/H0t0H1t1H2t2H3t3 ^ R
I4H5t5 ^ RI6H7t7 ^ RI8H9t9H:t:H;t;H<t< ^ RI=H>t> ^ RI=H?t?H@t@HAtA ^ RIHBtBHCtC ^ RIHDtDHEtEHFtF ]7! R4      tG]! R^^4      tH]! R^^4      tI]! R^^4      tJ]! R^^4      tK]! R4      w  tLtMtNtO]GeS   ]P! ^ ^	^4       U u. uF  p ]Q! ]P! W ^,           4      4      NK  	  up tR]GP                  ]R]GP                  R7      tU]	! ]R4      tVR tWR 3R ltXR 3R ltYR tZR t[R t\R  t]R! t^R" t_R# t`R$ taR% tbR& tcR' tdR( teR) tfR* tgR# u up i )+    N)symbols
Derivative)
torch_code)eyeMatrixSymbolMatrix)	NDimArray)ArrayTensorProductArrayAddPermuteDimsArrayDiagonal_CodegenArrayAbstract)lambdify)EqNeGeGtLeLt)Absceilingexpfloorsignsinasincosacostanatanatan2coshacoshsinhasinhtanhatanhreimargerfloggammasqrt)skip)import_module)DeterminantHadamardProductInverseTrace)
randMatrix)Identity
ZeroMatrix	OneMatrix)	conjugateI)	Heavisidegamma	polygammatorchMNPQzx y z tdtypec                 @   \        WR 4      pV  Uu. uF1  p\        VP                  ^ ,          VP                  ^,          4      NK3  	  ppV Uu. uF6  p\        P	                  VP                  4       \        P                  R7      NK8  	  ppV! V!  pVP                  \        \        W4      4      4      P                  4       p\        V\        4      '       d   VP                  4       p\        VR4      '       d}   VP                  '       dk   \        V\        P                  4      '       dK   VP!                  4       ^ 8X  d6   VP#                  4       p\%        V4      p\'        Wg,
          4      R8  g   Q hR# VP(                  '       g   \        V\*        4      '       dU   \        P	                  VP                  4       \        P                  R7      p\        P-                  WgRR7      '       g   Q hR# \/        R\1        V4       R\1        V4       24      hu upi u upi )r=   rB   	is_numberư>NatolzCannot compare z with )r   r4   shaper=   tensortolistfloat64subsdictzipdoit
isinstancer   hasattrrE   Tensordimitemfloatabs	is_Matrixr	   allclose	TypeErrortype)	variablesexprfirandom_matricesrandom_variablesres   &&      ]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/printing/tests/test_torch.py_compare_torch_matrixre   +   sz   '*ACLM9az!''!*aggaj99OMO^_!QXXZu}}E_	A		$s9678==?A!*++FFHq+1;;;a&&1557a<AaAqu:$$${{{jI..LL5==L9~~a~..../$q'&a	BCC' N_s   7H<Hc                  0    \         P                  ! R^4      #    randomuniform     rd   <lambda>ro   D   s    v~~b!7Lrn   c                    \        WR 4      pV  Uu. uF	  qB! 4       NK  	  ppV Uu. uF(  p\        P                  V\        P                  R7      NK*  	  ppV! V!  p\	        V\        P
                  4      '       d   VP                  4       pVP                  \        \        W4      4      4      P                  4       p	\        W,
          4      R8  g   Q hR# u upi u upi )r=   rB   rF   N)r   r=   rJ   rL   rQ   rS   rU   rM   rN   rO   rP   rW   
r\   r]   rngr^   vrvsr_   t_rvsrb   rc   s
   &&&       rd   _compare_torch_scalarrv   D   s    '*A#
$)Q35)C
$;>?3aU\\!5==\13E?	5	A!U\\""FFH		$s9*+,113Aqu: %?s
   C.Cc                  0    \         P                  ! ^ ^
4      # )r   )rk   randintrm   rn   rd   ro   ro   O   s    6>>!R;Prn   c           
      r   \        WR 4      pV  Uu. uF	  qB! 4       NK  	  ppV Uu. uF(  p\        P                  V\        P                  R7      NK*  	  ppV! V!  p\	        VP                  \        \        W4      4      4      P                  4       4      p	VP                  4       V	8X  g   Q hR# u upi u upi )r=   rB   N)
r   r=   rJ   rL   boolrM   rN   rO   rP   rU   rq   s
   &&&       rd   _compare_torch_relationalr{   O   s    '*A#
$)Q35)C
$;>?3aU\\!5==\13E?	5	ATYYtC	/016689A668q==	 %?s
   B/.B4c                  "
   \         '       g   \        R 4       \        \        4      p \	        V 4      R8X  g   Q h\        \        V R4      p\         P                  . R0O.\         P                  R7      pV! V4      p\         P                  V4      p\         P                  W48H  4      '       g   Q h\        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \        \        4      p \	        V 4      R	8X  g   Q h\        \        3V R
 R7       \        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \        ^,          p \	        V 4      R8X  g   Q h\        \        3V R R7       \!        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \#        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \%        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \'        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \)        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \+        \        4      p \	        V 4      R8X  g   Q h\        \        3V R R7       \-        \.        \        4      p \	        V 4      R8X  g   Q h\        \.        \        3V R R7       \1        \        4      p \	        V 4      R8X  g   Q h\        \        3V R  R7       \3        \        4      p \	        V 4      R!8X  g   Q h\        \        3V R" R7       \5        \        4      p \	        V 4      R#8X  g   Q h\        \        3V R$ R7       \7        \        4      p \	        V 4      R%8X  g   Q h\        \        3V R& R7       \9        \        4      p \	        V 4      R'8X  g   Q h\        \        3V R( R7       \;        \        4      p \	        V 4      R)8X  g   Q h\        \        3V R* R7       \=        \        4      p \	        V 4      R+8X  g   Q h\        \        3V R, R7       \?        \        4      p \	        V 4      R-8X  g   Q h\        \        3V R. R7       R/# )1PyTorch not installedztorch.abs(x)r=   rB   ztorch.sign(x)c                  0    \         P                  ! R^
4      # )
   irj   rm   rn   rd   ro   !test_torch_math.<locals>.<lambda>f   s    &..b2Irn   )rr   ztorch.ceil(x)c                  ,    \         P                   ! 4       # Nrk   rm   rn   rd   ro   r   j   
    &--/rn   ztorch.floor(x)c                  ,    \         P                   ! 4       # r   r   rm   rn   rd   ro   r   n   r   rn   ztorch.exp(x)c                  0    \         P                  ! R^4      #    rj   rm   rn   rd   ro   r   r       &..Q2Grn   ztorch.sqrt(x)c                  ,    \         P                   ! 4       # r   r   rm   rn   rd   ro   r   v   r   rn   ztorch.pow(x, 4)c                  ,    \         P                   ! 4       # r   r   rm   rn   rd   ro   r   z   r   rn   ztorch.cos(x)c                  ,    \         P                   ! 4       # r   r   rm   rn   rd   ro   r   ~   r   rn   ztorch.acos(x)c                  0    \         P                  ! RR 4      # gGz?gGzrj   rm   rn   rd   ro   r          &..2Mrn   ztorch.sin(x)c                  ,    \         P                   ! 4       # r   r   rm   rn   rd   ro   r      r   rn   ztorch.asin(x)c                  0    \         P                  ! RR 4      # r   rj   rm   rn   rd   ro   r      r   rn   ztorch.tan(x)c                  0    \         P                  ! RR 4      # )g      ?g      rj   rm   rn   rd   ro   r          &..s2Krn   ztorch.atan(x)c                  0    \         P                  ! R^4      # rg   rj   rm   rn   rd   ro   r      r   rn   ztorch.atan2(y, x)c                  0    \         P                  ! R^4      # rg   rj   rm   rn   rd   ro   r      s    FNN2q4Irn   ztorch.cosh(x)c                  0    \         P                  ! R^4      # r   rj   rm   rn   rd   ro   r      r   rn   ztorch.acosh(x)c                  0    \         P                  ! R ^4      # )g?rj   rm   rn   rd   ro   r          &..a2Hrn   ztorch.sinh(x)c                  0    \         P                  ! R^4      # r   rj   rm   rn   rd   ro   r      r   rn   ztorch.asinh(x)c                  0    \         P                  ! R^4      # rg   rj   rm   rn   rd   ro   r      r   rn   ztorch.tanh(x)c                  0    \         P                  ! R^4      # r   rj   rm   rn   rd   ro   r      r   rn   ztorch.atanh(x)c                  0    \         P                  ! RR 4      # )g?grj   rm   rn   rd   ro   r      r   rn   ztorch.erf(x)c                  0    \         P                  ! R^4      # r   rj   rm   rn   rd   ro   r      r   rn   ztorch.lgamma(x)c                  0    \         P                  ! R ^4      # )g      ?rj   rm   rn   rd   ro   r      r   rn   N)r   ) r=   r.   r   xr   r   rJ   rL   rW   allr   rv   r   r   r   r-   r   r   r   r   r   r    r!   yr"   r#   r$   r%   r&   r'   r+   r,   )r]   r^   may_abscs        rd   test_torch_mathr   X   s   5$%q6Dd~---D'"A	'u}}	=BbEE		"A99UZ    7Dd...1$*IJ1:Dd...1$*AB8Dd////1$*ABq6Dd~---1$*GH7Dd...1$*AB6Dd00001$*ABq6Dd~---1$*AB7Dd...1$*MNq6Dd~---1$*AB7Dd...1$*MNq6Dd~---1$*KL7Dd...1$*GHA;Dd22221a&$,IJ7Dd...1$*GH8Dd////1$*HI7Dd...1$*GH8Dd////1$*GH7Dd...1$*GH8Dd////1$*KLq6Dd~---1$*GHA;Dd00001$*HIrn   c                      \        \        \        4      4      R 8X  g   Q h\        \        \        4      4      R8X  g   Q h\        \	        \        4      4      R8X  g   Q hR# )ztorch.real(x)ztorch.imag(x)ztorch.angle(x)N)r   r(   r   r)   r*   rm   rn   rd   test_torch_complexesr      sH    be///be///c!f!1111rn   c                     \         '       g   \        R 4       \        \        \        4      p \        V 4      R8X  g   Q h\        \        \        3V 4       \        \        \        4      p \        V 4      R8X  g   Q h\        \        \        3V 4       \        \        \        4      p \        V 4      R8X  g   Q h\        \        \        3V 4       \        \        \        4      p \        V 4      R8X  g   Q h\        \        \        3V 4       \        \        \        4      p \        V 4      R8X  g   Q h\        \        \        3V 4       \        \        \        4      p \        V 4      R8X  g   Q h\        \        \        3V 4       R# )r}   ztorch.eq(x, y)ztorch.ne(x, y)ztorch.ge(x, y)ztorch.gt(x, y)ztorch.le(x, y)ztorch.lt(x, y)N)r=   r.   r   r   r   r   r{   r   r   r   r   r   r]   s    rd   test_torch_relationalr      s   5$%a8Dd////q!fd+a8Dd////q!fd+a8Dd////q!fd+a8Dd////q!fd+a8Dd////q!fd+a8Dd////q!fd+rn   c                  r   \         f   \        R4       \        p \        V 4      R8X  g   Q h\	        \        3V R4      p\        ^4      p\         P                  VP                  4       \         P                  R7      p\         P                  V! V4      V4      '       g   Q h\        \        ,          p \        V 4      R8X  g   Q h\        \        \        3V 4       \        ^,          p \        V 4      R8X  g   Q h\        \        3V 4       \        \        ,          \        ,          \        ,          p \        V 4      R8X  g   Q h\        \        \        \        \        3V 4       \        \        4      p \        V 4      R8X  g   Q h\        \        3V 4       \        \        4      p \        V 4      R	8X  g   Q h\        \        3V 4       \!        \        \        4      p \        V 4      R
8X  g   Q h\        \        \        3V 4       \#        \        4      p \        V 4      R8X  g   Q h\        ^4      p\         P                  VP                  4       \         P                  R7      p\	        \        3V R4      pV! V4      p\         P$                  P'                  V4      p\         P                  WE4      '       g   Q hR # )Nr}   r>   r=   rB   ztorch.matmul(M, N)ztorch.mm(torch.mm(M, M), M)z4torch.matmul(torch.matmul(torch.matmul(M, N), P), Q)ztorch.trace(M)ztorch.det(M)ztorch.mul(M, N)ztorch.linalg.inv(M))r=   r.   r>   r   r   r   rJ   rK   rL   rY   r?   re   r@   rA   r3   r0   r1   r2   linalginv)r]   r^   eye_mat
eye_tensorresultexpecteds         rd   test_torch_matrixr      s
   }$%Dds"""!tW%A!fGgnn.emmDJ>>!J-4444q5Dd33331a&$'6Dd<<<<1$%q519q=DdUUUU1aA,-8Dd////1$%q>Dd~---1$%1a Dd00001a&$'1:Dd4444 !fGgnn.emmDJ!tW%Az]F||
+H>>&++++rn   c                     \         '       g   \        R 4       \        R^^4      p \        R^^4      p\        R^^4      p\        R^^4      p\         P                  RR.RR..\         P                  R	7      p\         P                  RR.RR..\         P                  R	7      p\         P                  RR
.RR..\         P                  R	7      p\         P                  RR.RR..\         P                  R	7      p\        W4      p\        V4      R8X  g   Q h\        W3VR4      p	V	! WE4      p
\         P                  RWE4      p\         P                  W4      '       g   Q h\        W4      p\        V4      R8X  g   Q h\        W3VR4      p	V	! WE4      p
WE,           p\         P                  W4      '       g   Q h\        WV4      p\        V4      R8X  g   Q h\        WV3VR4      p	V	! WEV4      p
WE,           V,           p\         P                  W4      '       g   Q h\        WW#4      p\        V4      R8X  g   Q h\        WW#3VR4      p	V	! WEWg4      p
WE,           V,           V,           p\         P                  W4      '       g   Q h\        V ^^ .4      p\        V4      R8X  g   Q h\        V 3VR4      p	V	! V4      p
VP                  p\         P                  W4      '       g   Q h\        \        W4      . RO4      p\        V4      R8X  g   Q h\        W3VR4      p	V	! WE4      p
\         P                  RWE4      P                  ^^^^ 4      p\         P                  W4      '       g   Q h\        \        W4      R4      p\        V4      R8X  g   Q h\        W3VR4      p	V	! WE4      p
\         P                  RWE4      p\         P                  W4      '       g   Q hR# )r}   r>   r?   r@   rA         ?       @      @      @rB           g      @ztorch.einsum("ab,cd", M, N)r=   zij,klztorch.add(M, N)ztorch.add(torch.add(M, N), P)z+torch.add(torch.add(torch.add(M, N), P), Q)zM.permute(1, 0)z/torch.einsum("ab,cd", M, N).permute(1, 2, 3, 0)zab,cdz torch.einsum("ab,bc->acb", M, N)z
ab,bc->acbNg             )   r      r   )r   r   )r=   r.   r   rJ   rL   r
   r   r   einsumrY   r   r   Tpermuter   )r>   r?   r@   rA   r   mbmcmdcgr^   r   r   s               rd   test_torch_array_operationsr     so   5$%S!QAS!QAS!QAS!QA	Bx"b*%--	@B	Cy3),EMM	BB	Bx"b*%--	@B	Cy2r(+5==	AB	A	!Bb>::::!W%A	"	AWb%A>>!	!Bb>....!W%A	"	A
A>>!	!	Bb><<<<!B(A	""A
"A>>!	!	Bb>JJJJ!r7+A	""A
"rA>>!	QA	Bb>....!r7#A	"A
A>>!	'-|	<Bb>NNNN!W%A	"	AWb%--aAq9A>>!	)!/	8Bb>????!W%A	"	A\2*A>>!rn   c                 d    \        \        \        4      \        4      p \        V 4      R8X  g   Q hR# )zTest derivative handling.'torch.autograd.grad(torch.sin(x), x)[0]N)r   r   r   r   r   s    rd   test_torch_derivativer   K  s&    c!fa DdHHHHrn   c                  f   \         '       g   \        R 4       \        \        \	        \
        4      .\        \        4      \        ) ..4      p R\        V 4      9   g   Q hR\        V RR7      9   g   Q h\        V RR7      pRV9   g   Q hRV9   g   Q h\        V RRR7      pRV9   g   Q hRV9   g   Q hR	# )
r}   zdtype=torch.float64zdtype=torch.float32ztorch.float32rB   Trequires_gradzrequires_grad=True)r   rC   N)
r=   r.   r   r   r   r   r   ztr   )r]   r   s     rd   test_torch_printing_dtyper   Q  s    5$% As1v;Q!-.D Jt$4444 !Jt?$KKKK D1F6))) F*** DHF6))) F***rn   c                     \         '       g   \        R 4       \        \        4      \	        \
        4      ,           p \        \        \
        .V R4      p\         P                  RRR7      p\         P                  RRR7      pV! W#4      pVP                  '       g   Q hVP                  4        \        VP                  P                  4       \        \	        R4      P                  4       4      ,
          4      R8  g   Q h\        VP                  P                  4       \        \        R4      P                  4       ) 4      ,
          4      R8  g   Q hR# )r}   r=   r   Tr   r   rF   N)r=   r.   r   r   r   r   r   rJ   r   backwardrW   gradrU   rV   evalf)r]   r^   x_valy_valr   s        rd   test_requires_gradr   g  s    5$%q6CF?D!Qw'A LLDL1ELLDL1Eu_F
OO uzz 5S)9#::;dBBB uzz 5#c(..*:):#;;<tCCCrn   c                     \         '       g   \        R 4       \        R4      w  rp\        \	        V 4      V 4      p\        V4      R8X  g   Q h\        \	        V 4      V ^34      p\        V4      R8X  g   Q h\        \	        W,          4      W4      p\        V4      pRpVP                  RR4      pVP                  RR4      pWg8X  g   Q h\        \	        V 4      W 4      p\        V4      pRpWE8X  g   Q h\        \	        W,          V,          4      W^3V4      p\        V4      pRpVP                  RR4      pVP                  RR4      pWg8X  g   Q hR# )	r}   zx y zr   zhtorch.autograd.grad(torch.autograd.grad(torch.sin(x), x, create_graph=True)[0], x, create_graph=True)[0]zjtorch.autograd.grad(torch.autograd.grad(torch.sin(x*y), x, create_graph=True)[0], y, create_graph=True)[0]  ztorch.autograd.grad(torch.autograd.grad(torch.autograd.grad(torch.autograd.grad(torch.sin(x*y*z), x, create_graph=True)[0], y, create_graph=True)[0], y, create_graph=True)[0], z, create_graph=True)[0]N)r=   r.   r   r   r   r   replace)r   r   r   r]   r   r   normalized_resultnormalized_expecteds           rd   %test_torch_multi_variable_derivativesr   |  sR   5$%gGA!c!fa DdHHHHc!fq!f%D{| | | c!%j!'DF{HsB/"**33333c!fa#DFyHc!%!)naQ3DF ZHsB/"**33333rn   c                     \         '       g   \        R 4       \        R4      p \        R4      p\        V ^,          V 4      p\	        WR4      p\         P                  RRR7      pV! V4      p\         P                  V\         P                  R4      4      '       g   Q h\        \        V 4      V ^34      p\	        WR4      p\         P                  RRR7      pV! V4      p\         P                  V\         P                  R4      R	R
7      '       g   Q h\         P                  \        P                  ^,          RR7      pV! V4      p\         P                  V\         P                  R4      R	R
7      '       g   Q h\        W^,          ,          W4      p\	        W3VR4      p\         P                  RRR7      p\         P                  RRR7      pV! WF4      p\         P                  V\         P                  R4      4      '       g   Q hR# )r}   r   r   r=   r   Tr   r   r   gh㈵>rG   r   g      @Nr   )
r=   r.   r   r   r   rJ   iscloser   mathpi)r   r   r]   r^   r   r   r   s          rd   test_torch_derivative_lambdifyr     s   5$%AAa1fa D'"ALLDL1EuXF==c!23333c!fq!f%D'"ALLDL1EuXF==c!2=>>>>LL1DL9EuXF==d!3$=????aq&j!'D!w'ALLDL1ELLDL1Eu_F==c!23333rn   c                     \         '       g   \        R 4       \        ^4      p \        V 4      R8X  g   Q h\	        R4      p\        V4      p \        V 4      R8X  g   Q h\        ^^4      p \        V 4      R8X  g   Q h\	        R4      w  r!\        W!4      p \        V 4      R8X  g   Q h\        ^^4      p \        V 4      R8X  g   Q h\        W!4      p \        V 4      R8X  g   Q hR	# )
r}   ztorch.eye(3)nztorch.eye(n, n)ztorch.zeros((2, 3))zm nztorch.zeros((m, n))ztorch.ones((2, 3))ztorch.ones((m, n))N)r=   r.   r5   r   r   r6   r7   )r]   r   ms      rd   test_torch_special_matricesr     s    5$%A;Dd~---AA;Dd0000aDd44445>DAaDd4444Q?Dd3333Q?Dd3333rn   c                     \         '       g   \        R 4       \        ^4      p \        . V R4      pV! 4       p\         P	                  ^4      p\         P                  W#4      '       g   Q h\        ^^4      p \        . V R4      pV! 4       p\         P                  R4      p\         P                  W#4      '       g   Q h\        ^^4      p \        . V R4      pV! 4       p\         P                  R4      p\         P                  W#4      '       g   Q hR# )r}   r=   N)r   r   )
r=   r.   r5   r   r   rY   r6   zerosr7   ones)r]   r^   r   r   s       rd   $test_torch_special_matrices_lambdifyr     s    5$%A;DT7#ASFyy|H>>&++++aDT7#ASF{{6"H>>&++++Q?DT7#ASFzz&!H>>&++++rn   c                     \         '       g   \        R 4       \        \        4      p \	        V 4      R8X  g   Q h\        \        \        4      \        \        \        4      ,          ,           4      p \	        V 4      R8X  g   Q h\        p \	        V 4      R8X  g   Q h^\        ,          \        ,           p \	        V 4      R8X  g   Q h\        \        \        ,          4      p \	        V 4      R8X  g   Q hR# )r}   ztorch.conj(x)z6torch.sin(torch.conj(x)) - 1j*torch.cos(torch.conj(y))1jzx + 2*1jztorch.exp(1j*x)N)
r=   r.   r8   r   r   r   r9   r   r   r   r   s    rd   test_torch_complex_operationsr     s    5$%Q<Dd... SVa#a&j()DdWWWWDdt###q519Ddz)))q1u:Dd0000rn   c                     \         '       g   \        R 4       \        \        4      p \	        V 4      R8X  g   Q h\        \        ^ 4      p \	        V 4      R8X  g   Q h\        \        4      p \	        V 4      R8X  g   Q h\        ^ \        4      p \	        V 4      R8X  g   Q h\        \        \        4      4      p \	        V 4      R8X  g   Q hR# )r}   ztorch.heaviside(x, 1/2)ztorch.heaviside(x, 0)ztorch.special.gamma(x)ztorch.special.digamma(x)z!torch.special.gamma(torch.sin(x))N)r=   r.   r:   r   r   r;   r<   r   r   s    rd   test_torch_special_functionsr     s    5$%Q<Dd8888Q?Dd66668Dd7777Q?Dd9999Q=DdBBBBrn   )hrk   r   sympyr   r   sympy.printing.pytorchr   r   r   r   sympy.tensor.arrayr	   0sympy.tensor.array.expressions.array_expressionsr
   r   r   r   r   sympy.utilities.lambdifyr   sympy.core.relationalr   r   r   r   r   r   sympy.functionsr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   sympy.testing.pytestr.   sympy.externalr/   sympy.matrices.expressionsr0   r1   r2   r3   sympy.matricesr4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r   r   r   r   rangelistllorJ   rL   m3x3	m3x3sympyre   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r_   s   0rd   <module>r     s     % - - - (7 7 . 8 8% % % % % % % & (1 1 % : :  - - 	gaaaaY
1a*/1a.
9.Q4aQ .
9C<<5==<1DsID2 0M  4Q ^JB2,:,,^= @I+,D*4B4@42,.1*Cy :s   F	