
    sg#                     6   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZmZ  ed      \  ZZZ ed      \  ZZZ  ed      \  Z!Z"Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z, G d de      Z-d Z.y)    )Sum)Expr)symbols)sqrt)	Piecewise)sin)MutableDenseMatrix)Interval)lambdify)raises)TensorflowPrinter)
lambdareprLambdaPrinterNumExprPrinterzx,y,zzi,a,bzj,c,dc                      t        t        t        z        dk(  sJ t        t        t        z         dv sJ t        t        t        z        dk(  sJ y )Nzx*y)zy + xzx + yzx**y)r   xy     W/var/www/html/venv/lib/python3.12/site-packages/sympy/printing/tests/test_lambdarepr.py
test_basicr      sG    ac?e###a!e 2222adv%%%r   c                  |    t         dz  } t        |       t        |       k7  sJ t        t        | g            dk(  sJ y )N   zImmutableDenseMatrix([[x % 2]]))r   r   strMatrix)es    r   test_matrixr      s=     	
AAa=CF"""faSk"&GGGGr   c            
          d} t        t        t        dk  f      }t        |      }t        | |z          |dk(  sJ t        dt        dk  fdt        dk  fd      }t        |      }t        | |z          |dk(  sJ t        dt        dk  fdt        dk  f      }t        |      }t        | |z          |dk(  sJ t        t        t        dk  ft        dz  t	        d	d
dd      j                  t              fd      }t        |      }t        | |z          |dk(  sJ t        t        dz  t        dk  ft        t        dk  fdt        z
  t        dk\  fdd      }t        |      }t        | |z          |dk(  sJ t        t        dz  t        dk  ft        t        dk  fdt        z
  t        dk\  fd      }t        |      }t        | |z          |dk(  sJ t        dt        dk\  fdt        dk\  fd	t        d	k\  fd
t        d
k\  fdt        dk\  fd      }t        |      }t        | |z          |dk(  sJ t        dt        dk  fdt        dk  fd	t        d	k  fd
t        d
k  fdt        dk  fd      }t        |      }t        | |z          |dk(  sJ t        dt        dkD  fdt        dkD  fd	t        d	kD  fd
t        d
kD  fdt        dkD  fd      }t        |      }t        | |z          |dk(  sJ t        dt        dk  fdt        dk  fd	t        d	k  fd
t        d
k  fdt        dk  fd      }t        |      }t        | |z          |dk(  sJ t        t        dt        dkD  fd      t        dkD  fd      }t        |      }t        | |z          |dk(  sJ y )Nz
lambda x: r   z((x) if (x < 0) else None)   r   )r   Tz-((1) if (x < 1) else (2) if (x < 2) else (0))z.((1) if (x < 1) else (2) if (x < 2) else None)      TFzC((x) if (x < 1) else (x**2) if (((x <= 4)) and ((x > 3))) else (0))evaluatezI((x**2) if (x < 0) else (x) if (x < 1) else (2 - x) if (x >= 1) else (0))zJ((x**2) if (x < 0) else (x) if (x < 1) else (2 - x) if (x >= 1) else None)   )   Tzn((1) if (x >= 1) else (2) if (x >= 2) else (3) if (x >= 3) else (4) if (x >= 4) else (5) if (x >= 5) else (6))zn((1) if (x <= 1) else (2) if (x <= 2) else (3) if (x <= 3) else (4) if (x <= 4) else (5) if (x <= 5) else (6))zi((1) if (x > 1) else (2) if (x > 2) else (3) if (x > 3) else (4) if (x > 4) else (5) if (x > 5) else (6))zi((1) if (x < 1) else (2) if (x < 2) else (3) if (x < 3) else (4) if (x < 4) else (5) if (x < 5) else (6)))r   T)r    Tz1((((1) if (x > 0) else (2))) if (y > 0) else (3)))r   r   r   evalr
   containsr   )hpls      r   test_piecewiser+   #   s-    	A1a!e*A1AQK,,,,	
AE
	
AE
	A
 	1AQK????	
AE
	
AE
	A 	1AQK@@@@	
AE
	
Ax1dE*33A67	A
 	1AQKUUUU	
Aq1u	
AE
	
QQE		A 	1AQK F F F F 		
Aq1u	
AE
	
QQ%	A
 	1AQK ; ; ; ; 		
AF	
AF	
AF	
AF	
AF	A 	1AQK O O O O 		
AF	
AF	
AF	
AF	
AF	A 	1AQK S S S S 		
AE
	
AE
	
AE
	
AE
	
AE
	A 	1AQK Q Q Q Q 		
AE
	
AE
	
AE
	
AE
	
AE
	A 	1AQK Q Q Q Q 		AJ

 q5	 		A 	1AQKCCCCr   c                     t        t        t        z  t        t        t        f      } t        |       }|dk(  sJ t        t        t        f}t        ||       }d} || | j                  t        ||            j                         k(  sJ y )Nz+(builtins.sum(x**i for i in range(a, b+1)))r   r       )
r   r   iabr   r   subszipdoitsr*   argsfvs        r   test_sum__1r:      sx     	AFQ1IA1A====a7DqAAa5AFF3tQ<(--////r   c                     t        t        t        z  t        t        t        f      } t        |       }|dk(  sJ t        t        t        f}t        ||       }d} || | j                  t        ||            j                         k(  sJ y )Nz*(builtins.sum(i*x for i in range(a, b+1)))r-   )
r   r/   r   r0   r1   r   r   r2   r3   r4   r5   s        r   test_sum__2r<      sv    AEAq!9A1A<<<<a7DqAAa5AFF3tQ<(--////r   c                  ^   t        t        t        z  t        z   t        t        t
        ft        t        t        f      } t        |       }|dk(  sJ t        t        t
        t        t        f}t        ||       }d}| j                  t        ||            j                         } || }||k(  sJ y )NzE(builtins.sum(i*x + j for i in range(a, b+1) for j in range(c, d+1))))r   r    r!   r$   r%   )r   r/   r   jr0   r1   cdr   r   r2   r3   r4   )r6   r*   r7   r8   valsf_reff_ress          r   test_multiple_sumsrD      s    AEAI1ay1a),A1AWWWWaAq=DqADFF3tT?#((*EtHEE>>r   c                      t        ddi      } | j                  t        t              d      dk(  sJ | j                  t        t              d      dk(  sJ y )Nstandardpython3F)rationalzsqrt(x)Tzx**(1/2))r   
_print_Powr   r   )prntrs    r   	test_sqrtrK      sU    :	23EDGe4	AAADGd3zAAAr   c                  &    t        t        d        y )Nc                  6    t        t        t              d      S )Ngarbage)method)r   r   r   r   r   r   <lambda>ztest_settings.<locals>.<lambda>   s    jQ	B r   )r   	TypeErrorr   r   r   test_settingsrR      s    
9BCr   c            
      2   ddl m}   | t        dkD  ddd      }t               j	                  |      dk(  sJ ddlm}m}m}m	}  |d d |t              g |t        t               |t        d	z        g      }d
}t               j	                  |      |k(  sJ y )Nr   )ITETFr"   z=numexpr.evaluate('where((x > 0), True, False)', truediv=True))ReturnFunctionDefinitionVariable
Assignmentfoor   zidef foo(x):
    y = numexpr.evaluate('x', truediv=True)
    return numexpr.evaluate('y**2', truediv=True))sympy.logic.boolalgrT   r   r   doprintsympy.codegen.astrU   rV   rW   rX   r   )rT   exprrU   rV   rW   rX   func_defexpecteds           r   test_numexprr`      s    'q1udEE2D##D)JK K K SR!$}z!APVWXZ[W[P\>]^HCH ##H-999r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)CustomPrintedObjectc                      y)Nlambdar   selfprinters     r   _lambdacodezCustomPrintedObject._lambdacode       r   c                      y)N
tensorflowr   re   s     r   _tensorflowcodez#CustomPrintedObject._tensorflowcode   s    r   c                      y)Nnumpyr   re   s     r   
_numpycodezCustomPrintedObject._numpycode   s    r   c                      y)Nnumexprr   re   s     r   _numexprcodez CustomPrintedObject._numexprcode   s    r   c                      y)Nmpmathr   re   s     r   _mpmathcodezCustomPrintedObject._mpmathcode   ri   r   N)__name__
__module____qualname__rh   rl   ro   rr   ru   r   r   r   rb   rb      s    r   rb   c                  P   t               } t               j                  |       dk(  sJ t               j                  |       dk(  sJ t	               j                  |       dk(  sJ t	               j                  t        t        t        dk\  ft        t        dk  f            dk(  sJ y )Nrd   rk   z)numexpr.evaluate('numexpr', truediv=True)r   z7numexpr.evaluate('where((x >= 0), y, z)', truediv=True))	rb   r   r[   r   r   r   r   r   z)objs    r   test_printmethodr|      s     
C?""3'8333&&s+|;;;##C(,WWWW##Iq!q&kAq1u:$FGEF F Fr   N)/sympy.concrete.summationsr   sympy.core.exprr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   sympy.matrices.denser	   r   sympy.sets.setsr
   sympy.utilities.lambdifyr   sympy.testing.pytestr   sympy.printing.tensorflowr   sympy.printing.lambdareprr   r   r   r   r   rz   r/   r0   r1   r>   r?   r@   r   r   r+   r:   r<   rD   rK   rR   r`   rb   r|   r   r   r   <module>r      s    )   % 9 : 8 = $ - ' 7 O O '
1a
'
1a
'
1a&HwDt
00BD:$ "
Fr   