
    BwgG                         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       U/var/www/horilla/myenv/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   s   cNcNcNttryy   Aw0000AvvAvvAw"""cNcNttrzz!!!Aw6666AvvAvvAw"""t_t_uuBx5555RxxRxxBx###q!1ttrzz!!!Aw 9 : 	: :AvvBwwAw"""gwttryy   Aw;;DT!WD;AvvBwwaVaUOttrxxAw ; < 	< <AvvAvvQKQKttrxxAwEEEEAvvAvvAw"""qMqMttrzz!!!AwGGGGAvvAvvAw"""q!Qq!Qttrzz!!!AvvAvvAw"""!QK!QKttr}}$$$AvvAvv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141a&)*g55541b'*+t33341b'*+x77741aA,/0G;;;41b!R.12h>>>41aA,/0OCCC41b!Q-015EEEE41aB-01_DDD4

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

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

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

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

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

Q1aL126GGGGaDAq!Q<$@!DE1v008#a&80aDaAq\$BAFG1v008#a&8043B-01U:::43r"234>>>43A"345BBB4c1X./69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   s   ::cNcNcNcNBJJA'00(0CwNNNRZZE1"
 8X8&*=> 	? > BJJr!
 8X8&,7 	7 7 Q#8X86'B 	B BaQ  (( ;}M 	N Ma!eQ. $HhH7;NO 	P OQUq1u%%8X8.2OP 	P P !Q"++X+>)KKKQ{##X#6(BBBQ{##X#6(BBBQ{##X#6'AAAQ{##X#6(BBBQ{##X#6'A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   s   cNcNcN1uRXX1v....1uRZZ00001uRXX1a|44441uRXX1a}55551uRZZ!Q00001uRZZ!Q16666rQww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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HA	a!e###A	hw{{AE9Q<HHHHA	a!e###!aHW[[!a%1$N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ICDAs84444ggAvbii9999Avbii!Q0000Avbii!Q0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2A!!1a&)QU2221  !Q(AqD000A!!1a&)QU222||QAJ'1q5000||QAJ'8QUAJ+????!Q'ZAE
3z!a%A7NO 	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&  s   cNcNcNcNggaV#!###% A%%%&!aR''''"a!e+++'"a!e+++'"a!e+++'"a!e+++'"a!e+++(X__=AEEE-(//BagMMM-(QUaK777&!QqT)))(#qAw...&!QqT))))$!Q///'"a'''( ( 0 023671f= 	> = *%1---+,	';0OOOO*%*BJz,BB*-(AaD000-(Hq1uk_,EEEE% IcN222'"iQ&7777/*i[.IIII'"iq&9999)$	%(;;;;)$	%(;;;;)$	%(;;;;)$	%(;;;;'"iq&9999(#y'::::(#y'::::,-5,1OOOO% Igq$9999(#z!Q'7777+&*Yu5E5>t_+F F 	F F (#x1y|0L'MMMM/*hy7I789B1/G G 	G G ;=@H(#x(bM	"y}=>	A 	  '"jAq&9999$8A;...% HXa[$9999$6!9,,,-(HQK(1+,EEEE+&(1+*CCCC)$hqk(AAAA'"hqkHQK&????(#uQ{222(#uQ{222'"eAqk111'"eAqk111(#uQ{222(#uQ{222*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKOOO*x/?/?@E!QKO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  sa   cNcNcNcN  ! 	 zz-(A---zz-(A---zz-(A---!}-1555!}-1555!}-1555!}-1555A	##M2q1uqyAAA!QU%Xm49:1il9K:LM 	M M Q{##M2eAqkA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FA##A&9Q<1*FFFFA	''*y|Yq\.JJJJ|((+	!il/KKKK~~a Yq\1$5555A##A&9Q<Q*????A##A&9Q<*;;;;A	''*q!f4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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2!&&(QqTF222!q**,1q	9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+   