
    \h-                        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  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  S SKJr  S SKJr  S SKJrJrJr  S SK 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-J.r.  S SK/J0r0J1r1J2r2J3r3J4r4J5r5J6r6  S SK7J8r8  S SK9J:r:J;r;J<r<J=r=  S SK>J?r?J@r@JArAJBrBJCrCJDrD  S SKEJFrF  S SKGJHrHJIrI  S SKJJKrK  \K" S5      rL\K" S5      rM\L(       a6  \LR                  \LR                  / 5      R                  5      rQ\QR                  rSS rTS rUS rVS rWS  rXS! rYS" rZS# r[S$ r\S% r]S& r^S' r_S( r`S) raS* rbS+ rcS, rdS- reS. rfS/ rgS0 rhS1 riS2 rjS3 rkS4 rlS5 rmS6 rng7)8    )Sum)Mod)Equality
Unequality)Symbol)sqrt)	Piecewise)	polygamma)SiCi)Matrix)BlockMatrix)MatrixSymbol)Identity)lambdify)symbolsMinMax)xijabcd)Pow)MatrixSolve)	logaddexp
logaddexp2)log1pexpm1hypotlog10exp2log2Sqrt)Array)ArrayTensorProductArrayAddPermuteDimsArrayDiagonal)NumPyPrinterSciPyPrinter_numpy_known_constants_numpy_known_functions_scipy_known_constants_scipy_known_functions)convert_matrix_to_array)skipraises)import_modulenumpyjaxc                      [        5       n [        S[        S:  4S5      nU R                  U5      S:X  d   eU R                  S1 Sk0:X  d   eg)z
NumPyPrinter needs to print Piecewise()'s choicelist as a list to avoid
breaking compatibility with numpy 1.8. This is not necessary in numpy 1.9+.
See gh-9747 and gh-9749 for details.
   r   )r   Tz?numpy.select([numpy.less(x, 0),True], [1,0], default=numpy.nan)r6   >   nanlessselectN)r,   r	   r   doprintmodule_imports)printerps     W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/tests/test_numpy.pytest_numpy_piecewise_regressionrB   &   sZ     nG1a!e*i(A??1IJ J J!!g/H%IIII    c                      [        [        [        5      n [        5       R	                  U 5      S:X  d   e[        [        [        5      n[        5       R	                  U5      S:X  d   eg )Nznumpy.logaddexp(a, b)znumpy.logaddexp2(a, b))r   r   r   r,   r=   r   )laelae2s     rA   test_numpy_logaddexprG   2   sQ    
Aq/C>!!#&*AAAAaD>!!$'+CCCCrC   c                    ^ [         (       d  [        S5        [        [        [        -  [        [
        [        45      n [        [
        [        [        4U S5      nSu  p#[         R                  SSS5      m[         R                  U" X#T5      [        U4S j[        X#S-   5       5       5      5      (       d   e[        [        [        -  [        [
        [        45      n [        [
        [        [        4U S5      nSu  p#[         R                  SSS5      m[         R                  U" X#T5      [        U4S j[        X#S-   5       5       5      5      (       d   eg )	NNumPy not installedr6   r   
   r9   rK   c              3   .   >#    U  H
  nTU-  v   M     g 7fN .0i_x_s     rA   	<genexpr>test_sum.<locals>.<genexpr>B   s     )O=Nr"(=Ns   c              3   ,   >#    U  H	  oT-  v   M     g 7frN   rO   rP   s     rA   rT   rU   I   s     )N<Mbr'<Ms   )npr3   r   r   r   r   r   r   linspaceallclosesumrange)sfa_b_rS   s       @rA   test_sumr`   9   s    2"#AFQ1IA!QAw'AFB	RR	 B;;q}c)OU2Av=N)O&OPPPPAEAq!9A!QAw'AFB	RR	 B;;q}c)NE"1f<M)N&NOOOOrC   c                    ^^^ [         (       d  [        S5        [        [        [        -   [
        -  [
        [        [        4[        [        [        45      n [        [        [        [        [        [        4U S5      nSu  p#Su  mm[         R                  SSS5      m[         R                  U" X#TTT5      [        UUU4S j[        X#S-   5       5       5      5      (       d   eg )	NrI   r6   rJ   )      rL   r9   rK   c              3   b   >#    U  H$  n[        TTS -   5        H  nTU-   U-  v   M     M&     g7f)r9   N)r[   )rQ   rR   j_c_d_rS   s      rA   rT   %test_multiple_sums.<locals>.<genexpr>W   s4     b4EbPUVXZ\_`Z`Pa"BGr>Pa>4Es   ,/)rW   r3   r   r   r   r   r   r   r   r   r   rX   rY   rZ   r[   )r\   r]   r^   r_   rf   rg   rS   s       @@@rA   test_multiple_sumsri   L   s    2"#QUaK!QQ1I.A!Q1a!W-AFBFB	RR	 B;;qR,bE"1f4Ebbd d d drC   c                  l   [         (       d  [        S5        [        SSS5      n [        SSS5      n[        X-  5      n[	        X4US5      n[         R                  SS/SS//5      n[         R                  SS	/S
S//5      nU" XE5      [         R                  XE5      :H  R                  5       (       d   eg )NrI   M   Nr6   r9         rL   )rW   r3   r   r2   r   arraymatmulall)rk   rm   cgr]   mambs         rA   test_codegen_einsumrw   Z   s    2"#S!QAS!QA	 	'B!W%A	Aq6Aq6"	#B	Ab6B7#	$BbI2**//1111rC   c            
         [         (       d  [        S5        [        SSS5      n [        SSS5      n[        SSS5      n[        SSS5      n[         R                  SS/SS	//5      n[         R                  SS
/SS//5      n[         R                  SS/SS//5      n[         R                  SS/S	S//5      n[	        X5      n[        X4US5      n	U	" XE5      [         R                  USS/USS/5      :H  R                  5       (       d   e[        X5      n[        X4US5      n	U	" XE5      XE-   :H  R                  5       (       d   e[        XU5      n[        XU4US5      n	U	" XEU5      XE-   U-   :H  R                  5       (       d   e[        XX#5      n[        XX#4US5      n	U	" XEXg5      XE-   U-   U-   :H  R                  5       (       d   e[        U SS/5      n[        U 4US5      n	U	" U5      UR                  :H  R                  5       (       d   e[        [	        X5      / SQ5      n[        X4US5      n	U	" XE5      [         R                  [         R                  USS/USS/5      S5      :H  R                  5       (       d   e[        [	        X5      S5      n[        X4US5      n	U	" XE5      [         R                  [         R                  USS/USS/5      SSS9:H  R                  5       (       d   eg )NrI   rk   rl   rm   PQr9   rn   ro   rp   rL   r      r6   )r9   rl   rn   r   )r9   rl   )axis1axis2)rW   r3   r   rq   r(   r   einsumrs   r)   r*   T	transposer+   diagonal)
rk   rm   ry   rz   ru   rv   mcmdrt   r]   s
             rA   test_codegen_extrar   i   s   2"#S!QAS!QAS!QAS!QA	Aq6Aq6"	#B	Ab6B7#	$B	Aq6Aq6"	#B	Ab6Aq6"	#B	A	!B!W%AbI21vrAq6::??AAAA	!B!W%AbI##%%%%	!	B!B(AbbMRU2X%**,,,,	!	B!r7+Abbr",113333	QA	B!r7#AbERTTM    	'-|	<B!W%AbIbiiQFBA&GVV[[]]]]	)!/	8B!W%AbIRYYrAq621v%FaWXYY^^````rC   c                  T   [         (       d  [        S5        [        [        S5      n [	        [        4U 5      n[         R                  / SQ5      n[         R                  U" U5      / SQ5      (       d   e[        [        S5      n [	        [        4U 5      n[         R                  / SQ5      n[         R                  U" U5      / SQ5      (       d   e[        S:  n [	        [        4U 5      n[         R                  / SQ5      n[         R                  U" U5      / SQ5      (       d   e[        S:*  n [	        [        4U 5      n[         R                  / SQ5      n[         R                  U" U5      / SQ5      (       d   e[        S:  n [	        [        4U 5      n[         R                  / SQ5      n[         R                  U" U5      / SQ5      (       d   e[        S:  n [	        [        4U 5      n[         R                  / SQ5      n[         R                  U" U5      / S	Q5      (       d   eg )
NrI   r9   )r   r9   rl   )FTF)TFT)TFF)TTF)FFT)FTT)rW   r3   r   r   r   rq   array_equalr   )er]   rS   s      rA   test_relationalr      s   2"#AA!qA	)	B>>!B%!566661aA!qA	)	B>>!B%!45555	
QA!qA	)	B>>!B%!56666	
aA!qA	)	B>>!B%!45555	
QA!qA	)	B>>!B%!56666	
aA!qA	)	B>>!B%!45555rC   c                  L   [         (       d  [        S5        [        [        [        5      n [        [        [        4U 5      n[         R                  / SQ5      nSn[         R                  U" X#5      / SQ5      (       d   e[         R                  / SQ5      n[         R                  / SQ5      n[         R                  U" X#5      / SQ5      (       d   e[         R                  / SQ5      n[         R                  / SQ5      n[         R                  U" X#5      / SQ5      (       d   eg )NrI   )r   r9   rl   rn   rl   )r   r9   r   r9   )rl   rl   rl   rl   )rl   rn   ro      )r   r   r   r   )rW   r3   r   r   r   r   rq   r   )r   r]   r^   r_   s       rA   test_modr      s    2"#Aq	A!QA	,	B	
B>>!B)\2222	,	B	,	B>>!B)\2222	,	B	,	B>>!B)\2222rC   c                  z    [         (       d  [        S5        [        SSSS9n [        / U S5      nU" 5       S:X  d   eg )NrI   rl   rL   F)evaluater6   g      ?)rW   r3   r   r   )exprr]   s     rA   test_powr      s:    2"#q"u%DT7#A3#::rC   c                      [         (       d  [        S5        [        [        4[	        [        5      S5      n [        U " S5      S-
  S-
  5      S[        -  ::  d   eg )NrI   r6   g|=g#B;)rW   r3   r   r   r!   absNUMPY_DEFAULT_EPSILONr]   s    rA   
test_expm1r      sK    2"#!uQx)Aqx%%'(E4I,IIIIrC   c                      [         (       d  [        S5        [        [        4[	        [        5      S5      n [        U " S5      S-
  5      S[        -  ::  d   eg )NrI   r6   g>N}a+)rW   r3   r   r   r    r   r   r   s    rA   
test_log1pr      sF    2"#!uQx)Aqx% E,A$AAAArC   c            	          [         (       d  [        S5        [        [        [        [
        4[        [        [
        5      S5      " SS5      S-
  5      [        ::  d   eg )NrI   r6   rn   ro   r   )rW   r3   r   r   r   r   r"   r   rO   rC   rA   
test_hypotr      sC    2"#xAaW5a;a?@DYYYYrC   c                      [         (       d  [        S5        [        [        [        4[        [        5      S5      " S5      S-
  5      [        ::  d   eg )NrI   r6   d   rl   )rW   r3   r   r   r   r#   r   rO   rC   rA   
test_log10r      s=    2"#xeAh059:>SSSSrC   c                      [         (       d  [        S5        [        [        [        4[        [        5      S5      " S5      S-
  5      [        ::  d   eg )NrI   r6   r       )rW   r3   r   r   r   r$   r   rO   rC   rA   	test_exp2r      s=    2"#xd1gw/2R78<QQQQrC   c                      [         (       d  [        S5        [        [        [        4[        [        5      S5      " S5      S-
  5      [        ::  d   eg )NrI   r6         )rW   r3   r   r   r   r%   r   rO   rC   rA   	test_log2r      s=    2"#xd1gw/4q89=RRRRrC   c                      [         (       d  [        S5        [        [        [        4[        [        5      S5      " S5      S-
  5      [        ::  d   eg NrI   r6   ro   rl   )rW   r3   r   r   r   r&   r   rO   rC   rA   	test_Sqrtr      =    2"#xd1gw/2Q67;PPPPrC   c                      [         (       d  [        S5        [        [        [        4[        [        5      S5      " S5      S-
  5      [        ::  d   eg r   )rW   r3   r   r   r   r   r   rO   rC   rA   	test_sqrtr     r   rC   c                     [         (       d  [        S5        [        SSS5      n [        SSS5      nU S-  U-  U-   n[        X5      U-   n[	        X4U5      n[	        X4U5      n[         R                  / SQ/ SQ/ S	Q/5      n[         R                  R                  U5      S:X  d   e[         R                  / S
Q5      n[         R                  U" Xg5      U" Xg5      5      (       d   eg )NrI   rk   rn   r   r9   rL   r9   rl   rn   )rn   rl   r   )r      r{   )rn   ro   r   )	rW   r3   r   r   r   rq   linalgmatrix_rankrY   )rk   r   r   matsolve_exprr]   
f_matsolvem0x0s           rA   test_matsolver     s    2"#S!QAS!QAr7Q;?D%)M!A1&-0J	9i3	4B99  $)))	)	B;;z")1R95555rC   c                     [         (       d  [        S5        [        SSS5      n [        SSS5      n[        SSS5      n[        SSS5      n[        X/X#//5      nUR                  S:X  d   e[        5       nUR                  U5      S	:X  d   eg )
NrI   a_1rK   rn   a_2a_3a_4)   r   z%numpy.block([[a_1, a_2], [a_3, a_4]]))rW   r3   r   r   shaper,   r=   )r   r   r   r   Ar?   s         rA   
test_16857r      s    2"#
ub!
$C
ub!
$C
ub!
$C
ub!
$CcZ#,-A77gnG??1!HHHHrC   c                    ^^ [         (       d  [        S5        [        SSS5      n [        X [	        S5      -   5      n[         R                  SS/SS//5      n[         R                  SS/SS//5      nU" U5      U:H  R                  5       (       d   eSS	KJn  U" S
SS9m[        STT5      m[        [        UU4S j5        g )NrI   rk   rl   r9   rn   ro   r   r   )r   nT)integerc                  4   > [        T T [        T5      -   5      $ rN   )r   r   )rm   r   s   rA   <lambda>"test_issue_17006.<locals>.<lambda>>  s    AO(DrC   )rW   r3   r   r   r   rq   rs   sympy.core.symbolr   r4   NotImplementedError)rk   r]   ru   mrr   rm   r   s        @@rA   test_issue_17006r   /  s    2"#S!QAO$A	Aq6Aq6"	#B	Aq6Aq6"	#BbERK)T"AS!QA
 DErC   c                     [         (       d  [        S5        [        S5      u  pn[        XU5      [	        XU5      -   n[        XU4US5      nSu  pV[         R                  R                  U5      [         R                  R                  U5      p[        R                  U" U6 U" U6 5      (       d   e[        R                  U" U6 U" U6 5      (       d   eg )NzJax not installedzx y zr7   )r   )ro   r   r   )
r7   r3   r   r   r   r   r6   asarrayrW   rY   )	r   yzr   funcinput_tuple1input_tuple2input_array1input_array2s	            rA   test_jax_tuple_compatibilityr   @  s    3 !gGA!qQ<#aA,&DQ1ItU+D!5L!$!2!2<!@#))BSBST`Ba,;;t\*D,,?@@@@;;t\*D,,?@@@@rC   c                  <   [        5       n U R                  [        SS/SS//5      5      S:X  d   eU R                  [        SS/5      5      S:X  d   eU R                  [        / SQ//5      5      S:X  d   eU R                  [        / S	5      5      S
:X  d   eU R                  [        / S5      5      S:X  d   eU R                  [        / S5      5      S:X  d   eU R                  [        / S5      5      S:X  d   eU R                  [        S/S5      5      S:X  d   eg )Nr9   rl   rn   r   numpy.array([[1, 2], [3, 5]])znumpy.array([1, 2])r   znumpy.array([[[1, 2, 3]]]))r   znumpy.zeros((0,)))r   r   numpy.zeros((0, 0)))r   r9   numpy.zeros((0, 1)))r9   r   numpy.zeros((1, 0))rO   znumpy.array(1))r,   r=   r'   r@   s    rA   test_numpy_arrayr   L  s   A99UQFQF+,-1PPPP99UAq6]#'<<<<99UYK=)*.JJJJ99U2t_%)<<<<99U2v&'+@@@@99U2v&'+@@@@99U2v&'+@@@@99UA3^$(8888rC   c                  t   [        5       n U R                  [        SS/SS//5      5      S:X  d   eU R                  [        SS/5      5      S:X  d   eU R                  [        SS/ 5      5      S:X  d   eU R                  [        SS/ 5      5      S	:X  d   eU R                  [        SS/ 5      5      S
:X  d   eg )Nr9   rl   rn   r   r   znumpy.array([[1], [2]])r   r   r   r   )r,   r=   r   r   s    rA   test_numpy_matrixr   W  s    A99VaVaV,-.2QQQQ99VQF^$(AAAA99VAq"%&*????99VAq"%&*????99VAq"%&*????rC   c                  |    [         S   S:X  d   e[         S   S:X  d   e[        S   S:X  d   e[        S   S:X  d   eg )	NNaNz	numpy.nan
EulerGammaznumpy.euler_gammaacosznumpy.arccoslogz	numpy.log)r.   r/   rO   rC   rA   test_numpy_known_funcs_constsr   _  sO    !%(K777!,/3FFFF!&)^;;;!%(K777rC   c                  |    [         S   S:X  d   e[         S   S:X  d   e[        S   S:X  d   e[        S   S:X  d   eg )	NGoldenRatiozscipy.constants.golden_ratioPizscipy.constants.pierfzscipy.special.erf	factorialzscipy.special.factorial)r0   r1   rO   rC   rA   test_scipy_known_funcs_constsr   f  sR    !-04RRRR!$'+????!%(,????!+.2KKKKrC   c                  d    [        5       n [        U S5      (       d   e[        U S5      (       d   eg )N_print_acos
_print_log)r,   hasattr)prntrs    rA   test_numpy_print_methodsr   m  s/    NE5-((((5,''''rC   c                     [        5       n [        U S5      (       d   e[        U S5      (       d   e[        U S5      (       d   e[        U S5      (       d   e[        U S5      (       d   e[        SSSS9n[        S	SS
9nU R                  [	        X5      5      S:X  d   eU R                  [        U5      5      S:X  d   eU R                  [        U5      5      S:X  d   eg )Nr   r   
_print_erf_print_factorial_print_chebyshevtkT)r   nonnegativer   )realzscipy.special.polygamma(k, x)zscipy.special.sici(x)[0]zscipy.special.sici(x)[1])r-   r   r   r=   r
   r   r   )r   r   r   s      rA   test_scipy_print_methodsr   r  s    NE5-((((5,''''5,''''5,----5-....sDd3AsA==1)-LLLL==A#======A#====rC   N)osympy.concrete.summationsr   sympy.core.modr   sympy.core.relationalr   r   r   r   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser	   'sympy.functions.special.gamma_functionsr
   'sympy.functions.special.error_functionsr   r   sympy.matricesr   &sympy.matrices.expressions.blockmatrixr   "sympy.matrices.expressions.matexprr   "sympy.matrices.expressions.specialr   sympy.utilities.lambdifyr   sympyr   r   r   	sympy.abcr   r   r   r   r   r   r   
sympy.corer   sympy.codegen.matrix_nodesr   sympy.codegen.numpy_nodesr   r   sympy.codegen.cfunctionsr    r!   r"   r#   r$   r%   r&   sympy.tensor.arrayr'   0sympy.tensor.array.expressions.array_expressionsr(   r)   r*   r+   sympy.printing.numpyr,   r-   r.   r/   r0   r1   3sympy.tensor.array.expressions.from_matrix_to_arrayr2   sympy.testing.pytestr3   r4   sympy.externalr5   rW   r7   finforq   dtypedeafult_float_infoepsr   rB   rG   r`   ri   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rO   rC   rA   <module>r     sJ   )  8 $ 9 : = < ! > ; 7 - # # ) ) )  2 ; Q Q Q $ K K W - (7E"((2,"4"45.22
JDP&d2'aT&6R3(JBZ
TRSQQ6*IF"
A	9@8L(
>rC   