+
    iy                        ^ RI HtHtHtHtHtHtHtHtH	t	H
t
HtHtHtHtHtHtHtHtHt ^ RIHtHtHtHtHtHt ^ RIHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8 ^ RI9H:t: ^ RI;H<t<H=t=H>t> ^ RI?H@t@HAtAHBtB ^ RICHDtDHEtE ^ RIFHGtG ^ R	IHHItIHJtJHKtK ^ R
ILHMtMHNtNHOtOHPtPHQtQHRtRHStSHTtTHUtUHVtVHWtWHXtXHYtYHZtZH[t[H\t\H]t]H^t^H_t_H`t`HataHbtbHctcHdtdHeteHftf ^ RIgHhthHitiHjtjHktkHltlHmtmHntnHotoHptpHqtqHrtr ^ RIsHttt ^ RIuHvtv ^ RIwHxtxHyty ^ RIzH{t{H|t|H}t} ^ RIFH~t~ ]! R4      w  tttR tR tR tR tR tR tR tR tR tR tR tR tR tR tR  tR! tR" tR# tR$ tR% tR& tR' tR( tR) tR* tR+ tR, tR- tR. tR/ tR0 tR1 tR2 tR3 tR4 tR5 tR6 tR7 tR8 tR9 tR: t]ER; 4       tR< tR= tR> tR? tR@ tRA tRB tRC tRD tRE tRF tRG# )H    )SpiooSymbolsymbolsRationalIntegerFloatFunctionModGoldenRatio
EulerGammaCatalanLambdaDummynanMulPowUnevaluatedExpr)EqGeGtLeLtNe)Absacosacoshasinasinhatanatanhatan2ceilingcoscosherferfcexpfloorgammalogloggammaMaxMin	Piecewisesignsinsinhsqrttantanh	fibonaccilucas)Range)ITEImplies
Equivalent)For
aug_assign
Assignment)raisesXFAIL)PrintMethodNotImplementedError)C89CodePrinterC99CodePrinterget_math_macros)AddAugmentedAssignmentElementType	FloatTypeDeclarationPointerVariablevalue_constpointer_constWhileScopePrintFunctionPrototypeFunctionDefinitionFunctionCallReturnrealfloat32float64float80float128intcComment	CodeBlockstderrQuotedString)expm1log1pexp2log2fmalog10CbrthypotSqrtisnanisinf)restrict)implemented_function)IndexedBaseIdx)MatrixMatrixSymbolSparseMatrixccodezx,y,zc                  \     ! R  R\         4      p \        V ! \        4      4      R8X  g   Q hR# )c                   &   a  ] tR t^"t o R tRtV tR# )test_printmethod.<locals>.fabsc                T    R VP                  V P                  ^ ,          4      ,          # )zfabs(%s))_printargs)selfprinters   &&Y/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/printing/tests/test_c.py_ccode%test_printmethod.<locals>.fabs._ccode#   s    tyy| <<<     N)__name__
__module____qualname____firstlineno__r}   __static_attributes____classdictcell__)__classdict__s   @r|   fabsrv   "   s     	= 	=r   r   fabs(x)N)r   rs   x)r   s    r|   test_printmethodr   !   s&    =s = a>Y&&&r   c                      \        \        \        4      4      R 8X  g   Q h\        \        R,          4      R 8X  g   Q h\        \        \        4      4      R 8X  g   Q hR# )zsqrt(x)      ?N)rs   r4   r   r   r   r|   test_ccode_sqrtr   )   sD    a>Y&&&C=I%%%a>Y&&&r   c                     \        \        ^,          4      R8X  g   Q h\        \        \        ^,          ,          4      R8X  g   Q h\        R\	        \        ^\        ,          4      4      p \        ^V ! \        4      R,          \        \        \        ,          ,
          ,          ,          \        ^,          \        ,           ,          4      R8X  g   Q h\        \        R,          4      R8X  g   Q h\        \        \        ^^4      ,          4      R8X  g   Q h\        \        \        ^^4      ,          \        \        /R7      R	8X  g   Q hR
 R3R R3.p\        \        ^,          RV/R7      R8X  g   Q h\        \        R,          RV/R7      R8X  g   Q h\        \        \        ^^4      ,          RV/R7      R8X  g   Q hR R 3R R3.p\        ^\        ,          RV/R7      R8X  g   Q h\        \        ^,          RV/R7      R8X  g   Q h\        \        R\        \        \        \        \        RR7      RRR7      RR7      4      R8X  g   Q hR# )    z	pow(x, 3)zpow(x, pow(y, 3))gg      @z,pow(3.5*2*x, -x + pow(y, x))/(pow(x, 2) + y)z1.0/xzpow(x, 2.0/3.0)type_aliaseszpowl(x, 2.0L/3.0L)c                     VP                   # N
is_integerbaser)   s   &&r|   <lambda> test_ccode_Pow.<locals>.<lambda>8   s    cnnr   dpowic                 $    VP                   '       * # r   r   r   s   &&r|   r   r   9   s    #..&8r   powr   user_functionszdpowi(x, 3)r   zpow(x, 0.5)zpow(x, 16.0/5.0)c                     V ^8H  #    r   r   s   &&r|   r   r   =       tqyr   c                     R V,          # )zexp2(%s)r   r   s   &&r|   r   r   =   s
    JQTDTr   c                     V ^8g  # r   r   r   s   &&r|   r   r   >   r   r   exp2(x)z	pow(x, 2)Fevaluatez
-2*x/(y*y)N      )
rs   r   yrl   r   r   rV   rY   r   r   )r   _cond_cfunc_cond_cfunc2s      r|   test_ccode_Powr   /   s   A;+%%%QT2222S&AaC.1AAaDHAqD))1a4!84567 7 7D>W$$$HQN"#'8888HQN"$AEYYYY4g>8%@BKAuk&:;}LLLC(<=NNNHRO#UK4HIM____02TU0%8:L Aul&;<	IIIAul&;<KKKRCAa 7eL9>@ ADPQ Q Qr   c                  p    \        \        \        \        \        ,          4      R RRR/R7      R8X  g   Q hR# )r.   my_maxr   my_powr   zmy_max(x, my_pow(x, 2))N)rs   r.   r   r   r   r|   test_ccode_Maxr   G   s+    QqsE(E(+KLPiiiir   c                      \        \        R 4      !  p R F6  p\        WR7      pVP                  R4      VP                  R4      8X  d   K6  Q h	  R# )za[0:50]standard()N)c89c99c11)r/   r   rs   count)big_mincurr_standardoutputs      r|   test_ccode_Min_performancer   L   sE    79%&G.w7||C FLL$5555 /r   c                  l   \        \        ^4      4      R8X  g   Q h\        \        4      R8X  g   Q h\        \        RR7      R8X  g   Q h\        \        ) RR7      R8X  g   Q h\        \        4      R8X  g   Q h\        \        ) RR7      R	8X  g   Q h\        \        \        \
        /R
7      R8X  g   Q hR# )   M_EM_PIr   r   HUGE_VALz	-HUGE_VALINFINITYr   z	-INFINITYr   M_PIlN)rs   r)   r   r   rV   rY   r   r   r|   test_ccode_constants_mathhr   T   s    Q=E!!!9e$
222"u%4449
""""u%4444/2g===r   c                  V   \        ^\        ,          4      R\        P                  ! ^4      ,          8X  g   Q h\        ^\        ,          4      R\        P                  ! ^4      ,          8X  g   Q h\        ^\        ,          4      R\        P                  ! ^4      ,          8X  g   Q hR# )r   z,const double GoldenRatio = %s;
2*GoldenRatioz$const double Catalan = %s;
2*Catalanz*const double EulerGamma = %s;
2*EulerGammaN)rs   r   evalfr   r   r   r   r|   test_ccode_constants_otherr   ^   s    ;#RU`UfUfgiUj#jjjj	'	=b@QQR R R:"OR\RbRbceRf"ffffr   c                  >   \        \        ^^4      4      R8X  g   Q h\        \        ^^4      \        \        /R7      R8X  g   Q h\        \        ^^	4      4      R8X  g   Q h\        \        ^R4      4      R8X  g   Q h\        \        ^R4      \        \        /R7      R8X  g   Q h\        \        RR4      4      R8X  g   Q h\        \        RR4      \        \        /R7      R8X  g   Q h\        \        \        ^^4      ,           4      R8X  g   Q h\        \        \        ^^4      ,           \        \        /R7      R8X  g   Q h\        \        ^^4      \        ,          4      R	8X  g   Q h\        \        ^^4      \        ,          \        \        /R7      R
8X  g   Q hR# )r   z3.0/7.0r   z	3.0L/7.0L2z-3.0/7.0z
-3.0L/7.0Lzx + 3.0/7.0zx + 3.0L/7.0Lz(3.0/7.0)*xz(3.0L/7.0L)*xN)rs   r   rV   rY   r   r   r   r|   test_ccode_Rationalr   e   sI   !Q I---!QtWo>+MMM"a!S(((!R!Z///!Rg?<OOO"b!"i///"b!w@KOOOXa^#$555Xa^#4/BoUUU!Q!"m333!Q!w@OSSSr   c                  r    \        \        ^C4      4      R8X  g   Q h\        \        R4      4      R8X  g   Q hR# )C   67z-1Nr   )rs   r	   r   r   r|   test_ccode_Integerr   s   s0    %%%%%%r   c                  l    \        \        \        4      \        \        4      ,          4      R 8X  g   Q hR# )zpow(sin(x), cos(x))N)rs   r2   r   r%   r   r   r|   test_ccode_functionsr   x   s#    Q3q6!"&;;;;r   c            	      .   \        R 4      p \        R\        V ^V ,          4      4      p\        V! V 4      4      R8X  g   Q h\        R\        V ^V ,          \        ,          4      4      p\        V! V 4      4      R\        P
                  ! ^4      ,          8X  g   Q h\        R4      p\        R\        RRR7      4      p\        R\        W ^V ,           ,          ^V ,           ,          4      4      p\        V! W#,          4      W#,          R	7      R
8X  g   Q hR# )r   r   z2*xz&const double Catalan = %s;
2*x/CatalanAinTinteger	assign_toz@for (int i=0; i<n; i++){
   A[i] = (A[i] + 1)*(A[i] + 2)*A[i];
}N)r   rl   r   rs   r   r   rm   rn   )r   r   r   r   s       r|   test_ccode_inline_functionr   |   s    AS&AaC.1A1;%S&AaCK"89A	!:W]]2=NNO O OCACd+,AS&q1uIq1u,=">?A14AD)	  r   c                     \        \        \        4      R R7      R8X  g   Q h\        \        4      ;_uu_ 4        \        \        \        4      RR7       RRR4       \        \        4      ;_uu_ 4        \        \        \        4      RRR7       RRR4       \        \        \        4      RRR7       R#   + '       g   i     Lh; i  + '       g   i     L@; i)C99r   	tgamma(x)C89NF)r   allow_unknown_functionsT)rs   r+   r   r@   rB   r   r   r|   test_ccode_exceptionsr      s}    qE*k999	.	/	/eAh' 
0	.	/	/eAhF 
0 
%(UDA 
0	/	/	/s   B43C4C	C	c                     \        \        \        4      4      R 8X  g   Q h\        \        \        4      4      R8X  g   Q h\        \	        \        4      4      R8X  g   Q h\        RRR7      w  r\        \        \        V 4      \        V4      4      4      R8X  g   Q h\        \        W4      4      R8X  g   Q h\        RRRR	7      w  r#\        \        W#4      4      R
8X  g   Q h\        \        W#^,           4      4      R8X  g   Q h\        \        RRRR7      4      R8X  g   Q h\        \        ^^RR7      ) 4      R8X  g   Q h\        V \        W#4      ,          4      R8X  g   Q h\        \        W#4      V,          4      R8X  g   Q h\        RRRR7      p\        \        V) V4      4      R8X  g   Q h\        \        V4      4      R8X  g   Q h\        \        V4      4      R8X  g   Q hR# )ceil(x)r   r   zr,sTrV   z)((ceil(r) % ceil(s)) + ceil(s)) % ceil(s)z
fmod(r, s)zp1 p2r   positivezp1 % p2zp1 % (p2 + 3)Fr   z(-3) % (-7)z-(3 % 7)zr*(p1 % p2)zpow(p1 % p2, s)r   )r   negativez	(-n) % p2zK((1.0/5.0)*pow(2, -n)*sqrt(5)*(-pow(1 - sqrt(5), n) + pow(1 + sqrt(5), n)))z8(pow(2, -n)*(pow(1 - sqrt(5), n) + pow(1 + sqrt(5), n)))Nr   r   )	rs   r$   r   r   r+   r   r   r7   r8   )rsp1p2r   s        r|   test_ccode_functions2r      s   	)))Q=I%%%q?k)))5t$DAWQZ,- 2F F F FQ|+++WdT:FBR***Ra!_444Re,->>>#aU++,
:::3r;=000Ra $5555TD1AaR,,,1"ooooq?XXXXr   c                     \        R RR7      p \        RRR7      pRRRR R	3R
 R3./p\        \        V 4      VR7      R8X  g   Q h\        \        V 4      VR7      R8X  g   Q h\        \        V4      VR7      R8X  g   Q h\	        R4      p\        R4      p\        ^ ^d4       F#  pV! \        ^^4      \	        RV 24      V4      pK%  	  \        VRR/R7      pRV9   g   Q hVP                  R4      ^d8X  g   Q hR# )r   Fr   r   Tr$   ceilr   c                 $    V P                   '       * # r   r   r   s   &r|   r   +test_ccode_user_functions.<locals>.<lambda>   s    q||+r   r   c                     V P                   # r   r   r   s   &r|   r   r      s    r   absr   r   r   abs(n)amuladda99N)	r   rs   r$   r   r   r   ranger   r   )r   r   custom_functionsexprr   r   outs          r|   test_ccode_user_functionsr     s   U#AT"A6+V47Mu6UV ,<=JJJQ(89YFFFQ(89XEEE#;DhF1c]hq!nfqWot<  hx%8
9CC<<99X#%%%r   c            
      F   \        R 4      R8X  g   Q h\        \        P                  4      R8X  g   Q h\        R4      R8X  g   Q h\        \        P                  4      R8X  g   Q h\        \        \
        ,          4      R8X  g   Q h\        \        \
        ,          4      R8X  g   Q h\        \        ( 4      R8X  g   Q h\        \        \
        ,          \        ,          4      R8X  g   Q h\        \        \
        ,          \        ,          4      R8X  g   Q h\        \        \
        ,          \        ,          4      R	8X  g   Q h\        \        \
        ,          \        ,          4      R
8X  g   Q h\        \        \
        ,          4      R8X  g   Q h\        \        \
        ,          \        ,          4      R8X  g   Q h\        \        \        \
        4      4      R8X  g   Q h\        \        \        \        \
        ,          \        \        \        4      4      4      R8X  g   Q hR# )TtrueFfalsezx && yzx || yz!xzx && y && zzx || y || zzz || x && yzz && (x || y)z(x || y) && (!x || !y)zF(x || y || z) && (x || !y || !z) && (y || !x || !z) && (z || !x || !y)zy || !xzD(x || (y || !z) && (z || !y)) && (z && !x || (y || z) && (!y || !z))N)	rs   r   r  r  r   r   zr;   r<   r   r   r|   test_ccode_booleanr     sq   ;&   =F"""<7""">W$$$Q<8###Q<8###!9Q},,,Q},,,!a%1...!a%1000Q<3333!a%1!iiiiA9,,,Aq1ugam459r   c                     \        \        \        \        4      4      R 8X  g   Q h\        \	        \        \        4      4      R8X  g   Q h\        \        \        \        4      4      R8X  g   Q h\        \        \        \        4      4      R8X  g   Q h\        \        \        \        4      4      R8X  g   Q h\        \        \        \        4      4      R8X  g   Q hR# )zx == yzx != yzx <= yzx < yzx > yzx >= yN)	rs   r   r   r   r   r   r   r   r   r   r   r|   test_ccode_Relationalr     s    Aq?h&&&Aq?h&&&Aq?h&&&Aq?g%%%Aq?g%%%Aq?h&&&r   c                    a  \        \        \        ^8  3\        ^,          R34      o \        S 4      R8X  g   Q h\        S RR7      R8X  g   Q h\        \        \        ^8  3\        ^,           \        ^8  3\        ^,          R34      o \        S 4      R8X  g   Q h\        S RR7      R8X  g   Q h\        \        \        ^8  3\        ^,          \        ^8  3\        \        4      \        ^ 8  34      o \	        \
        V 3R l4       R	# )
r   Tz'((x < 1) ? (
   x
)
: (
   pow(x, 2)
))cr   z3if (x < 1) {
   c = x;
}
else {
   c = pow(x, 2);
}zB((x < 1) ? (
   x
)
: ((x < 2) ? (
   x + 1
)
: (
   pow(x, 2)
)))zUif (x < 1) {
   c = x;
}
else if (x < 2) {
   c = x + 1;
}
else {
   c = pow(x, 2);
}c                     < \        S 4      # r   rr   r   s   r|   r   &test_ccode_Piecewise.<locals>.<lambda>  s	    uT{r   N)r0   r   rs   r2   r@   
ValueErrorr  s   @r|   test_ccode_Piecewiser     s    aQZ!Q$.D;   %   aQZ!a%Q!Q$>D;	 	 	 %	 	 	 aQZ!Q$AQQ@D
:*+r   c                  N    ^ RI Hp  V ! \        4      p\        V4      R8X  g   Q hR# )r   )sincz)(((x != 0) ? (
   sin(x)/x
)
: (
   1
)))N)(sympy.functions.elementary.trigonometricr  r   rs   )r  r   s     r|   test_ccode_sincr    s)    =7D;  r   c            	         \        ^\        \        \        ^8  3\        ^,           \        ^8  3\        ^,          R34      ,          4      p V R8X  g   Q h\        \        ,          \        ,          \        ^,          ,           \        ^,          ,           \        ^ \        R8  3R	4      ,           \        \        4      ,           ^,
          p\        V4      R8X  g   Q h\        VRR7      R8X  g   Q hR# )
r   TzD2*((x < 1) ? (
   x
)
: ((x < 2) ? (
   x + 1
)
: (
   pow(x, 2)
)))r   zNpow(x, 2) + x*y*z + pow(y, 2) + ((x < 0.5) ? (
   0
)
: (
   1
)) + cos(z) - 1r
  r   zSc = pow(x, 2) + x*y*z + pow(y, 2) + ((x < 0.5) ? (
   0
)
: (
   1
)) + cos(z) - 1;N)r   T)rs   r0   r   r   r  r%   )pr   s     r|   test_ccode_Piecewise_deepr    s    a	1a!e*q1ua!enq!tTlCCDA	 	 	 Q3q51a4<!Q$Aq3w<!CCc!fLqPD;   %     r   c                  b    \        \        ^8  \        \        4      p \	        V 4      R8X  g   Q hR# )r   z((x < 1) ? (
   y
)
: (
   z
))N)r:   r   r   r  rs   r  s    r|   test_ccode_ITEr  1  s/    q1uaD;  r   c                  (    \        \        R  4       R# )c                  6    \        \        \        4      R R7      # )garbage)method)rs   r2   r   r   r   r|   r   %test_ccode_settings.<locals>.<lambda>=  s    eCF9=r   N)r@   	TypeErrorr   r   r|   test_ccode_settingsr  <  s    
9=>r   c                     \        R RR7      w  rr#\        RV4      \        RV4      \        RV4      rep\        R4      V,          p\        R4      WE3,          p\        R4      WEV3,          p	\        4       p
V
P	                  V4      R	8X  g   Q hV
P	                  V4      R
W$,          V,           ,          8X  g   Q hV
P	                  V	4      RWC,          V,          WS,          ,           V,           ,          8X  g   Q h\        RRR7      WE3,          pV
P	                  V4      R
^V,          V,           ,          8X  g   Q h\        RRRR7      WE3,          p\        V4      R
V^V,          ,           ,          8X  g   Q h\        RR^V 3VR7      WE3,          p\        V4      R8X  g   Q h\        RWV3VR7      p\        WWV3,          4      R8X  g   Q h\        V^^V3,          4      R8X  g   Q hR# )zs n m oTr   r   jkr   r   Bzx[j]zA[%s]zB[%s]shapeF)r%  strides)r%  r'  offsetzA[o + s*j + i]r'  r(  zA[m*j + n*k + o + s*i]zA[3*m + n*k + o + 2*s]N)   r   )   r+  )r   rn   rm   rD   _print_Indexedrs   )r   r   mor   r!  r"  r   r   r#  r  Abases               r|   test_ccode_Indexedr0  @  s   D1JA!#qk3sA;C!ACACACq!AAA&(((A'QSU"3333A'QSU13Yq["9999Cu%ad+AA'QqS1W"5555Cuc2148A8w!ac'****CwAqA!$GA8''''aAYq9E!w $<<<<q!Qw $<<<<r   c            	          \        \        R R4      4      R8X  g   Q h\        \        R RRRR7      4      R8X  g   Q h\        \        R R
4      4      R8X  g   Q h\        \        R R4      4      R8X  g   Q hR	# )r   ijzx[i][j]klr.  r)  zx[i*k + j*l + o]zx[3]z
x[3][4][5]N)r   )r      r*  )rs   rG   r   r   r|   test_Elementr5  \  so    d#$	111dD=>BTTTTd#$...g&'<777r   c                     ^p \        RV 3R7      p\        RV 3R7      p\        RV ^,
          3R7      p\        RV ^,
          4      p\        W4,          W^,           ,          W,          ,
          W$^,           ,          W$,          ,
          ,          4      p\        VP                  VP
                  RR7      pVRV^,           : R	V^,           : R
28X  g   Q hR# )r*  r   r$  r   Dyr   F)r   contractzDy[i] = (y[z] - y[i])/(x[z
] - x[i]);N)rm   rn   r   rs   rhslhs)len_yr   r   r7  r   ecode0s          r|   2test_ccode_Indexed_without_looking_for_contractionr>  c  s    ECx(ACx(A	T%'	,BCqA
251qS6!$;Q3-.A!%%15559EAq1uuMMMMr   c                  .   \        R RR7      w  r\        R4      p\        R4      p\        R4      p\        RV4      p\        RV 4      pRWP,          V,           ,          R	,           p\        W%V3,          W6,          ,          WE,          R
7      V8X  g   Q hR# )n mTr   r   r   r   r   r!  z}for (int i=0; i<m; i++){
   y[i] = 0;
}
for (int i=0; i<m; i++){
   for (int j=0; j<n; j++){
      y[i] = A[%s]*x[j] + y[i];
   }
}r   Nr   rm   rn   rs   )r   r-  r   r   r   r   r!  r   s           r|   test_ccode_loops_matrix_vectorrC  n  s    5$'DACACACACACA	,
 01sQw	8		  a4.!333r   c                     \        R R\        R7      w  r\        R4      p\        R4      p\        W4      p RRV P                  P
                  RVP
                  /,          p\        W ,          W0,          R7      V8X  g   Q hR	# )
zi mT)r   clsr   r   zlfor (int i_%(icount)i=0; i_%(icount)i<m_%(mcount)i; i_%(icount)i++){
   y[i_%(icount)i] = x[i_%(icount)i];
}icountmcountr   N)r   r   rm   rn   labeldummy_indexrs   )r   r-  r   r   expecteds        r|   test_dummy_loopsrK    ss    5$E2DACACAA	A	 
177&&!--@	AH &(222r   c                  x   \        R RR7      w  r\        R4      p\        R4      p\        R4      p\        R4      p\        RV4      p\        RV 4      pR	W`,          V,           ,          R
,           p\        W&V3,          W7,          ,          W6,          ,           WV,          ,           WF,          R7      V8X  g   Q hR# )r@  Tr   r   r   r   r  r   r!  zfor (int i=0; i<m; i++){
   y[i] = x[i] + z[i];
}
for (int i=0; i<m; i++){
   for (int j=0; j<n; j++){
      y[i] = A[%s]*x[j] + y[i];
rA  r   NrB  )	r   r-  r   r   r   r  r   r!  r   s	            r|   test_ccode_loops_addrM    s    5$'DACACACACACACA	,
 01sQw	8		  a4$qt+qt<AAAr   c                  
   \        R RR7      w  rr#\        R4      p\        R4      p\        R4      p\        RV4      p\        RV 4      p\        RV4      p	\        R	V4      p
R
Wp,          V,          V,          W,          V,          ,           W,          ,           V
,           : RW,          V,          W,          ,           V
,           : R2R,           p\        WXW3,          WGWV
3,          ,          Wg,          R7      V8X  g   Q hR# )n m o pTr   r   br   r   r!  r"  lzfor (int i=0; i<m; i++){
   y[i] = 0;
}
for (int i=0; i<m; i++){
   for (int j=0; j<n; j++){
      for (int k=0; k<o; k++){
         for (int l=0; l<p; l++){
            y[i] = a[z]*b[
] + y[i];
         }
      }
   }
}r   NrB  )r   r-  r.  r  r   rP  r   r   r!  r"  rQ  r   s               r|   &test_ccode_loops_multiple_contractionsrT    s    D1JA!CACACACACACACA 78c!eAgAo6Ka6O6OQRQTUVQVYZY\Q\_`Q`Q`	b		  a7AqjM)QT:a???r   c                     \        R RR7      w  rr#\        R4      p\        R4      p\        R4      p\        R4      p\        RV4      p\        RV 4      p	\        R	V4      p
\        R
V4      pRW,          V,          V,          W,          V,          ,           W,          ,           V,           : RW,          V,          V,          W,          V,          ,           W,          ,           V,           : RW,          V,          W,          ,           V,           : R2R,           p\        WHWV3,          WXWV3,          ,           WiW3,          ,          Wx,          R7      V8X  g   Q hR# )rO  Tr   r   rP  r
  r   r   r!  r"  rQ  zfor (int i=0; i<m; i++){
   y[i] = 0;
}
for (int i=0; i<m; i++){
   for (int j=0; j<n; j++){
      for (int k=0; k<o; k++){
         for (int l=0; l<p; l++){
            y[i] = (a[z] + b[z])*c[rR  rS  r   NrB  )r   r-  r.  r  r   rP  r
  r   r   r!  r"  rQ  r   s                r|   test_ccode_loops_addfactorrV    sG   D1JA!CACACACACACACACA ABAa!#a%RSRU@UXY@Y@Y[\[^_`[`ab[befehijej[jmnmp[pst[t[tvwvyz{v{~  B  wB  EF  wF  wF	G		  !qQJ-!qQJ-/a7;qtLPQQQQr   c                     \        R RR7      w  rr#\        R4      p\        R4      p\        R4      p\        R4      p\        RV4      p\        RV 4      p	\        R	V4      p
R
pRW,          V,          W,          ,           V
,           ,          R,           pRW,          V
,           ,          R,           pRW,          V	,           ,          R,           p\        WY,          WHV	3,          ,          WZ,          WHV
3,          ,          ,           WY,          WZ,          ,          WhW3,          ,          ,           Wx,          R7      pWkV,           V,           VRR ,           8X  g   WkV,           V,           VRR ,           8X  g   WkV,           V,           VRR ,           8X  gc   WkV,           V,           VRR ,           8X  gC   WkV,           V,           VRR ,           8X  g#   WkV,           V,           VRR ,           8X  g   Q hR# R# R# R# R# R# )rO  Tr   r   rP  r
  r   r   r!  r"  z(for (int i=0; i<m; i++){
   y[i] = 0;
}
z|for (int i=0; i<m; i++){
   for (int j=0; j<n; j++){
      for (int k=0; k<o; k++){
         y[i] = b[j]*b[k]*c[%s] + y[i];
z      }
   }
}
zUfor (int i=0; i<m; i++){
   for (int k=0; k<o; k++){
      y[i] = a[%s]*b[k] + y[i];
z   }
}
zUfor (int i=0; i<m; i++){
   for (int j=0; j<n; j++){
      y[i] = a[%s]*b[j] + y[i];
r   Nr   rB  )r   r-  r.  r  r   rP  r
  r   r   r!  r"  s0s1s2s3s                  r|   test_ccode_loops_multiple_termsr\    s   D1JA!CACACACACACACA	 	4 89s1uqs{Q	H			 	,/0sQw	8		 	,/0sQw	8		  	ad1T7lQT!qD'\)ADIa1j,@@ADQAb23B''b23B''b23B''b23B''b23B''b23B'') (
 ( ( ( ( ( (r   c                      \         \        ,           \        \        4      ,           \        ,           p \	        V \        .R 7      R8X  g   Q hR# )dereferencezx + y + (*z) + sin((*z))N)r   r   r2   r  rs   r  s    r|   test_dereference_printingr`    s0    q53q6>ADA3'+EEEEr   c            	      
   \        \        \        ,          \        ^\        ,           \        ^ 8  3\        R34      \	        \
        4      .4      p \        R^^4      p\        W4      R8X  g   Q h\        ^VR	,          ,          \        ^ 8  3VR	,          R34      \	        VR
,          4      ,           VR,          ,           p\        V4      R8X  g   Q h\        R^^4      p\        R^^4      p\        \	        VR
,          4      ^ \        VR	,          4      .VR
,          VR	,          ,           VR,          ^.^VR,          ,          VR
,          ,          \        VR,          4      ^,           ^ ..4      p\        WT4      R8X  g   Q hR# )r   Tr   zPA[0] = x*y;
if (y > 0) {
   A[1] = x + 2;
}
else {
   A[1] = y;
}
A[2] = sin(z);z:((x > 0) ? (
   2*A[2]
)
: (
   A[2]
)) + sin(A[1]) + A[0]qMzM[0] = sin(q[1]);
M[1] = 0;
M[2] = cos(q[2]);
M[3] = q[1] + q[2];
M[4] = q[3];
M[5] = 5;
M[6] = 2*q[4]/q[1];
M[7] = sqrt(q[0]) + 4;
M[8] = 0;N)r   r   )r   r   r   r   )r   r   )r4  r   )
ro   r   r   r0   r2   r  rp   rs   r%   r4   )matr   r   rb  rc  r-  s         r|   test_Matrix_printingrf    sX   
!A#y!a%14y93q6B
CCS!QA=	   a$iQ'!D'49C$LH1T7RD;	 ! ! ! 	S!QAS!QAQsVaQsV-	
3!C&!D'1%	
1T71S6	4#<!+Q/1 	2A ;		 	 	r   c                      \        \        4      ;_uu_ 4        \        \        . RO.4      4       RRR4       R\	        RR/4      P                  \        . RO.4      4      9   g   Q hR#   + '       g   i     LA; i)r   NzNot supported in CstrictF)r   r   r   )r@   rB   rs   rq   rC   doprintr   r   r|   test_sparse_matrixrj  ;  sY    	.	/	/lI;'( 
0  >8U2C#D#L#L\[dZeMf#gggg 
0	/s   A))A9	c                  \   \        R 4      w  r\        \        4      ;_uu_ 4        \        V^,          RRR7       RRR4       \        V^,          4      R8X  g   Q h\        W^,          ,          V.R7      R8X  g   Q h\        V^,          RR	7      R
8X  g   Q hR#   + '       g   i     Lh; i)zx, ifTr   )error_on_reservedr   Nzpow(if_, 2)r^  zpow((*if_), 2)*x_unreserved)reserved_word_suffixzpow(if_unreserved, 2))r   r@   r  rs   )r   r   s     r|   test_ccode_reserved_wordsro  D  s    7DA	
		addU; 
A;-'''Ts+/AAAAAM:>UUUU	 
	s   BB+	c                     \        \        4      \        ,          R r\        \        \        4      4      Rr2\        ^\        ,          \        ^,          ,           4      \        ,          \        ^,          ,           RrT\	        V 4      V8X  g   Q h\	        V R4      RV,          8X  g   Q h\	        V4      V8X  g   Q h\	        V4      V8X  g   Q hR# )zy*(((x) > 0) - ((x) < 0))z!(((cos(x)) > 0) - ((cos(x)) < 0))zApow(x, 2) + x*(((pow(x, 2) + 2*x) > 0) - ((pow(x, 2) + 2*x) < 0))r  zz = %s;N)r1   r   r   r%   rs   )expr1ref1expr2ref2expr3ref3s         r|   test_ccode_signrw  M  s    q'A+:4s1v, C4q1uq!t|$q(1a4/1t4<4	D 0000<4<4r   c                      \        \        \        \        \        ,           4      4      R 8X  g   Q h\        \        \        R\        \        ,           4      4      R8X  g   Q hR# )z
x = y + z;+zx += y + z;N)rs   r?   r   r   r  r>   r   r   r|   test_ccode_Assignmentrz  V  s@    Aq1u%&,666AsAE*+}<<<r   c            	          \        \        \        ^ ^
^4      \        \        R\        4      .4      p \        V 4      R8X  g   Q hR# )r   *z*for (x = 0; x < 10; x += 2) {
   y *= x;
}N)r=   r   r9   r>   r   rs   )fs    r|   test_ccode_Forr~  [  s?    AuQAAsA!6 78A8    r   c            	          \        \        \        ^ 4      RR7      R8X  g   Q h\        \        \        ^ 4      RR7      R8X  g   Q h\        \        \        ^ \	        \        4      4      RR7      R8X  g   Q hR# )	r   r   r   z((0 > x) ? 0 : x)r   z
fmax(0, x)r   zI((0 < ((x < sqrt(x)) ? x : sqrt(x))) ? 0 : ((x < sqrt(x)) ? x : sqrt(x)))N)rs   r.   r   r/   r4   r   r   r|   test_ccode_Max_Minr  a  sb    QU+/BBBBQU+|;;;Q47#e4S  r   c                      \        \        \        4      R R7      R8X  g   Q h\        \        R R7      R8X  g   Q h\        \	        R4      R R7      R8X  g   Q hR# )r   r   expm1(x)NANr   N)rs   r`   r   r   floatr   r   r|   test_ccode_standardr  h  sI    qE*j888u%...u.%777r   c                      \        4       p V P                  R 8X  g   Q hV P                  R8X  g   Q hRV P                  9   g   Q hRV P                  9  g   Q hV P	                  \        \        4      4      R8X  g   Q hR# )Cr   voidtemplatelog10(x)N)rC   languager   reserved_wordsri  re   r   )
c89printers    r|   test_C89CodePrinterr  n  sw    !J#%%%%'''Z.....Z66666eAh':555r   c                     \        4       P                  \        \        4      4      R 8X  g   Q h\        4       P                  \	        \        4      4      R8X  g   Q h\        4       P                  \        \        4      4      R8X  g   Q h\        4       P                  \        \        4      4      R8X  g   Q h\        4       P                  \        \        \        \        ) 4      4      R8X  g   Q h\        4       P                  \        \        4      4      R8X  g   Q h\        4       P                  \        \        4      4      R8X  g   Q h\        4       P                  \        \        \        4      4      R8X  g   Q h\        4       P                  \        \        4      4      R8X  g   Q h\        4       P                  \        \        ^\        ^,          4      4      R	8X  g   Q h\        4       P                  \        \        ^4      4      R
8X  g   Q h\        4       p V P                   R8X  g   Q hV P"                  R8X  g   Q hRV P$                  9   g   Q hRV P$                  9  g   Q hR# )r  zlog1p(x)r   zlog2(x)zfma(x, y, -z)r  zcbrt(x)zhypot(x, y)z	lgamma(x)zfmax(3, fmax(x, pow(x, 2)))z
fmin(3, x)r  r   rk   usingN)rD   ri  r`   r   ra   rb   rc   rd   r   r  re   rf   rg   r-   r.   r/   r  r   r  )
c99printers    r|   test_C99CodePrinterr  w  s   ##E!H-;;;##E!H-;;;##DG,	999##DG,	999##C1qbM2oEEE##E!H-;;;##DG,	999##E!QK0MAAA##HQK0K???##C1adO48UUUU##C1I.,>>>!J#%%%%'''22222*33333r   c                      \        R \        \        //4      p V P                  \	        \
        \        R4      ,           4      4      R8X  g   Q hR# )r   z2.1zsinl(x + 2.1L)N)rD   rV   rY   ri  r2   r   r
   )f80_printers    r|   "test_C99CodePrinter__precision_f80r    s=     .4/!BCKs1uU|#3459IIIIr   c            	        aa \        R RR7      p \        RRRR7      p\        R\        \        //4      p\        R\        \        //4      p\        R\        \
        //4      pVP                  \        \        R,           4      4      R8X  g   Q hVP                  \        \        R,           4      4      R8X  g   Q hVP                  \        \        \        R	4      ,           4      4      R
8X  g   Q h\        W#V.. R@O4       EF=  w  ooVV3R lpV! \        V 4      R4       V! \        \        R,           4      R4       V! \        \        R,           4      \        \        R,
          4      ,          R4       V! \        \        R,          4      R4       V! \        \        4      R4       V! \        \        R,          4      R4       V! \!        V^4      R4       V! \!        ^V,          ^,           ^V,          ^,           RR7      R4       V! \!        \        R,           R4      R4       V! \!        \        R\        ,          R,           4      R4       V! \#        \        ^,          4      R4       V! \%        ^\        ,          ^,          4      R4       V! \'        \        R,          4      R4       V! \)        \        4      R4       V! ^\        ,          R 4       V! R\        ,          R!4       V! \        ^,          R"4       V! \        R,          R#4       V! \+        ^\        ,           4      R$4       V! \-        \        R,
          4      R%4       V! \/        \        \0        4      R&4       V! \        R\        ,          R,           4      R'4       V! \        R\        ,          R(,
          4      R)4       V! \3        R\0        ,          R,           4      R*4       V! \5        R\        ,          R,           4      R+4       V! \7        R\        ,          R,           4      R,4       V! \9        R\        ,          R,           4      R-4       V! \;        R\        ,          R\0        ,          4      R.4       V! \=        R\        ,          R,           4      R/4       V! \?        R\        ,          R(,
          4      R04       V! \A        R\0        ,          R,           4      R14       V! \C        R\        ,          R,           4      R24       V! \E        R\        ,          R,           4      R34       V! \G        R\        ,          R,           4      R44       V! \I        R5\        ,          4      R64       V! \K        R5\        ,          4      R74       V! \M        \        4      R84       V! \O        \        4      R94       V! \Q        \        R,           4      R:4       V! \S        \        R,           4      R;4       V! \U        \        \0        \V        ) 4      R<4       V! \Y        \        R\        R,          4      R=4       V! \[        \        R4      R>4       EK@  	  R?# )Ar   Tr   r  r   r   g @zsinf(x + 2.1F)zsin(x + 2.1000000000000001)z2.0zsinl(x + 2.0L)c                 v   < SP                  V 4      VP                  SSP                  4       R 7      8X  g   Q hR# ))r   r   N)ri  formatupper)r   refr{   suffixs   &&r|   check-test_C99CodePrinter__precision.<locals>.check  s-    ??4(CJJ6<<>J,RRRRr   r          @zfabs{s}(x + 2.0{S})g      @z.pow{s}(sin{s}(x + 4.0{S}), cos{s}(x - 2.0{S}))g       @zexp{s}(8.0{S}*x)z
exp2{s}(x)zexpm1{s}(4.0{S}*x)zp % 2Fr   z(2*p + 3) % (3*p + 5)g      @z"fmod{s}(1.0{S}*x + 2.0{S}, 3.0{S})z$fmod{s}(1.0{S}*x, 2.0{S}*x + 3.0{S})zlog{s}((1.0{S}/2.0{S})*x)zlog10{s}((3.0{S}/2.0{S})*x)zlog2{s}(8.0{S}*x)zlog1p{s}(x)zpow{s}(2, x)zpow{s}(2.0{S}, x)zpow{s}(x, 3)zpow{s}(x, 4.0{S})zsqrt{s}(x + 3)zcbrt{s}(x - 2.0{S})zhypot{s}(x, y)zsin{s}(3.0{S}*x + 2.0{S})g      ?zcos{s}(3.0{S}*x - 1.0{S})ztan{s}(4.0{S}*y + 2.0{S})zasin{s}(3.0{S}*x + 2.0{S})zacos{s}(3.0{S}*x + 2.0{S})zatan{s}(3.0{S}*x + 2.0{S})zatan2{s}(3.0{S}*x, 2.0{S}*y)zsinh{s}(3.0{S}*x + 2.0{S})zcosh{s}(3.0{S}*x - 1.0{S})ztanh{s}(4.0{S}*y + 2.0{S})zasinh{s}(3.0{S}*x + 2.0{S})zacosh{s}(3.0{S}*x + 2.0{S})zatanh{s}(3.0{S}*x + 2.0{S})g      E@zerf{s}(42.0{S}*x)zerfc{s}(42.0{S}*x)ztgamma{s}(x)zlgamma{s}(x)zceil{s}(x) + 2zfloor{s}(x) + 2zfma{s}(x, y, -z)z.fmax{s}(8.0{S}, fmax{s}(x, pow{s}(x, 4.0{S})))zfmin{s}(2.0{S}, x)N)r}   rQ  ).r   rD   rV   rW   rX   rY   ri  r2   r   r
   zipr   r%   r)   rb   r`   r   r,   re   rc   ra   r4   rf   rg   r   r5   r   r   r!   r#   r3   r&   r6   r    r   r"   r'   r(   r+   r-   r$   r*   rd   r  r.   r/   )r   r  f32_printerf64_printerr  r  r{   r  s         @@r|   test_C99CodePrinter__precisionr    sP   T"ATD1A .4/!BCK .4/!BCK .4/!BCKs1S5z*.>>>>s1S5z*.KKKKs1U5\>237GGGG+FW	Sc!fhc!c'l12c!c'lCCL(*Z[c!C%j,-d1g|$eAcEl01c!Qi!c!A#'1Q37U35LMc!c'3!EFc!SUS[!#IJc!A#h34eAaCEl9:d1S5k./eAh&adN#c1f)*adN#af)*d1Q3i)*d1S5k01eAqk+,c"Q$)n9:c"Q$)n9:c"Q$)n9:d2a4"9o;<d2a4"9o;<d2a4"9o;<eBqD"Q$!?@d2a4"9o;<d2a4"9o;<d3q52: <=eBqD2I =>eBqD2I =>eBqD2I =>c#a%j-.d3q5k/0eAh'hqk>*ga"fo/0eAFm./c!Qm/0c!S!S&!#STc!Sk/0_ Xr   c                      \        4       p V \        ^4      ,          R8X  g   Q hV ^\        ^4      ,          ,          R8X  g   Q hR# )r   r   	M_SQRT1_2N)rE   r)   rh   )macross    r|   test_get_math_macrosr    s;    F#a&>U"""!DG)+++r   c                     \        R RR7      p \        V \        P                  ! V 4      R7      p\	        V4      p\        V4      R8X  g   Q h\        \        \        \        0R7      p\	        V4      p\        V4      R8X  g   Q hVP                  \        R7      p\        V4      R8X  g   Q h\        \        \        R	4      R7      p\	        V4      p\        4       pR
VP                  9  g   Q hVP                  V4      R8X  g   Q hR
VP                  9   g   Q h\        RRR7      p	\        P                   ! V	\"        \$        0R7      p
\	        V
4      p\        V4      R8X  g   Q h\        \        \        R4      \        0R7      p\	        V4      p\        V4      R8X  g   Q h\        VP&                  VP(                  \        VP*                  R7      p\	        V4      p\        V4      R8X  g   Q hR# )r   Tr   typezint i)r  attrszconst float x)valuezconst float x = M_PIboolz	stdbool.hzbool yur   r  zdouble * const restrict u
__float128zconst __float128 xzconst __float128 x = M_PIN)r   rL   rH   	from_exprrJ   rs   r   rW   rM   as_Declarationr   r   rC   headersri  rK   deducedrN   rk   symbolr  r  )r   var1dcl1var2dcl2adcl2bvar3dcl3r{   r  ptr4dcl4var5dcl5avar5bdcl5bs                   r|   test_ccode_Declarationr    s   T"AADNN1-.DtD;'!!!AGK=9DE<?***b)E<1111ADL)DtDGgoo---??4 H,,,'//)))$A??1]H$=>DtD;5555AtL)+?DE<////T[[$))RtzzBEE<6666r   c                     \        R \        P                  \        P                  \        P                  4      p \        R\        V /RV R/RV R/R\        RV R/RV R//4      pVP                  \        4      R	8X  g   Q hVP                  '       d   Q hVP                  '       d   Q hVP                  '       d   Q hVP                  R
4      R8X  g   Q hVP                  '       d   Q hVP                  '       d   Q hVP                  R08X  g   Q hVP                  \        ^^4      4      R8X  g   Q hVP                  \        \        4      4      R8X  g   Q hVP                  \        R
RR7      4      R8X  g   Q hVP                  \        R,          4      R8X  g   Q h\        \        V \         0R7      p\#        V4      p\%        V4      R8X  g   Q h\        \        V \&        \         0R7      p\#        V4      pVP                  V4      R8X  g   Q h\        \        V \(        P*                  ! ^&4      \         0R7      p\#        V4      pVP                  V4      R\(        P*                  ! V P,                  4      ,          8X  g   Q hR# )	_Float128r   type_literal_suffixesQtype_func_suffixesf128type_math_macro_suffixestype_macros!__STDC_WANT_IEC_60559_TYPES_EXT__r   r  z2.0Qz	1.0Q/2.0Qz
sinf128(x)Fr   zcosf128(2.0Q)z1.0Q/xr  zconst _Float128 xzconst _Float128 x = M_PIf128)r  r  zconst _Float128 x = %sQN)r  r   )rI   rZ   nbitsnmantnexprD   rV   ri  r   r  	librariesr  r   r2   r%   rL   rM   rJ   rs   r   r   r   decimal_dig)r  p128r  r  r  r  dcl5cs          r|   test_C99CodePrinter_custom_typer    s   [(..(..(--PDt$tVn"&&%
 	8
 D <<?c!!!|||~~~{{{?<<&&&|||~~~;;>????<<A';666<<A<///<<B/0OCCC<<4 H,,,AtK=1DE<....Qb6EE<<"@@@@QGMM"$5k]KEE<<";gmmDL\L\>]"]]]]r   c                  (   \        R ^^4      p \        R^^4      p\        R^^4      p\        V R,          4      R8X  g   Q h\        ^V R,          ,          4      R8X  g   Q hVR,          P                  W V,
          4      p\        V4      R8X  g   Q hR# )r   r#  r  zA[0]z3*A[0]z
(A - B)[0]Nrd  )rp   rs   subs)r   r#  r  r&  s       r|   test_MatrixElement_printingr    s    S!QAS!QAS!QA4>V#$#QtW)*)	$QAA8|#$#r   c                  4   \        \        \        ^4      ,           4      R8X  g   Q h\        \        \        \        ^4      4      ,           4      R8X  g   Q h\        \        ^\	        ^4      ,          ,           4      R8X  g   Q h\        \        \	        ^4      ,           4      R8X  g   Q h\        \        \	        ^
4      ,           4      R8X  g   Q h\        \        \
        ,           4      R8X  g   Q h\        \        \
        ^,          ,           4      R8X  g   Q h\        \        \
        ^,          ,           4      R8X  g   Q h\        \        ^\
        ,          ,           4      R8X  g   Q h\        \        ^\
        ,          ,           4      R	8X  g   Q h\        \        ^\        \
        4      ,          ,           4      R
8X  g   Q h\        \        ^\        \
        4      ,          ,           4      R
8X  g   Q h\        \        \        ^4      ,           4      R8X  g   Q h\        \        \        ^4      ,           4      R8X  g   Q h\        \        ^\        ^4      ,          ,           4      R8X  g   Q h\        \        ^\        ^4      ,          ,           4      R8X  g   Q hR# )r   zz + M_Ezz + M_LOG2Ez	z + M_LN2z
z + M_LN10zz + M_PIz
z + M_PI_2z
z + M_PI_4z
z + M_1_PIz
z + M_2_PIzz + M_2_SQRTPIzz + M_SQRT2zz + M_SQRT1_2N)rs   r  r)   rc   r,   r   r4   rh   r   r   r|   test_ccode_math_macrosr  '  s   SV	)))T#a&\!"m333Qs1vX-///SV+++SW---R=J&&&RT?l***RT?l***QrT?l***QrT?l***QtBxZ $4444QtBxZ $4444T!W...T!W...QtAwY?222QtAwY?222r   c                  h    \        \        R 4      4      R 8X  g   Q h\        \        4      R8X  g   Q hR# )r  intN)rs   rH   r[   r   r   r|   test_ccode_Typer  :  s+    g7***;%r   c                     \        \        R 4      4      R8X  g   Q h\        \        \        \        4      ^8  \        \        R^4      .4      4      R8X  g   Q h\        \        \        \        ^4      .4      4      R8X  g   Q h\        \        \        \        R7      4      p \        \        \        RV .4      4      R8X  g   Q h\        \        \        RV .\        \        \        ^,          4      .4      4      R8X  g   Q h\        \        \        \        \         .R	4      \        \#        R
4      \         .R\$        R7      \'        R\        .4      \)        \        4      4      p\        V4      RP+                  . RO4      8X  g   Q hR# )zthis is a commentz/* this is a comment */-z"while (fabs(x) > 1) {
   x -= 1;
}z{
   x += 1;
}r  pwerzdouble pwer(double x)z*double pwer(double x){
   x = pow(x, 2);
}z%d %dhelloz%s %d)file
N)zx;zprintf("%d %d", x, y);z%fprintf(stderr, "%s %d", "hello", y);zpwer(x);z	return x;)rs   r\   rO   r   r   r>   rP   rF   rJ   rL   rV   rR   rS   r?   r]   rQ   r   r_   r^   rT   rU   join)inp_xblocks     r|   test_ccode_codegen_astr  ?  s\    ,-.2KKKKs1vzJq#q$9#:;<	  
 .q!4567	  
 ./E"4%9:>UUUU#D&5'Jq!Q$<O;PQR	   	q!fg|G$a('?VaS!q	E <499 &    r   c                     \        \        \        \        ,          4      \        ,           4      R 8X  g   Q h\        \        \        \        ,           4      \        ,           4      R8X  g   Q h\        R4      p \        \        \        \        ,           4      \        \        V ,           4      ,           4      R8X  g   Q h\        RRR7      w  rp\        W#,           4      p\        \        W,           4      4      p\        V4      R8X  g   Q hR# )	zz + x*yzz + (x + y)wz(w + z) + (x + y)zp q rTr   zexp(p + (q + r))N)rs   r   r   r   r  r   r   r)   )r  r  rb  r   q_rr   s         r|   test_ccode_UnevaluatedExprr  f  s    Q'!+,	999Q'!+,===AQ'/!a%*@@AEXXXXgD)GA!
!%
 Cs15z?D;,,,,r   c                  R    \        . RO4      R8X  g   Q h\        R4      R8X  g   Q hR# )r   z	{2, 3, 4}N)r   r   r4  rr   r   r   r|    test_ccode_array_like_containersr  r  s&    >[(((>[(((r   c                      \        \        \        4      4      R 8X  g   Q h\        \        \        4      4      R8X  g   Q hR# )zisinf(x)zisnan(x)N)rs   rj   r   ri   r   r   r|   test_ccode__isinf_isnanr  v  s.    q?j(((q?j(((r   N)
sympy.corer   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   sympy.core.relationalr   r   r   r   r   r   sympy.functionsr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   
sympy.setsr9   sympy.logicr:   r;   r<   sympy.codegenr=   r>   r?   sympy.testing.pytestr@   rA   sympy.printing.codeprinterrB   sympy.printing.crC   rD   rE   sympy.codegen.astrF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   sympy.codegen.cfunctionsr`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   sympy.codegen.cnodesrk   sympy.utilities.lambdifyrl   sympy.tensorrm   rn   sympy.matricesro   rp   rq   rs   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r0  r5  r>  rC  rK  rM  rT  rV  r\  r`  rf  rj  ro  rw  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r|   <module>r     s        ; :       
  0 0 5 5 . E L L      
 k j j j ) 9 ) = = ,
'
1a''Q0j
6>gT&
<"BY*&*@&'',T	 :?=88N4*3B,@6R8,)^F
%PhV =
864& J J
91x,7@&^R
%3& 
%N	-))r   