
    \hG                        S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
  S SKJr  S SKJrJrJrJrJrJrJrJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6  S SK7J8r8  S SK9J:r:J;r;  S SK<J=r=J>r>J?r?  S SK@JArA  S SKBJCrCJDrDJErEJFrFJGrG  S SKHJIrI  S SKJJKrKJLrL  S SKMJNrNJOrO  S SKPJQrQJRrR  S SKSJTrTJUrUJVrVJWrWJXrX  S SKYJZrZ  S SK[J\r\  \" S5      u  r]r^r_\Q" S5      r`S raS rbS rcS rdS reS rfS  rgS! rhS" riS# rjS$ rk " S% S&\5      rlS' rmS( rnS) roS* rpS+ rqS, rrS- rsS. rtS/ ruS0 rvS1 rwS2 rxS3 ryg4)5    )Not)
Assignment)none)expm1log1p)cosm1)MatrixSolve)
ExprModsymbolsEqLeGtzooooRationalPow)
Derivative)pi)S)acosKroneckerDelta	PiecewisesignsqrtMinMaxcotacschaseccothseclogsincostanasinatansinhcoshtanhasinhacoshatanh)atan2)AndOr)SparseMatrixMatrixSymbolIdentity)PrintMethodNotImplementedError)MpmathPrinterCmathPrinterPythonCodePrinterpycodeSymPyPrinter)TensorflowPrinter)NumPyPrinterSciPyPrinter)raisesskip)IndexedBaseIdx)ArraySymbolArrayDiagonalArrayContraction	ZeroArrayOneArray)import_module)loggammazx y zpc            
      t   [        5       n U R                  (       a   eU R                  [        [        -  5      S:X  d   eU R                  [        [        S5      5      S:X  d   eU R                  [        [        [        5      * 5      S:X  d   eU R                  [        [        * [        5      5      S:X  d   eU R                  [        [        [        5      5      S:X  d   eU R                  [        [        [        5      5      S:X  d   eU R                  S[        [        -   -  5      S	:X  d   eU R                  [        [        5      5      S
:X  d   eU R                  (       a   eU R                  [        5      S:X  d   eU R                  SS10:X  d   eU R                  [        [        SS5      -  5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  SSS10:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [!        [        5      5      S:X  d   eU R                  [#        [        S5      5      S:X  d   eU R                  [%        S['        [        S5      4S[        S:  45      5      S:X  d   eU R                  [%        S[)        [        S5      4S[+        [        S5      4SS95      S:X  d   eU R                  [-        [        5      5      S:X  d   eU R                  [.        S   5      S:X  d   eU R                  [1        [        [        5      5      S :X  d   eU R                  S!5      S":X  d   eU R                  SS/5      S#:X  d   eU R                  [3        [        [        5      5      S$:X  d   eU R                  [5        [        [        5      5      S%:X  d   eg )&Nzx**y   zx % 2z-(x % y)z(-x) % yzx and yzx or y   z	1/(x + y)znot xzmath.pimathr   math.sqrt(x)r   zmath.acos(x)z(1/math.tan(x))z;((math.exp(x) + math.exp(-x))/(math.exp(x) - math.exp(-x)))z(math.acos(1/x))z((math.log(math.sqrt(1 + x**(-2)) + 1/x))zx = 2r      z/((1) if (x == 0) else (2) if (x > 6) else None)   Fevaluatez/((2) if (x <= 0) else (3) if (x > 0) else None)z((0.0 if x == 0 else math.copysign(1, x))r   rL   zp[0, 1]z(1 if x == y else 0)rK   rP   z(2, 3)z[2, 3]z	min(x, y)z	max(x, y))r8   module_importsdoprintxyr   r0   r1   r   r   r   r   r   r   r!   r    r   r   r   r   r   r   r   rI   r   r   r   prntrs    X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/tests/test_pycode.pytest_PythonCodePrinterr\   !   s   E####==A&(((==Q#w...==#a)$
222==aR$
222==Q#y000==Aq"h...==AaC![000==Q G+++####==	)))FTF#3333==HQN*+~=====a!^333FT6N#;;;;==a!^333==Q $5555==a!%bbbb==a!%7777==q"&PPPP==Aq)*g555==Ar!Qx=AaC" #&WX X X==Ar!Qx=Bq!H7 8<UU U U ==a!%OOOO==4!Y...==!,-1GGGG==8+++==!A8+++==Q#{222==Q#{222    c                  ^    [        5       n U R                  S:X  d   e[        [        S 5        g )Npython3c                      [        SS05      $ )Nstandardpython4)r8    r]   r[   <lambda>1test_PythonCodePrinter_standard.<locals>.<lambda>S   s    0*Y1GHr]   )r8   ra   r>   
ValueErrorrY   s    r[   test_PythonCodePrinter_standardrg   N   s'    E>>Y&&&
:HIr]   c                     [        5       n U R                  [        [        5      5      S:X  d   eU R                  [	        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S	:X  d   eU R                  [        [        5      5      S
:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eU R                  [!        [        5      5      S:X  d   eg )Nzcmath.sqrt(x)zcmath.log(x)zcmath.sin(x)zcmath.cos(x)zcmath.tan(x)zcmath.asin(x)zcmath.acos(x)zcmath.atan(x)zcmath.sinh(x)zcmath.cosh(x)zcmath.tanh(x)zcmath.asinh(x)zcmath.acosh(x)zcmath.atanh(x))r7   rV   r   rW   r#   r$   r%   r&   r'   r   r(   r)   r*   r+   r,   r-   r.   rI   s    r[   test_CmathPrinterrj   V   s   A99T!W00099SV...99SV...99SV...99SV...99T!W00099T!W00099T!W00099T!W00099T!W00099T!W00099U1X"222299U1X"222299U1X"2222r]   c                     [        5       n U R                  [        [        5      5      S:X  d   eU R                  [	        SS5      5      S:X  d   eU R                  [
        R                  5      S:X  d   eU R                  [
        R                  5      S:X  d   eU R                  [
        R                  5      S:X  d   eU R                  [
        R                  5      S:X  d   eU R                  [
        R                  5      S	:X  d   eU R                  [
        R                  5      S
:X  d   eU R                  [
        R                  5      S:X  d   eU R                  [        [        5      5      S:X  d   eg )Nzmpmath.sign(x)rL   rK   zmpmath.mpf(1)/mpmath.mpf(2)zmpmath.ez	mpmath.piz
mpmath.phizmpmath.eulerz
mpmath.nanz
mpmath.infzmpmath.ninfzmpmath.loggamma(x))r6   rV   r   rW   r   r   Exp1PiGoldenRatio
EulerGammaNaNInfinityNegativeInfinityrH   ri   s    r[   test_MpmathPrinterrs   m   s   A99T!W!111199Xa^$(EEEE99QVV
***99QTT?k)))99Q]]#|33399Q\\"n44499QUU|+++99QZZ L00099Q''(M99999Xa[!%9999r]   c                     SSK Jn   SSKJn  SSKJnJnJn  SSKJ	n  SSK
Jn  SSKJn  SSKJnJn	  SS	KJn
Jn  [)        5       nUR+                  [-        [.        5      5      S
:X  d   e[1        SSS5      n[1        SSS5      n[1        SSS5      n[1        SSS5      nUR+                  US-  5      S:X  d   eUR+                  US-  5      S:X  d   eUR+                  [3        S5      5      S:X  d   e[1        SSS5      n[1        SSS5      nUR+                  [5        UU5      5      S:X  d   eUR+                  [5        UU5      U-   5      S:X  d   eUR+                  U	" SS5      5      S:X  d   eUR+                  U" SS5      5      S:X  d   eUR+                  U" SSU " X4X-   5      5      5      S:X  d   eUR+                  U" X5      5      S:X  d   eUR+                  U" X5      5      S :X  d   eUR+                  U" U5      5      S!:X  d   eUR+                  U" U5      5      S":X  d   eUR+                  U" U5      5      S#:X  d   eUR+                  U" U5      5      S$:X  d   eUR+                  [.        S-  5      S%:X  d   eUR+                  [.        S&-  5      S':X  d   e[7        SSS(S)9nUR+                  U5      S*:X  d   eUR+                  [8        R:                  5      S+:X  d   eUR+                  [8        R<                  5      S,:X  d   eUR+                  [8        R>                  5      S-:X  d   eUR+                  [8        R@                  5      S.:X  d   eUR+                  [8        RB                  5      S/:X  d   eUR+                  [8        RD                  5      S0:X  d   eUR+                  [G        [.        5      S-  5      S1:X  d   eg )2Nr   )Lambda)Adjoint)
DiagMatrixDiagonalMatrix
DiagonalOf)FunctionMatrix)HadamardProduct)KroneckerProduct)	OneMatrix
ZeroMatrix)abznumpy.sign(x)ArK   BCrL      DrP      znumpy.linalg.inv(A)znumpy.linalg.matrix_power(A, 5)znumpy.eye(3)rW   rX   znumpy.linalg.solve(A, x)znumpy.linalg.solve(A, x) + yznumpy.zeros((2, 3))znumpy.ones((2, 3))z.numpy.fromfunction(lambda a, b: a + b, (4, 5))znumpy.multiply(A, B)znumpy.kron(A, B)z#numpy.conjugate(numpy.transpose(A))z%numpy.reshape(numpy.diag(A), (-1, 1))znumpy.diagflat(C)z"numpy.multiply(D, numpy.eye(3, 4))z	x**(-1.0)z	x**(-2.0)FrQ   z	2**(-1.0)numpy.eznumpy.piznumpy.euler_gammaz	numpy.nanz	numpy.infz
-numpy.infz(numpy.cos(x)**(-1.0))**2)$sympy.core.functionru   "sympy.matrices.expressions.adjointrv   #sympy.matrices.expressions.diagonalrw   rx   ry   %sympy.matrices.expressions.funcmatrixrz   #sympy.matrices.expressions.hadamardr{   $sympy.matrices.expressions.kroneckerr|   "sympy.matrices.expressions.specialr}   r~   	sympy.abcr   r   r<   rV   r   rW   r3   r4   r	   r   r   rl   rm   ro   rp   rq   rr   r"   )ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   rI   r   r   r   r   uvexprs                       r[   test_NumPyPrinterr   |   se   *:\\DCEJA99T!W000S!QAS!QAS!QAS!QA99QW!666699QT?????99Xa[!^333S!QAS!QA99[A&'+EEEE99[A&*+/MMMM99Z1%&*????99Yq!_%)====99^Aq&!*?@A89 9 999_Q*+/EEEE99%a+,0BBBB99WQZ $IIII99Z]#'NNNN99Z]#'::::99^A&'+OOOO 99QU{***99QU{***q"u%D99T?k)))99QVV	)))99QTT?j(((99Q\\"&999999QUU{***99QZZ K///99Q''(L888 99SVQY#>>>>r]   c                     [        S5      n U (       d  [        S5        SSKJnJn  SSKJn  U" S[        -  S-   [        S-   S	[        -  S-   5      nU" [        US5      nU" U R                  SSS5      5      / S
Q:H  R                  5       (       d   eU" S5      S:X  d   eU" [        S-  [        S-  5      nU" [        US5      nU" U R                  SSS5      5      / SQ:H  R                  5       (       d   eU" S5      S:X  d   eg )Nnumpyznumpy not installed.r   )r   r   )lambdifyg?rP   rL   g      ?)g      ?g      ?g      @r   rK   r   )rL   r   rL      @   )
rG   r?   (sympy.functions.elementary.miscellaneousr   r   sympy.utilities.lambdifyr   rW   linspaceall)r   r   r   r   expr1funcs         r[   test_issue_18770r      s    '"E#$C1A	1q5#a%!),EAug&D1a()->>CCEEEEGqLL1adOEAeW%DAq)*l:@@BBBB7b==r]   c                  @   [        5       n [        [        5      nSU R                  ;  d   eU R	                  U5      S:X  d   eSU R                  ;   d   e[        S U R                   5       5      (       a   e[        SSSS05      nU R	                  U5      S:X  d   eS	U R                  ;   d   eU R	                  [        R                  5      S
:X  d   eU R	                  [        R                  5      S:X  d   eU R	                  [        R                  5      S:X  d   eg )Nr   znumpy.arccos(x)c              3   B   #    U  H  oR                  S 5      v   M     g7f)scipyN)
startswith).0ms     r[   	<genexpr>$test_SciPyPrinter.<locals>.<genexpr>   s     C2BQ<<((2Bs   rK   r   rS   rP   z8scipy.sparse.coo_matrix(([3], ([0], [1])), shape=(2, 5))zscipy.sparsezscipy.constants.golden_ratiozscipy.constants.pir   )r=   r   rW   rU   rV   anyr2   r   rn   rm   rl   )rI   r   smats      r[   test_SciPyPrinterr      s   A7D!*****99T?////a&&&&&C!2B2BCCCCC1vqk*D99T?BC C CQ-----99Q]]#'EEEE99QTT?222299QVV	)))r]   c                  z   ^^ [        S5      u  mm[        [        UU4S j5        [        TT-   5      n U S;   d   eg )Nzif elsec                     > [        T T-   SS9$ )NT)error_on_reserved)r9   )s1s2s   r[   rd   ,test_pycode_reserved_words.<locals>.<lambda>   s    vb2gFr]   )zelse_ + if_zif_ + else_)r   r>   rf   r9   )py_strr   r   s    @@r[   test_pycode_reserved_wordsr      s8    YFB
:FGBG_F3333r]   c                  t    [        S5      u  pnX-  n[        U5      S:X  d   eX!-  n[        U5      S:X  d   eg )Nza_{b} b a_{11}za_b*bza_11*b)r   r9   )a_br   a_11r   s       r[   test_issue_20762r      sC    +,LCD5D$<7"""6D$<8###r]   c                     [        5       n U R                  [        [        5      SS9S:X  d   eU R                  S[        [        5      -  SS9S:X  d   e[        SS05      n U R                  [        [        5      SS9S	:X  d   eU R                  S[        [        5      -  SS9S
:X  d   e[	        5       n U R                  [        [        5      SS9S:X  d   eU R                  [        [        5      SS9S:X  d   e[        5       n U R                  [        [        5      SS9S:X  d   eU R                  [        [        5      SS9S	:X  d   e[        5       n U R                  [        [        5      SS9S:X  d   eU R                  [        [        5      SS9S	:X  d   e[        5       n U R                  [        [        5      SS9S:X  d   eU R                  [        [        5      SS9S	:X  d   eg )NF)rationalrN   rL   z1/math.sqrt(x)ra   r_   Tzx**(1/2)z	x**(-1/2)zmpmath.sqrt(x)z x**(mpmath.mpf(1)/mpmath.mpf(2))znumpy.sqrt(x)zsympy.sqrt(x))r8   
_print_Powr   rW   r6   r<   r=   r:   rY   s    r[   	test_sqrtr      s   EDGe4FFFAd1gI6:JJJJzI67EDGd3zAAAAd1gI5DDDOEDGe48HHHHDGd3*+ + + NEDGe4GGGDGd3zAAANEDGe4GGGDGd3zAAANEDGe4GGGDGd3zAAAr]   c                  r   SSK Jn   U " [        5      n[        5       nUR	                  U5      S:X  d   e[        5       nUR	                  U5      S:X  d   e[        5       nUR	                  U5      S:X  d   e[        5       nUR	                  U5      S:X  d   e[        5       nUR	                  U5      S:X  d   eg )Nr   )fracznumpy.mod(x, 1)zx % 1zmpmath.frac(x)z+sympy.functions.elementary.integers.frac(x))	#sympy.functions.elementary.integersr   rW   r<   rV   r=   r8   r6   r:   )r   r   rZ   s      r[   	test_fracr      s    87DNE=="3333NE=="3333E==')))OE=="2222NE=="OOOOr]   c                        \ rS rSrS rS rSrg)CustomPrintedObjecti  c                     g)Nr   rc   selfprinters     r[   
_numpycodeCustomPrintedObject._numpycode  s    r]   c                     g)Nmpmathrc   r   s     r[   _mpmathcodeCustomPrintedObject._mpmathcode  s    r]   rc   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__rc   r]   r[   r   r     s    r]   r   c                      [        5       n [        5       R                  U 5      S:X  d   e[        5       R                  U 5      S:X  d   eg )Nr   r   )r   r<   rV   r6   )objs    r[   test_printmethodr     s@    

C>!!#&'111?""3'8333r]   c                  .    [        [        5      S:X  d   eg )NNone)r9   r   rc   r]   r[   test_codegen_ast_nodesr   "  s    $<6!!!r]   c                      [        5       n U R                  [        5      S:X  d   eU R                  [        * 5      S:X  d   eg )Nzmath.nanzfloat('-inf'))r8   rV   r   r   rY   s    r[   test_issue_14283r   &  s:    E==+++=="000r]   c                  X    [        5       n U R                  [        S5      5      S:X  d   eg )NrK   z(0, 1,))r<   
_print_seqrange)ns    r[   test_NumPyPrinter_print_seqr   -  s$    A<<a!Y...r]   c                     SSK Jn Jn  [        S5      nU " U[        5      nU" U[        5      n[        5       nUR                  U5      S:X  d   eUR                  U5      S:X  d   e[        5       n[        SS05      nX44 HC  n[        [        5         UR                  U5        S S S 5        SUR                  U5      ;   a  MC   e   g ! , (       d  f       N*= f)	Nr   )
lowergamma
uppergammar   z3scipy.special.gamma(a)*scipy.special.gammainc(a, x)z4scipy.special.gamma(a)*scipy.special.gammaincc(a, x)strictFNot supported)'sympy.functions.special.gamma_functionsr   r   r   rW   r=   rV   r<   r8   r>   NotImplementedError)	r   r   r   r   expr2rZ   p_numpyp_pycoder   s	            r[   test_issue_16535_16536r   3  s    PAq!Eq!ENE==#XXXX==#YYYYnG (E!23H'(OOE" )("2"24"8888 ((s   C
C	c                    ^^^ SSK Jn   SSKJn  U" U " [        * 5      [        S[
        45      nU" [        S-  U " [        [        -  5      -  [        [        * [        4[        S[        45      nU" [        S-  [        5      mU" [        S-  [        S45      m[        5       mTR                  U5      S:X  d   eTR                  U5      S:X  d   e[        [        UU4S j5        [        [        UU4S	 j5        [        5       mTR                  U5      S
:X  d   eTR                  U5      S:X  d   e[        [        UU4S j5        [        [        UU4S j5        g )Nr   )exp)IntegralrK   rL   z>scipy.integrate.quad(lambda x: numpy.exp(-x), 0, numpy.inf)[0]zMscipy.integrate.nquad(lambda x, y: x**2*numpy.exp(x*y), ((-z, z), (0, z)))[0]c                  &   > TR                  T 5      $ NrV   
indefiniterZ   s   r[   rd   test_Integral.<locals>.<lambda>S      j(Ar]   c                  &   > TR                  T 5      $ r   r   
evaluateatrZ   s   r[   rd   r   T  r   r]   z6mpmath.quad(lambda x: mpmath.exp(-x), (0, mpmath.inf))z?mpmath.quad(lambda x, y: x**2*mpmath.exp(x*y), (-z, z), (0, z))c                  &   > TR                  T 5      $ r   r   r   s   r[   rd   r   Y  r   r]   c                  &   > TR                  T 5      $ r   r   r   s   r[   rd   r   Z  r   r]   )&sympy.functions.elementary.exponentialr   sympy.integrals.integralsr   rW   r   rX   zr=   rV   r>   r   r6   )r   r   singledoubler   r   rZ   s       @@@r[   test_Integralr   G  s   :2c1"g1bz*Fad3qs8ma!QZ!Q;F!Q$"J!Q$A'JNE== $dddd== $ssss
 AB
 ABOE== $\\\\== $eeee
 AB
 ABr]   c                  J   SSK Jn Jn  U " [        5      nU" [        5      n[	        5       nUR                  U5      S:X  d   eUR                  U5      S:X  d   e[        5       n[        5       n[        5       nX#4 HU  n[        [        5         UR                  U5        S S S 5        [        [        5         UR                  U5        S S S 5        MW     UR                  U5      S:X  d   eUR                  U5      S:X  d   eg ! , (       d  f       Nj= f! , (       d  f       M  = f)Nr   )fresnelcfresnelszscipy.special.fresnel(x)[1]zscipy.special.fresnel(x)[0]zmpmath.fresnelc(x)zmpmath.fresnels(x))'sympy.functions.special.error_functionsr   r  rW   r=   rV   r<   r8   r6   r>   r   )	r   r  r   r   rZ   r   r   p_mpmathr   s	            r[   test_fresnel_integralsr  ]  s    LQKEQKENE==#@@@@==#@@@@nG "HH'(OOD! )'(T" )(  E"&::::E"&:::: )(((s   D5D
D	
D"	c                     SSK Jn   U " [        [        5      n[	        5       nUR                  U5      S:X  d   e[        5       nUR                  U5      S:X  d   e[        5       nUR                  U5      S:X  d   e[        SS05      nUR                  U5      S:X  d   e[        5       nUR                  U5      S:X  d   eg )Nr   )betazscipy.special.beta(x, y)z/(math.gamma(x)*math.gamma(y)/math.gamma(x + y))allow_unknown_functionsTzmpmath.beta(x, y))	&sympy.functions.special.beta_functionsr  rW   rX   r=   rV   r<   r8   r6   )r  r   rZ   s      r[   	test_betar	  t  s    ;1:DNE=="<<<<NE=="SSSSE=="SSSS8$?@E=="SSSSOE==#6666r]   c                     SSK Jn Jn  U " [        5      nU" [        5      n[	        5       nUR                  U5      S:X  d   eUR                  U5      S:X  d   e[        SS05      nSUR                  U5      ;   d   eSUR                  U5      ;   d   e[        SS05      nSUR                  U5      ;   d   eSUR                  U5      ;   d   eg )Nr   )airyaiairybizscipy.special.airy(x)[0]zscipy.special.airy(x)[2]r   Fr   )sympy.functions.special.besselr  r  rW   r=   rV   r<   r8   )r  r  r   r   rZ   s        r[   	test_airyr    s    ?1IE1IENE==#======#====(E*+EemmE2222emmE2222x/0EemmE2222emmE2222r]   c                     SSK Jn Jn  U " [        5      nU" [        5      n[	        5       nUR                  U5      S:X  d   eUR                  U5      S:X  d   e[        SS05      nSUR                  U5      ;   d   eSUR                  U5      ;   d   e[        SS05      nSUR                  U5      ;   d   eSUR                  U5      ;   d   eg )Nr   )airyaiprimeairybiprimezscipy.special.airy(x)[1]zscipy.special.airy(x)[3]r   Fr   )r  r  r  rW   r=   rV   r<   r8   )r  r  r   r   rZ   s        r[   test_airy_primer    s    INENENE==#======#====(E*+EemmE2222emmE2222x/0EemmE2222emmE2222r]   c                      [        5       n U R                  [        [        5      5      S:X  d   eU R                  [	        [        5      5      S:X  d   eU R                  [        [        5      5      S:X  d   eg )Nznumpy.expm1(x)znumpy.log1p(x)zscipy.special.cosm1(x))r=   rV   r   rW   r   r   rY   s    r[   !test_numerical_accuracy_functionsr    s]    NE==q"&6666==q"&6666==q"&>>>>r]   c            	         [        SS5      n [        S5      n[        SS5      [        SS5      [        SS	5      pCn[        5       nUR	                  [        S
5      5      S:X  d   eUR	                  [        S
5      5      S:X  d   eUR	                  [        U SS/5      5      S:X  d   eUR	                  U5      S:X  d   eUR	                  [        U / SQ5      5      S:X  d   eUR	                  [        U SS/SS/5      5      S:X  d   eUR	                  [        U S/S/5      5      S:X  d   eUR	                  [        XX44   XX44   5      5      S:X  d   e[        5       nUR	                  [        S
5      5      S:X  d   eUR	                  [        S
5      5      S:X  d   eUR	                  [        U SS/5      5      S:X  d   eUR	                  U5      S:X  d   eUR	                  [        U / SQ5      5      S:X  d   eUR	                  [        U SS/SS/5      5      S:X  d   eUR	                  [        U S/S/5      5      S:X  d   eUR	                  [        XX44   XX44   5      5      S:X  d   eg )Nr   )r   r   rO   rO   rO   IirS   jrT   k)r   r   r   znumpy.zeros((5,))znumpy.ones((5,))rK   rP   znumpy.einsum("abccd->abd", A))rK   rP   r   znumpy.einsum("abccc->abc", A)r   rL   znumpy.einsum("aabbc->cab", A)znumpy.einsum("abcde->abe", A)zI = Iztensorflow.zeros((5,))ztensorflow.ones((5,))z)tensorflow.linalg.einsum("abccd->abd", A)z)tensorflow.linalg.einsum("abccc->abc", A)z)tensorflow.linalg.einsum("aabbc->cab", A)z)tensorflow.linalg.einsum("abcde->abe", A))rB   r@   rA   r<   rV   rE   rF   rD   rC   r   r;   )r   r  r  r  r  rZ   s         r[   test_array_printerr    sZ   C%ACAUOSe_c#uoANE==1&*======!%);;;;==)!aU348WWWW==s"""==q'237VVVV==q1Q%!A78<[[[[==)!aS1#67;ZZZZ==AeHa!h78GCCCE==1&*BBBB==!%)@@@@==)!aU348cccc==s"""==q'237bbbb==q1Q%!A78<gggg==)!aS1#67;ffff==AeHa!h78GCCCr]   c                      " S S[         5      n U " 5       n[        [        5      R                  [        SS9nUR	                  U5      S:X  d   e[        [        [        5      R                  [        S[        SSS9nUR	                  U5      S:X  d   e UR	                  [        [        5      R                  [        SS95         e! [         a  nS	[        U5      ;   d   e S nAOS nAff = f UR	                  [        [        [        S-  5      [        5      5         e! [         a  nS
[        U5      ;   d   e S nAg S nAff = f)Nc                        \ rS rSrS rS rSrg)1test_custom_Derivative_methods.<locals>.MyPrinteri  c                 >    Uu  nUu  nSU R                  U5      U4-  $ )Nz#my_custom_cosm1(%s, deriv_order=%d)_print)r   args
seq_ordersargorders        r[   _print_Derivative_cosm1Itest_custom_Derivative_methods.<locals>.MyPrinter._print_Derivative_cosm1  s)    DCFE8DKK<Le;TTTr]   c                 ^    Uu  p4Uu  pVSU R                  U5      U R                  U5      XV4-  $ )Nz-my_custom_atan2(%s, %s, deriv1=%d, deriv2=%d)r  )r   r!  r"  arg1arg2ord1ord2s          r[   _print_Derivative_atan2Itest_custom_Derivative_methods.<locals>.MyPrinter._print_Derivative_atan2  s<    JD#JDBD!4;;t#4dF  r]   rc   N)r   r   r   r   r%  r,  r   rc   r]   r[   	MyPrinterr    s    	U
	r]   r.  FrQ   z!my_custom_cosm1(x, deriv_order=1)rK   rP   z)my_custom_atan2(x, y, deriv1=2, deriv2=3)_print_Derivative_expm1z_print_Derivative()r=   r   rW   diffrV   r/   rX   r   r5   reprr   rf   )r.  rI   cosm1_1	atan2_2_3es        r[   test_custom_Derivative_methodsr5    s   L  	AAhmmAm.G99W!DDDDa  Aq!e <I99Y#NNNN			%(--E-23 	u * 4(DG3334
			*U1a4[+, 	u  /#tAw.../s0   0C 
C+C&&C+//D   
E*E  EN)zsympyr   sympy.codegenr   sympy.codegen.astr   sympy.codegen.cfunctionsr   r   sympy.codegen.scipy_nodesr   sympy.codegen.matrix_nodesr	   
sympy.corer
   r   r   r   r   r   r   r   r   r   r   r   sympy.core.numbersr   sympy.core.singletonr   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.functions.elementary.trigonometricr/   sympy.logicr0   r1   sympy.matricesr2   r3   r4   sympy.printing.codeprinterr5   sympy.printing.pycoder6   r7   r8   r9   r:   sympy.printing.tensorflowr;   sympy.printing.numpyr<   r=   sympy.testing.pytestr>   r?   sympy.tensorr@   rA   0sympy.tensor.array.expressions.array_expressionsrB   rC   rD   rE   rF   sympy.externalrG   r   rH   rW   rX   r   rI   r\   rg   rj   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r5  rc   r]   r[   <module>rK     s-    $ " 1 + 2 M M M * ! " v  v  v  v  v  v  v :  ? ? E  8 ; - ) ~ ~ ( < '
1a*3ZJ3.:2?j&*"4$B6P($ 4"1/9(C,;.7(3$3&?D4 r]   