
    L|%iG                         d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ  G d dej>                        Z y)    N)ExprOpArithOpLanguage	as_symbol	as_number	as_stringas_array
as_complexas_terms
as_factorseliminate_quotesinsert_quotes
fromstringas_expras_applyas_numer_denom
as_ternaryas_refas_deref	normalizeas_eqas_neas_ltas_gtas_leas_ge   )utilc                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestSymbolicc                     d }dD ]S  } ||dz           ||dz   |z   dz           ||dz           ||dz   |z   dz           ||dz           |d	|z   d
z          U y )Nc                 F    t        |       \  }}t        ||      }|| k(  sJ y N)r   r   )srds1s       `/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/site-packages/numpy/f2py/tests/test_symbolic.pyworkerz2TestSymbolic.test_eliminate_quotes.<locals>.worker%   s'    #A&DAqq!$B7N7    ) mykind_z"1234" // "ABCD"z
"1234" // z"ABCD"z"1234" // 'ABCD'z'ABCD'z"1\"2'AB'34"za = z'1\'2"AB"34' )selfr*   kinds      r)   test_eliminate_quotesz"TestSymbolic.test_eliminate_quotes$   s    	
 $ 	6D4,,-4,&-894../4,&-894++,6D=#445	6r+   c                 X   t        d      }t        d      }t        d      }|j                  t        j                  k(  sJ t	        |      dk(  sJ ||k(  sJ ||k7  sJ t        |      J t        d      }t        d      }|j                  t        j                  k(  sJ t	        |      dk(  sJ ||k(  sJ ||k7  sJ t        |      J t        d      }t        d	      }|j                  t        j                  k(  sJ t	        |      d
k(  sJ ||k(  sJ ||k7  sJ t        |      J t        dd      }t        dd      }	|j                  t        j                  k(  sJ t	        |      dk(  sJ ||k(  sJ ||	k7  sJ t        |      J t        d      }
t        d      }|
j                  t        j                  k(  sJ t	        |
      dk(  sJ t	        |
             |
|
k(  sJ |
|k7  sJ t        ||f      }t        |f      }|j                  t        j                  k(  sJ t	        |      dk(  sJ ||k(  sJ ||k7  sJ t        |      }t        |      }|j                  t        j                   k(  sJ t	        |      dk(  sJ ||k(  sJ ||k7  sJ t        |      J t#        |      }t#        |      }|j                  t        j$                  k(  sJ t	        |      dk(  sJ ||k(  sJ ||k7  sJ t        |      J t'        |||      }t'        |||      }|j                  t        j(                  k(  sJ ||k(  sJ ||k7  sJ t        |      J t+        ||      }t-        ||      }|j                  t        j.                  k(  sJ ||k(  sJ ||k7  sJ t        |      J y )NxyzzExpr(Op.SYMBOL, 'x'){     zExpr(Op.INTEGER, (123, 4))g(@gF@zExpr(Op.REAL, (12.3, 4))r            zFExpr(Op.COMPLEX, (Expr(Op.INTEGER, (1, 4)), Expr(Op.INTEGER, (2, 4))))z'123'"ABC"zExpr(Op.STRING, ("'123'", 1))zHExpr(Op.ARRAY, (Expr(Op.INTEGER, (123, 4)), Expr(Op.INTEGER, (456, 4))))z)Expr(Op.TERMS, {Expr(Op.SYMBOL, 'x'): 1})z+Expr(Op.FACTORS, {Expr(Op.SYMBOL, 'x'): 1}))r   opr   SYMBOLreprhashr   INTEGERREALr   COMPLEXr	   STRINGr
   ARRAYr   TERMSr   FACTORSr   TERNARYr   r   
RELATIONAL)r/   r3   r4   r5   nmfnfmcc2r%   s2abtuvwefs                       r)   test_sanityzTestSymbolic.test_sanity2   sN   cNcNcNttryy  Aw000AvAvAw""cNcNttrzz!!Aw666AvAvAw""t_t_uuBx555RxRxBx##q!1ttrzz!!Aw 9 : 	:AvBwAw""gwttryy  Aw;;DT!WDAvBwaVaUOttrxxAw ; < 	<AvAvQKQKttrxxAwEEEAvAvAw""qMqMttrzz!!AwGGGAvAvAw""q!Qq!Qttrzz!!AvAvAw""!QK!QKttr}}$$AvAvAw"""r+   c                 V
   t        d      }t        d      }t        d      }t        d      }t        d      }t        ||f      }t        ||      }t	        |      dk(  sJ t	        |      dk(  sJ t	        |      dk(  sJ t	        |      dk(  sJ t	        t        t        j                  |d	i            dk(  sJ t	        t        t        j                  |d
i            dk(  sJ t	        t        t        j                  |di            dk(  sJ t	        t        t        j                  |di            dk(  sJ t	        t        t        j                  |d	|d	i            dk(  sJ t	        t        t        j                  |d|di            dk(  sJ t	        t        t        j                  |d
|di            dk(  sJ t	        t        t        j                  |d|di            dk(  sJ t	        t        t        j                  |d
|di            dk(  sJ t	        t        t        j                  |d	i            dk(  sJ t	        t        t        j                  |d
i            dk(  sJ t	        t        t        j                  |di            dk(  sJ t	        t        t        j                  |di            dk(  sJ t	        t        t        j                  |d	|d	i            dk(  sJ t	        t        t        j                  |d
|di            dk(  sJ t        t        j                  |d
t        t        j                  |d	|d	i      di      }t	        |      dk(  sJ t	        |             t        t        j                  |d
t        t        j                  |d	|d	i      di      }t	        |      dk(  sJ t	        |             t	        t        t        j                  ddi f            d k(  sJ t	        t        t        j                  d|fi f            d!k(  sJ t	        t        t        j                  d||fi f            d"k(  sJ t	        t        t        j                  d|f            d#k(  sJ t	        t        |||            d$k(  sJ t	        t        ||            d%k(  sJ t	        t        ||            d&k(  sJ t	        t        ||            d'k(  sJ t	        t        ||            d(k(  sJ t	        t!        ||            d)k(  sJ t	        t#        ||            d*k(  sJ y )+Nr3   r4   r5   r6   r7   123z
[123, 456]z
(123, 456)r   r8   z2 * xz-xz-2 * xx + yz-x - yr9   z2 * x + 3 * yz-2 * x + 3 * yz2 * x - 3 * yx ** 2zx ** -1zx ** -2x * yzx ** 2 * y ** 3zx ** 2 * (x + y) ** 3zx ** 2 * (x * y) ** 3rW   r.   zf()f(x)zf(x, y)f[x]zmerge(y, z, x)x .eq. yx .ne. yx .lt. yx .le. yx .gt. yx .ge. y)r   r   r
   r   strr   r   rE   rF   APPLYINDEXINGr   r   r   r   r   r   r   )	r/   r3   r4   r5   rI   rJ   rP   rM   rT   s	            r)   test_tostring_fortranz"TestSymbolic.test_tostring_fortran   s'   cNcNcNcNcNaVq!1v}1v1v%%1v%%41a&)*c1141a&)*g5541b'*+t3341b'*+x7741aA,/0G;;41b!R.12h>>41aA,/0OCC41b!Q-015EEE41aB-01_DD4

QF+,334

QF+,884

QG,-::4

QG,-::4

Q1aL12g==4

Q1aL126GGGaDAq!Q<$@!DE1v008#a&8aDaAq\$BAFG1v008#a&843B-01U::43r"234>>43A"345BB4c1X./699:aA&'+;;;5A;:--5A;:--5A;:--5A;:--5A;:--5A;:---r+   c                    t         j                  }t        d      }t        d      }t        d      }t        d      }t	        t
        j                  |di      j                  |      dk(  sJ t	        t
        j                  ||z   di      j                  |      dk(  sJ t	        t
        j                  |d	i      j                  |      d
k(  sJ t        t        j                  ||      j                  |      dk(  sJ t        t        j                  |||z         j                  |      dk(  sJ t        t        j                  ||z
  ||z         j                  |      dk(  sJ |||z
  ||z   z  z   |z   j                  |      dk(  sJ t        |||      j                  |      dk(  sJ t        ||      j                  |      dk(  sJ t        ||      j                  |      dk(  sJ t        ||      j                  |      dk(  sJ t        ||      j                  |      dk(  sJ t!        ||      j                  |      dk(  sJ t#        ||      j                  |      dk(  sJ y )Nr3   r4   r5   r6   r8   languagezx * xz(x + y) * (x + y)   z
pow(x, 12)x / yzx / (x + y)z(x - y) / (x + y)z123 + x + (x - y) / (x + y)z(x?y:z)x == yx != yx < yx <= yx > yx >= y)r   Cr   r   r   r   rF   tostringr   r   DIVr   r   r   r   r   r   r   )r/   ro   r3   r4   r5   rI   s         r)   test_tostring_czTestSymbolic.test_tostring_c   sp   ::cNcNcNcNBJJA'00(0CwNNRZZE1"
 8X8&*=> 	? BJJr!
 8X8&,7 	7 Q#8X86'B 	BaQ  (( ;}M 	Na!eQ. $HhH7;NO 	PQUq1u%%8X8.2OP 	P !Q"++X+>)KKQ{##X#6(BBQ{##X#6(BBQ{##X#6'AAQ{##X#6(BBQ{##X#6'AAQ{##X#6(BBBr+   c                    t        d      }t        d      }t        d      }||z   t        t        j                  |di      k(  sJ ||z
  t        t        j                  d      k(  sJ ||z   t        t        j                  |d|di      k(  sJ ||z
  t        t        j                  |d|di      k(  sJ ||z  t        t        j
                  |di      k(  sJ ||z  t        t        j
                  |d|di      k(  sJ ||k(  sJ | t        t        j                  |di      k(  sJ t        |              d|z  t        t        j                  |di      k(  sJ d|z   t        t        j                  |dt        d      di      k(  sJ d|z  d|z  z   t        t        j                  |d|di      k(  sJ ||z   dz  t        t        j                  |d|di      k(  sJ |dz  t        t        j
                  |di      k(  sJ ||z   dz  t        t        j                  t        t        j
                  |di      dt        t        j
                  |di      dt        t        j
                  |d|di      di      k(  sJ ||z   |z  |dz  ||z  z   k(  sJ ||z   dz  |dz  d|z  |z  z   |dz  z   k(  sJ ||z   dz  ||z
  dz  z   d|dz  z  d|dz  z  z   k(  sJ ||z   |z  ||z  ||z  z   k(  sJ |||z   z  ||z  ||z  z   k(  sJ |dz  t        t        j                  |t        d            k(  sJ d|z  dz  |k(  sJ d|z  dz  t        t        j                  d|z  t        d            k(  sJ d	|z  dz  d|z  k(  sJ d
|z  dz  t        t        j                  d
|z  t        d            k(  sJ d|z  dz  d|z  k(  sJ d|z  dz  t        t        j                  d
|z  t        d            k(  sJ d|dz  z  |d	z  z  d|dz  z  |dz  z  z  t        t        j                  d
|z  d	|z        k(  sJ d|z  dz  d
z  t        t        j                  |t        d            k(  sJ d|z  dz  d
z         |d
|z  z  t        t        j                  |dz  t        d
            k(  sJ |dz  t        t        j                  |di      k(  sJ t        d      }t        d      }||z  t        t        j                  d      k(  sJ ||z  t        t        j                  ||f      k(  sJ ||z  t        t        j                  ||f      k(  sJ t        dd      }| t        dd      k(  sJ ||z   t        d      k(  sJ ||z  t        d      k(  sJ y )Nr3   r4   r5   r8   )r   r:   r   r[   r9   r:                  g       @g      ?r;   "123")z"ABC123"r   g      ?g      g       y       @      @y            @)r   r   r   rE   r@   rF   r>   r   r   r   rz   r	   rC   CONCATr   r   )r/   r3   r4   r5   r%   rR   rM   s          r)   test_operationszTestSymbolic.test_operations   sZ   cNcNcN1uRXX1v...1uRZZ0001uRXX1a|4441uRXX1a}5551uRZZ!Q0001uRZZ!Q1666rQwrT"((QG,,6dA2h61uRXX1v...1uRXX1ilA'>???1uq1u}RXX1a| <<<A{d288aAq\:::!ttBJJA///AzTHHRZZ!Q(!RZZ!Q(!RZZqq"  

 

 
	
 A{adQUl**AzQTAEAI-1444AzQUQJ&!ad(QAX*===A{a!ea!em++AE{a!ea!em++A(7;;9Q<@@@A	aA	hw{{AE9Q<HHHA	a!e##A	hw{{AE9Q<HHHA	a!e##!aHW[[!a%1$NNNQT	AqD BAI1$45(KKQA;' ' 	'a!q Xgkk1.7l&< < 	N>@1fqjA=M	NQUadIaL IIICDAs8444ggAvbii999Avbii!Q000Avbii!Q000sC rZd+++1u---1u,,,,r+   c                    t        d      }t        d      }t        d      }t        ||f      }|j                  ||i      |k(  sJ ||z   j                  ||i      ||z   k(  sJ ||z  j                  ||i      ||z  k(  sJ |dz  j                  ||i      |dz  k(  sJ ||z  j                  ||i      ||z  k(  sJ |j                  |||z   i      ||z   k(  sJ |j                  |||z   i      t        ||z   |f      k(  sJ t        |||      j                  |||z   i      t        ||z   ||      k(  sJ t	        ||      j                  |||z   i      t	        ||z   |      k(  sJ y )Nr3   r4   r5   r:   )r   r
   
substituter   r   )r/   r3   r4   r5   rP   s        r)   test_substitutezTestSymbolic.test_substitute  s   cNcNcNaV||QF#q((A!!1a&)QU22A!!1a&)QU221  !Q(AqD00A!!1a&)QU22||QAJ'1q500||QAJ'8QUAJ+???!Q'ZAE
3z!a%A7NO 	OQ{%%q!a%j1U1q5!_DDDr+   c                 j   t        d      }t        d      }t        d      }t        d      }t        d      }t        d      }t        ||f      }t        d      |k(  sJ t        d      |k(  sJ t        d      | k(  sJ t        d	      ||z   k(  sJ t        d
      |dz   k(  sJ t        d      ||z  k(  sJ t        d      |dz  k(  sJ t        d      ||z  k(  sJ t        dt        j
                        |dz  k(  sJ t        dt        j
                        |dz  k(  sJ t        d      ||z   |z  k(  sJ t        d       ||      k(  sJ t        d       |||      k(  sJ t        d      ||   k(  sJ t        d      ||   |   k(  sJ t        d      |k(  sJ t        t        dt        j                              ||z  k(  sJ t        d       ||      k(  sJ t        d      t        dd      k(  sJ t        d      |k(  sJ t        d             t        d       ||      k(  sJ t        d      t        ||z   |z  f      k(  sJ t        d       t        d!      k(  sJ t        d"      t        d!d      k(  sJ t        d#      t        d!d$      k(  sJ t        d%      t        d&d'      k(  sJ t        d(      t        d&d'      k(  sJ t        d)      t        d&d      k(  sJ t        d*      t        d&d'      k(  sJ t        d+      t        d&d      k(  sJ t        d,      t        d&d      k(  sJ t        d-      t        d&d'      k(  sJ t        d.      t        d&d      k(  sJ t        d/      t        d&d0      k(  sJ t        d1      t        d2d'      k(  sJ t        d3      t        dd      k(  sJ t        d4      t        t        d5      t        d6            k(  sJ t        d7      t        t        d      t        d      f      k(  sJ t        d8      t        t        d9      |t        d      :      k(  sJ t        d;      t        t        d<      t        d=      t        d>      t        t        d?      t        d@      f      A      k(  sJ t        dB      t        |||      k(  sJ t        dC      t        |      k(  sJ t        dD      t        t        |            k(  sJ t        dE      t        |      k(  sJ t        dF      t        |      t        |      z  k(  sJ t        dG      t        |      t        |      z  k(  sJ t        dH      t        |      t        |      z  k(  sJ t        dI      t        |      t        |      z  k(  sJ t        dJ      t        ||      k(  sJ t        dK      t        ||      k(  sJ t        dL      t!        ||      k(  sJ t        dM      t#        ||      k(  sJ t        dN      t%        ||      k(  sJ t        dO      t'        ||      k(  sJ t        dPt        j                        t        ||      k(  sJ t        dQt        j                        t        ||      k(  sJ t        dRt        j                        t!        ||      k(  sJ t        dSt        j                        t#        ||      k(  sJ t        dTt        j                        t%        ||      k(  sJ t        dUt        j                        t'        ||      k(  sJ y )VNr3   r4   r5   rW   r;   r   z+ xz-  xr]   zx + 1r   r`   zx * 2r8   rq   r_   rn   zx ** 2 ** 3   z(x + y) * zra   zf(x,y)rb   zf[x][y]z"ABC" // "123" zf("ABC")zMYSTRKIND_"ABC"	MYSTRKINDz(/x, y/)zf((/x, y/))z(/(x+y)*z/)rZ   r6   123_2123_myintkind	myintkindz123.0g     ^@r:   z123.0_4z123.0_8z123.0e0z123.0d0123d0z123e-0z123d+0z123.0_myrealkind
myrealkind3E4g     L@z(1, 2)z	(1e2, PI)g      Y@PIz[1, 2]zPOINT(x, y=1)POINT)r4   z-PERSON(name="John", age=50, shape=(/34, 23/))PERSONz"John"2   "      )nameageshapezx?y:zz*xz**xz&xz(*x) * (*y)z	(*x) * *yz*x * *yz*x**yrr   rs   rt   rv   ru   rw   rc   rd   re   rg   rf   rh   )r   r	   r
   r   r   Pythonr   Fortranr   r   r   r   r   r   r   r   r   r   r   r   )r/   r3   r4   r5   rW   r%   rR   rP   s           r)   test_fromstringzTestSymbolic.test_fromstring&  sI   cNcNcNcNggaV#!##% A%%&!aR'''"a!e++'"a!e++'"a!e++'"a!e++'"a!e++(X__=AEE-(//BagMM-(QUaK77&!QqT))(#qAw..&!QqT)))$!Q//'"a''( ( 0 023671f= 	> *%1--+,	';0OOO*%*BJz,BB-(AaD00-(Hq1uk_,EEE% IcN22'"iQ&777/*i[.III'"iq&999)$	%(;;;)$	%(;;;)$	%(;;;)$	%(;;;'"iq&999(#y':::(#y':::,-5,1OOO% Igq$999(#z!Q'777+&*Yu5E5>t_+F F 	F (#x1y|0L'MMM/*hy7I789B1/G G 	G ;=@H(#x(bM	"y}=>	A 	 '"jAq&999$8A;..% HXa[$999$6!9,,-(HQK(1+,EEE+&(1+*CCC)$hqk(AAA'"hqkHQK&???(#uQ{22(#uQ{22'"eAqk11'"eAqk11(#uQ{22(#uQ{22*x/?/?@E!QKOO*x/?/?@E!QKOO*x/?/?@E!QKOO*x/?/?@E!QKOO*x/?/?@E!QKOO*x/?/?@E!QKOOOr+   c                 Z  	
 t        d      
t        d      }t        d      }t        d      }|f
fd	}
j                  |      |k(  sJ |j                  |      |k(  sJ |j                  |      |k(  sJ  ||      j                  |       ||      k(  sJ  |
      j                  |       ||      k(  sJ ||   j                  |      ||   k(  sJ ||   j                  |      ||   k(  sJ 
|z   |z   j                  |      d|z  |z   k(  sJ 
 ||
|z
        z   j                  |      | ||t        d            z   k(  sJ t        
|      j                  |      t        ||      k(  sJ t	               t	               		fd}
 ||
|z
        z   j                  |       |hk(  sJ 	
||hk(  sJ d	 }t	               	
 ||
|z
        z   j                  |	       	
|||hk(  sJ d
 }t	               	
 ||
|z
        z   j                  |	       	
hk(  sJ y )Nr3   r4   r5   rW   c                     | k(  r|S y r$   r.   )r%   r&   r3   s     r)   replace_visitz1TestSymbolic.test_traverse.<locals>.replace_visit  s    Av r+   r8   r   c                    | j                   t        j                  u r7| j                  d   }j	                  |       |v rj                  |       y y | j                   t        j                  u r| vrj	                  |        y y y )Nr   )r<   r   rj   dataaddremover=   )r%   operfunction_symbolssymbolss     r)   collect_symbolsz3TestSymbolic.test_traverse.<locals>.collect_symbols  sr    ttrxxvvay $$T*7?NN4( #"q0@'@A (A"r+   c                 `    | j                   t        j                  u r|j                  |        y y r$   )r<   r   r=   r   exprr   s     r)   collect_symbols2z4TestSymbolic.test_traverse.<locals>.collect_symbols2  s#    ww"))#D! $r+   c                     | j                   t        j                  u r| S | j                   t        j                  u r|j	                  |        y y r$   )r<   r   rj   r=   r   r   s     r)   collect_symbols3z4TestSymbolic.test_traverse.<locals>.collect_symbols3  s8    ww"(("ww"))#D! $r+   )r   traverser   r   set)r/   r4   r5   rW   r   r   r   r   r   r   r3   s           @@@r)   test_traversezTestSymbolic.test_traverse  s7   cNcNcNcN  ! 	 zz-(A--zz-(A--zz-(A--!}-155!}-155!}-155!}-155A	##M2q1uqyAA!QU%Xm49:1il9K:LM 	M Q{##M2eAqkAA 5%	 
Qq!a%[""?3A3&&1a)##	" %	
Qq!a%[""#3W=1aA,&&	" %	
Qq!a%[""#3W=1#~~r+   c                    t        d      t        d      }t        d      }j                        t        d      t        d      fk(  sJ dz   j                        t        d      t        d      fk(  sJ dz  j                        t        d      t        d      fk(  sJ dz  dz   j                        t        d      t        d      fk(  sJ t        d      j                        t        d      t        d      fk(  sJ |j                        t        d      |fk(  sJ ||z  j                        t        d      ||z  fk(  sJ |z   j                        t        d      |fk(  sJ |z  |z   j                        ||fk(  sJ ||z   z  |z   j                        ||z   |fk(  sJ ||z  z  |z   j                        ||z  |fk(  sJ t        j                  t
        fd       y )	Nr3   r4   r5   r   r   r8   r9   c                  ,      z  j                         S r$   )linear_solve)r3   s   r)   <lambda>z0TestSymbolic.test_linear_solve.<locals>.<lambda>  s    QU,@,@,C r+   )r   r   r   pytestraisesRuntimeError)r/   r4   r5   r3   s      @r)   test_linear_solvezTestSymbolic.test_linear_solve  s   cNcNcN~~a Yq\9Q<$@@@A##A&9Q<1*FFFA##A&9Q<1*FFFA	''*y|Yq\.JJJ|((+	!il/KKK~~a Yq\1$555A##A&9Q<Q*???A##A&9Q<*;;;A	''*q!f44Q!a--a0QUAJ>>A	A++A.1q5!*<<l$CDr+   c                    t        d      }t        d      }t        d      }t        |      |t        d      fk(  sJ t        ||z        ||fk(  sJ t        ||z        ||fk(  sJ t        ||z        ||fk(  sJ t        ||z        ||z  t        d      fk(  sJ t        |||z  z         |||z  z   |fk(  sJ t        |||||z  z
  z  z         ||dz  z  ||z  |z
  fk(  sJ y )Nr3   r4   r6   r   r8   )r   r   r   r/   r3   r4   rI   s       r)   test_as_numer_denomz TestSymbolic.test_as_numer_denom  s    cNcNcNa Q	!$555a!e$A..a!e$A..a!e$A..a!e$Q	!(===a!a%i(QQYN::a!q1q5y/12q1a4xQ6KKKKr+   c                    t        d      }t        d      }t        d      }|j                         |hk(  sJ |j                         t               k(  sJ ||   j                         ||   hk(  sJ  ||      j                          ||      hk(  sJ  ||      |z   j                          ||      |hk(  sJ  ||      ||   z  j                          ||      ||   hk(  sJ  ||      |z  j                          ||      hk(  sJ y )Nr3   r4   r6   )r   r   polynomial_atomsr   r   s       r)   test_polynomial_atomsz"TestSymbolic.test_polynomial_atoms  s    cNcNcN!!#s**!!#su,,!&&(QqTF22!&&(QqTF22!q**,1q	99!qt--/AaD!A$<??!a))+!v555r+   N)__name__
__module____qualname__r1   rX   rl   r{   r   r   r   r   r   r   r   r.   r+   r)   r!   r!   #   sF    6O#b/.bC@>-@E$\P|<|E(L6r+   r!   )!r   numpy.f2py.symbolicr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r   F2PyTestr!   r.   r+   r)   <module>r      sG           : K64== K6r+   