Ë
    óÿæiûy  ã                   ó¤  — 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 d dlmZmZmZmZmZm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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@mAZAmBZB d dlCmDZDmEZE d dlFmGZG d d	lHmIZImJZJmKZK d d
lLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZf d dlgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZr d dlsmtZt d dlumvZv d dlwmxZxmyZy d dlzm{Z{m|Z|m}Z} d dlFm~Z~  ed«      \  ZZ€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�d„ 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šd+„ Z›d,„ Zœd-„ Z�d.„ Zžd/„ ZŸd0„ Z d1„ Z¡d2„ Z¢d3„ Z£d4„ Z¤d5„ Z¥d6„ Z¦d7„ Z§d8„ Z¨d9„ Z©d:„ ZªeEd;„ «       Z«d<„ Z¬d=„ Z­d>„ Z®d?„ Z¯d@„ Z°dA„ Z±dB„ Z²dC„ Z³dD„ Z´dE„ ZµdF„ Z¶yG)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                  óV   —  G d„ dt         «      } t         | t        «      «      dk(  sJ ‚y )Nc                   ó   — e Zd Zd„ Zy)útest_printmethod.<locals>.fabsc                 óD   — d|j                  | j                  d   «      z  S )Nzfabs(%s)r   )Ú_printÚargs)ÚselfÚprinters     úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sympy/printing/tests/test_c.pyÚ_ccodez%test_printmethod.<locals>.fabs._ccode#   s   € Ø §¡¨t¯y©y¸©|Ó <Ñ<Ð<ó    N)Ú__name__Ú
__module__Ú__qualname__r}   © r~   r|   Úfabsrv   "   s   „ ó	=r~   rƒ   úfabs(x))r   rs   Úx)rƒ   s    r|   Útest_printmethodr†   !   s&   € ô=Œsô =ô ‘”a“‹>˜YÒ&Ð&Ñ&r~   c                  ó¦   — t        t        t        «      «      dk(  sJ ‚t        t        dz  «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚y )Nzsqrt(x)ç      à?)rs   r4   r…   r‚   r~   r|   Útest_ccode_sqrtr‰   )   sD   € Ü””a“‹>˜YÒ&Ð&Ð&Ü”�C‘‹=˜IÒ%Ð%Ð%Ü””a“‹>˜YÒ&Ð&Ñ&r~   c                  óÔ  — t        t        dz  «      dk(  sJ ‚t        t        t        dz  z  «      dk(  sJ ‚t        dt	        t        dt        z  «      «      } t        d | t        «      dz  t        t        t        z  z
  z  z  t        dz  t        z   z  «      dk(  sJ ‚t        t        d	z  «      d
k(  sJ ‚t        t        t        dd«      z  «      dk(  sJ ‚t        t        t        dd«      z  t        t        i¬«      dk(  sJ ‚d„ dfd„ dfg}t        t        dz  d|i¬«      dk(  sJ ‚t        t        dz  d|i¬«      dk(  sJ ‚t        t        t        dd«      z  d|i¬«      dk(  sJ ‚d„ d„ fd„ dfg}t        dt        z  d|i¬«      dk(  sJ ‚t        t        dz  d|i¬«      dk(  sJ ‚t        t        dt        t        t        t        t        d ¬!«      d"d ¬!«      d ¬!«      «      d#k(  sJ ‚y )$Né   z	pow(x, 3)zpow(x, pow(y, 3))Úgé   é   g      @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                 ó   — |j                   S ©N©Ú
is_integer©Úbaser)   s     r|   Ú<lambda>z test_ccode_Pow.<locals>.<lambda>8   s   €  c§n¢nr~   Údpowic                 ó   — |j                    S r“   r”   r–   s     r|   r˜   z test_ccode_Pow.<locals>.<lambda>9   s   € ¨#¯.©.Ñ&8r~   Úpowr   ©Úuser_functionszdpowi(x, 3)rˆ   zpow(x, 0.5)é   é   zpow(x, 16.0/5.0)c                 ó   — | dk(  S ©Nr�   r‚   r–   s     r|   r˜   z test_ccode_Pow.<locals>.<lambda>=   ó   €  t¨q¢yr~   c                 ó   — d|z  S )Nzexp2(%s)r‚   r–   s     r|   r˜   z test_ccode_Pow.<locals>.<lambda>=   s
   € ÀJÐQTÒDTr~   c                 ó   — | dk7  S r¡   r‚   r–   s     r|   r˜   z test_ccode_Pow.<locals>.<lambda>>   r¢   r~   úexp2(x)z	pow(x, 2)éþÿÿÿF©Úevaluateéÿÿÿÿz
-2*x/(y*y))
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¤&¬¨A¬a©C£.Ó1€AÜ�‘A”a“D˜‘H¤¤A¤q¡D¡Ñ)Ñ)¬1¨a©4´!©8Ñ4Ó5Ø6ò7ð 7ð 7ä”�D‘‹>˜WÒ$Ð$Ð$Ü””H˜Q “NÑ"Ó#Ð'8Ò8Ð8Ð8Ü””H˜Q “NÑ"´$¼°ÔAÐEYÒYÐYÐYÙ4°gÐ>Ù8¸%Ð@ðB€Kä”�A‘ u¨kÐ&:Ô;¸}ÒLÐLÐLÜ”�C‘¨°Ð(<Ô=ÀÒNÐNÐNÜ””H˜R “OÑ#°U¸KÐ4HÔIÐM_Ò_Ð_Ð_Ù0Ñ2TÐUÙ0°%Ð8ð:€Lô �”A‘ u¨lÐ&;Ô<À	ÒIÐIÐIÜ”�A‘ u¨lÐ&;Ô<ÀÒKÐKÐKä”�RœœC¤¤A¤a°Ô 7¸ÀeÔLØ9>ô@ó AØDPòQð Qñ Qr~   c                  ó`   — t        t        t        t        t        z  «      dddœ¬«      dk(  sJ ‚y )NÚmy_maxÚmy_pow)r.   r   rœ   zmy_max(x, my_pow(x, 2)))rs   r.   r…   r‚   r~   r|   Útest_ccode_Maxr±   G   s'   € ä””Q”qœ‘s“°(À(Ñ+KÔLÐPiÒiÐiÑir~   c                  ó˜   — t        t        d«      Ž } dD ]4  }t        | |¬«      }|j                  d«      |j                  d«      k(  rŒ4J ‚ y )Nza[0:50])Úc89Úc99Úc11©ÚstandardÚ(Ú))r/   r   rs   Úcount)Úbig_minÚcurr_standardÚoutputs      r|   Útest_ccode_Min_performancer¾   L   sG   € ä”7˜9Ó%Ð&€GÛ.ˆÜ�w¨Ô7ˆØ�|‰|˜CÓ  F§L¡L°Ó$5Ó5Ð5Ð5ñ /r~   c                  óN  — t        t        d«      «      dk(  sJ ‚t        t        «      dk(  sJ ‚t        t        d¬«      dk(  sJ ‚t        t         d¬«      dk(  sJ ‚t        t        «      dk(  sJ ‚t        t         d	¬«      d
k(  sJ ‚t        t        t        t
        i¬«      dk(  sJ ‚y )NrŽ   ÚM_EÚM_PIr³   r¶   ÚHUGE_VALz	-HUGE_VALÚINFINITYr´   z	-INFINITYr�   ÚM_PIl)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¬ /Ô2°gÒ=Ð=Ñ=r~   c                  ó  — t        dt        z  «      dt        j                  d«      z  k(  sJ ‚t        dt        z  «      dt        j                  d«      z  k(  sJ ‚t        dt        z  «      dt	        j                  d«      z  k(  sJ ‚y )Nr�   z,const double GoldenRatio = %s;
2*GoldenRatioé   z$const double Catalan = %s;
2*Catalanz*const double EulerGamma = %s;
2*EulerGamma)rs   r   Úevalfr   r   r‚   r~   r|   Útest_ccode_constants_otherrÉ   ^   sˆ   € Ü�”;‘ÓÐ#RÔU`×UfÑUfÐgiÓUjÑ#jÒjÐjÐjÜØ	Œ'‰	óØ=ÄÇÁÈbÓ@QÑQòRð Rð Rä�”:‘ÓÐ"OÔR\×RbÑRbÐceÓRfÑ"fÒfÐfÑfr~   c                  óð  — t        t        dd«      «      dk(  sJ ‚t        t        dd«      t        t        i¬«      dk(  sJ ‚t        t        dd«      «      dk(  sJ ‚t        t        dd	«      «      d
k(  sJ ‚t        t        dd	«      t        t        i¬«      dk(  sJ ‚t        t        dd	«      «      dk(  sJ ‚t        t        dd	«      t        t        i¬«      dk(  sJ ‚t        t        t        dd«      z   «      dk(  sJ ‚t        t        t        dd«      z   t        t        i¬«      dk(  sJ ‚t        t        dd«      t        z  «      dk(  sJ ‚t        t        dd«      t        z  t        t        i¬«      dk(  sJ ‚y )Nr‹   é   z3.0/7.0r�   z	3.0L/7.0Lé   é	   Ú2éùÿÿÿz-3.0/7.0z
-3.0L/7.0Léýÿÿÿzx + 3.0/7.0zx + 3.0L/7.0Lz(3.0/7.0)*xz(3.0L/7.0L)*x)rs   r   rV   rY   r…   r‚   r~   r|   Útest_ccode_RationalrÑ   e   sI  € Ü”˜!˜Q“Ó  IÒ-Ð-Ð-Ü”˜!˜Q“¬t´W¨oÔ>À+ÒMÐMÐMÜ”˜"˜a“Ó! SÒ(Ð(Ð(Ü”˜!˜R“Ó! ZÒ/Ð/Ð/Ü”˜!˜R“´´g¨Ô?À<ÒOÐOÐOÜ”˜"˜bÓ!Ó" iÒ/Ð/Ð/Ü”˜"˜bÓ!´´w°Ô@ÀKÒOÐOÐOÜ””X˜a “^Ñ#Ó$¨Ò5Ð5Ð5Ü””X˜a “^Ñ#´4¼°/ÔBÀoÒUÐUÐUÜ”˜!˜Q“¤Ñ!Ó" mÒ3Ð3Ð3Ü”˜!˜Q“¤Ñ!´´w°Ô@ÀOÒSÐSÑSr~   c                  óh   — t        t        d«      «      dk(  sJ ‚t        t        d«      «      dk(  sJ ‚y )NéC   Ú67r©   z-1)rs   r	   r‚   r~   r|   Útest_ccode_IntegerrÕ   s   s0   € Ü”˜“Ó Ò%Ð%Ð%Ü”˜“Ó Ò%Ð%Ñ%r~   c                  ó^   — t        t        t        «      t        t        «      z  «      dk(  sJ ‚y )Nzpow(sin(x), cos(x)))rs   r2   r…   r%   r‚   r~   r|   Útest_ccode_functionsr×   x   s#   € Ü””Q“œ3œq›6Ñ!Ó"Ð&;Ò;Ð;Ñ;r~   c            	      óÔ  — t        d«      } t        dt        | d| z  «      «      }t         || «      «      dk(  sJ ‚t        dt        | d| z  t        z  «      «      }t         || «      «      dt	        j
                  d«      z  k(  sJ ‚t        d«      }t        dt        d	d
¬«      «      }t        dt        | | d| z   z  d| z   z  «      «      }t         |||   «      ||   ¬«      dk(  sJ ‚y )Nr…   rŒ   r�   z2*xz&const double Catalan = %s;
2*x/CatalanrÇ   ÚAÚiÚnT©ÚintegerrŽ   ©Ú	assign_toz@for (int i=0; i<n; i++){
   A[i] = (A[i] + 1)*(A[i] + 2)*A[i];
})r   rl   r   rs   r   rÈ   rm   rn   )r…   rŒ   rÙ   rÚ   s       r|   Útest_ccode_inline_functionrà   |   sï   € Ü�‹€AÜ˜S¤&¨¨A¨a©C£.Ó1€AÜ‘�1“‹;˜%ÒÐÐÜ˜S¤&¨¨A¨a©C´©KÓ"8Ó9€AÜÙ	ˆ!‹óØ:¼W¿]¹]È2Ó=NÑNòOð Oð Oä�CÓ€AÜˆC”˜ dÔ+Ó,€AÜ˜S¤&¨¨A¨q°1©u©I°q¸1±uÑ,=Ó">Ó?€AÜ‘�1�Q‘4“ A a¡DÔ)ð	òð ñ r~   c                  ór  — t        t        t        «      d¬«      dk(  sJ ‚t        t        «      5  t        t        t        «      d¬«       d d d «       t        t        «      5  t        t        t        «      dd¬«       d d d «       t        t        t        «      dd¬«       y # 1 sw Y   ŒXxY w# 1 sw Y   Œ1xY w)NÚC99r¶   ú	tgamma(x)ÚC89F)r·   Úallow_unknown_functionsT)rs   r+   r…   r@   rB   r‚   r~   r|   Útest_ccode_exceptionsræ   �   sw   € Ü””q“ EÔ*¨kÒ9Ð9Ð9Ü	Ô.Õ	/ÜŒe”A‹h Õ'÷ 
0ä	Ô.Õ	/ÜŒe”A‹h ÀÕF÷ 
0ô 
Œ%”‹(˜U¸DÖA÷ 
0Ð	/úç	/Ð	/ús   ¯B!Á!B-Â!B*Â-B6c                  óŠ  — t        t        t        «      «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚t        t	        t        «      «      dk(  sJ ‚t        dd¬«      \  } }t        t        t        | «      t        |«      «      «      dk(  sJ ‚t        t        | |«      «      dk(  sJ ‚t        d	dd¬
«      \  }}t        t        ||«      «      dk(  sJ ‚t        t        ||dz   «      «      dk(  sJ ‚t        t        ddd¬«      «      dk(  sJ ‚t        t        ddd¬«       «      dk(  sJ ‚t        | t        ||«      z  «      dk(  sJ ‚t        t        ||«      |z  «      dk(  sJ ‚t        ddd¬«      }t        t        | |«      «      dk(  sJ ‚t        t        |«      «      dk(  sJ ‚t        t        |«      «      dk(  sJ ‚y )Nú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 % p2r‹   zp1 % (p2 + 3)rÐ   rÏ   Fr§   z(-3) % (-7)rË   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))))	rs   r$   r…   r   r+   r   r   r7   r8   )ÚrÚsÚp1Úp2rÛ   s        r|   Útest_ccode_functions2rñ   ˜   s³  € Ü”œ“Ó 	Ò)Ð)Ð)Ü””Q“‹=˜IÒ%Ð%Ð%Ü””q“‹?˜kÒ)Ð)Ð)Ü�5˜tÔ$�D€A€qÜ””W˜Q“Z¤¨£Ó,Ó-ð 2Fò Fð Fð Fä”�Q˜“Ó˜|Ò+Ð+Ð+Ü�W d°TÔ:�F€BˆÜ”�R˜“Ó Ò*Ð*Ð*Ü”�R˜˜a™“Ó! _Ò4Ð4Ð4Ü”�R˜ eÔ,Ó-°Ò>Ð>Ð>Ü”#�a˜ UÔ+Ð+Ó,°
Ò:Ð:Ð:Ü�”3�r˜2“;‘Ó =Ò0Ð0Ð0Ü”�R˜“˜a‘Ó Ð$5Ò5Ð5Ð5Ü�˜T¨DÔ1€AÜ”�a�R˜“Ó Ò,Ð,Ð,Ü”˜1“ÓÐ"oÒoÐoÐoÜ”�q“‹?ÐXÒXÐXÑXr~   c                  óØ  — t        dd¬«      } t        dd¬«      }dd„ dfd	„ d
fgdœ}t        t        | «      |¬«      dk(  sJ ‚t        t        | «      |¬«      dk(  sJ ‚t        t        |«      |¬«      dk(  sJ ‚t	        d«      }t        d«      }t        dd«      D ]"  } |t        dd«      t	        d|› �«      |«      }Œ$ t        |ddi¬«      }d|v sJ ‚|j                  d«      dk(  sJ ‚y )Nr…   FrÜ   rÛ   TÚceilc                 ó   — | j                    S r“   r”   ©r…   s    r|   r˜   z+test_ccode_user_functions.<locals>.<lambda>²   s   € ˜qŸ|™|Ñ+r~   rƒ   c                 ó   — | j                   S r“   r”   rõ   s    r|   r˜   z+test_ccode_user_functions.<locals>.<lambda>²   s   € ÀÇÂr~   Úabs)r$   r   rœ   rè   r„   úabs(n)ÚaÚmuladdr   éd   rŽ   r�   Úa99)	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àÙ+¨VÐ4Ñ7MÈuÐ6UÐVñÐô ”˜“Ð,<Ô=ÀÒJÐJÐJÜ”�Q“Ð(8Ô9¸YÒFÐFÐFÜ”�Q“Ð(8Ô9¸XÒEÐEÐEä�#‹;€DÜ�hÓ€FÜ�1�cŽ]ˆá”h˜q !“n¤f¨q°°¨W£o°tÓ<‰ð ô � h¨xÐ%8Ô
9€CØ�C‰<Ðˆ<Ø�9‰9�XÓ #Ò%Ð%Ñ%r~   c            
      ó˜  — t        d«      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚t        d«      dk(  sJ ‚t        t        j                  «      dk(  sJ ‚t        t        t
        z  «      dk(  sJ ‚t        t        t
        z  «      dk(  sJ ‚t        t         «      dk(  sJ ‚t        t        t
        z  t        z  «      dk(  sJ ‚t        t        t
        z  t        z  «      d	k(  sJ ‚t        t        t
        z  t        z  «      d
k(  sJ ‚t        t        t
        z  t        z  «      dk(  sJ ‚t        t        t
        z  «      dk(  sJ ‚t        t        t
        z  t        z  «      dk(  sJ ‚t        t        t        t
        «      «      dk(  sJ ‚t        t        t        t        t
        z  t        t        t        «      «      «      dk(  sJ ‚y )NTÚ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)))	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Ò,Ð,Ð,Ü”œAœq¤1™u¤g¬a´£mÓ4Ó5Ð9ÒÐÑr~   c                  óœ  — t        t        t        t        «      «      dk(  sJ ‚t        t	        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚t        t        t        t        «      «      dk(  sJ ‚y )Nzx == yzx != yzx <= yzx < yzx > yzx >= y)	rs   r   r…   rª   r   r   r   r   r   r‚   r~   r|   Útest_ccode_Relationalr  Õ   s’   € Ü””A”q“‹?˜hÒ&Ð&Ð&Ü””A”q“‹?˜hÒ&Ð&Ð&Ü””A”q“‹?˜hÒ&Ð&Ð&Ü””A”q“‹?˜gÒ%Ð%Ð%Ü””A”q“‹?˜gÒ%Ð%Ð%Ü””A”q“‹?˜hÒ&Ð&Ñ&r~   c                  óÞ  ‡ — t        t        t        dk  ft        dz  df«      Š t        ‰ «      dk(  sJ ‚t        ‰ d¬«      dk(  sJ ‚t        t        t        dk  ft        dz   t        dk  ft        dz  df«      Š t        ‰ «      dk(  sJ ‚t        ‰ d¬«      d	k(  sJ ‚t        t        t        dk  ft        dz  t        dkD  ft        t        «      t        d
kD  f«      Š t	        t
        ˆ fd„«       y )NrŽ   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);
}r   c                  ó   •— t        ‰ «      S r“   rr   ©rÿ   s   €r|   r˜   z&test_ccode_Piecewise.<locals>.<lambda>  s	   ø€ œu Tœ{r~   )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                  óH   — ddl m}   | t        «      }t        |«      dk(  sJ ‚y )Nr   )Úsincz)(((x != 0) ? (
   sin(x)/x
)
: (
   1
))))Ú(sympy.functions.elementary.trigonometricr  r…   rs   )r  rÿ   s     r|   Útest_ccode_sincr    s)   € Ý=Ù”‹7€DÜ�‹;ðòð ñ r~   c            	      óv  — t        dt        t        t        dk  ft        dz   t        dk  ft        dz  df«      z  «      } | dk(  sJ ‚t        t        z  t        z  t        dz  z   t        dz  z   t        dt        dk  fd«      z   t        t        «      z   dz
  }t        |«      dk(  sJ ‚t        |d	¬
«      dk(  sJ ‚y )Nr�   rŽ   TzD2*((x < 1) ? (
   x
)
: ((x < 2) ? (
   x + 1
)
: (
   pow(x, 2)
)))r   rˆ   )rŽ   TzNpow(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;)rs   r0   r…   rª   r  r%   )Úprÿ   s     r|   Útest_ccode_Piecewise_deepr    sÊ   € Üˆa”	œ1œa !™e˜*¤q¨1¡u¬a°!©e n´q¸!±t¸T°lÓCÑCÓD€AØðò	ð 	ð 	ô ŒQ‰3Œq‰5”1�a‘4‰<œ!˜Q™$Ñ¤¨A¬q°3©w¨<¸Ó!CÑCÄcÌ!ÃfÑLÈqÑP€DÜ�‹;ðòð ð ô � Ô%ðò ð  ñ  r~   c                  ó\   — t        t        dk  t        t        «      } t	        | «      dk(  sJ ‚y )NrŽ   z((x < 1) ? (
   y
)
: (
   z
)))r:   r…   rª   r  rs   r  s    r|   Útest_ccode_ITEr  1  s/   € ÜŒq�1‰u”aœÓ€DÜ�‹;ðòð ñ r~   c                  ó&   — t        t        d„ «       y )Nc                  ó6   — t        t        t        «      d¬«      S )NÚgarbage)Úmethod)rs   r2   r…   r‚   r~   r|   r˜   z%test_ccode_settings.<locals>.<lambda>=  s   € œe¤C¬£F°9Õ=r~   )r@   Ú	TypeErrorr‚   r~   r|   Útest_ccode_settingsr  <  s   € Ü
Œ9Ñ=Õ>r~   c                  ó  — t        dd¬«      \  } }}}t        d|«      t        d|«      t        d|«      }}}t        d«      |   }t        d«      ||f   }t        d	«      |||f   }	t        «       }
|
j	                  |«      d
k(  sJ ‚|
j	                  |«      d||z  |z   z  k(  sJ ‚|
j	                  |	«      d||z  |z  ||z  z   |z   z  k(  sJ ‚t        dd¬«      ||f   }|
j	                  |«      dd|z  |z   z  k(  sJ ‚t        ddd¬«      ||f   }t        |«      d|d|z  z   z  k(  sJ ‚t        ddd| f|¬«      ||f   }t        |«      dk(  sJ ‚t        d| ||f|¬«      }t        ||||f   «      dk(  sJ ‚t        |dd|f   «      dk(  sJ ‚y )Nzs n m oTrÜ   rÚ   ÚjÚkr…   rÙ   ÚBzx[j]zA[%s]zB[%s])rŸ   r‹   ©Úshaper‹   ÚF)r#  ÚstridesrŸ   )é   r&  rŽ   )r#  r%  ÚoffsetzA[o + s*j + i]©r%  r'  zA[m*j + n*k + o + s*i]r�   zA[3*m + n*k + o + 2*s])r   rn   rm   rD   Ú_print_Indexedrs   )rî   rÛ   ÚmÚorÚ   r  r   r…   rÙ   r!  r  ÚAbases               r|   Útest_ccode_Indexedr-  @  sÖ  € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�#�q‹kœ3˜s A›;¬¨C°«ˆ!€q€Aä�CÓ˜Ñ€AÜ�CÓ˜˜A˜Ñ€AÜ�CÓ˜˜A˜q˜Ñ!€AäÓ€Aà×Ñ˜AÓ &Ò(Ð(Ð(Ø×Ñ˜AÓ '¨Q¨q©S°©UÑ"3Ò3Ð3Ð3Ø×Ñ˜AÓ '¨Q¨q©S°©U°1°Q±3©Y°q©[Ñ"9Ò9Ð9Ð9ä�C˜uÔ% a¨ dÑ+€AØ×Ñ˜AÓ '¨Q¨q©S°1©WÑ"5Ò5Ð5Ð5ä�C˜u¨cÔ2°1°a°4Ñ8€AÜ�‹8�w ! a¨¡c¡'Ñ*Ò*Ð*Ð*ä�C˜w°°A°¸qÔAÀ!ÀQÀ$ÑG€AÜ�‹8Ð'Ò'Ð'Ð'ä˜ a¨¨A Y°qÔ9€EÜ��q˜!˜Q�w‘Ó Ð$<Ò<Ð<Ð<Ü��q˜!˜Q�w‘Ó Ð$<Ò<Ð<Ñ<r~   c                  óÚ   — t        t        dd«      «      dk(  sJ ‚t        t        dddd¬«      «      dk(  sJ ‚t        t        dd«      «      d	k(  sJ ‚t        t        dd
«      «      dk(  sJ ‚y )Nr…   Úijzx[i][j]Úklr+  r(  zx[i*k + j*l + o])r‹   zx[3])r‹   é   rŸ   z
x[3][4][5])rs   rG   r‚   r~   r|   Útest_Elementr2  \  so   € Ü”˜˜dÓ#Ó$¨	Ò1Ð1Ð1Ü”˜˜d¨D¸Ô=Ó>ÐBTÒTÐTÐTÜ”˜˜dÓ#Ó$¨Ò.Ð.Ð.Ü”˜˜gÓ&Ó'¨<Ò7Ð7Ñ7r~   c                  ó@  — d} t        d| f¬«      }t        d| f¬«      }t        d| dz
  f¬«      }t        d| dz
  «      }t        ||   ||dz      ||   z
  ||dz      ||   z
  z  «      }t        |j                  |j
                  d¬	«      }|d
|dz   ›d|dz   ›d�k(  sJ ‚y )NrŸ   rª   r"  r…   ÚDyrŽ   rÚ   F)rß   ÚcontractzDy[i] = (y[z] - y[i])/(x[z
] - x[i]);)rm   rn   r   rs   ÚrhsÚlhs)Úlen_yrª   r…   r4  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Ü
ˆ2ˆa‰5�1�Q�q‘S‘6˜!˜A™$‘;  1 Q¡3¡¨¨!©¡Ñ-Ó.€AÜ�!—%‘% 1§5¡5°5Ô9€EÙÀÀAÃÀqÈ1ÃuÐMÒMÐMÑMr~   c                  óò   — t        dd¬«      \  } }t        d«      }t        d«      }t        d«      }t        d|«      }t        d| «      }d	|| z  |z   z  d
z   }t        |||f   ||   z  ||   ¬«      |k(  sJ ‚y )Nú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Þ   ©r   rm   rn   rs   )rÛ   r*  rÙ   r…   rª   rÚ   r  rî   s           r|   Útest_ccode_loops_matrix_vectorr@  n  s—   € Ü�5 $Ô'�D€A€qÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€Að	,ð
 01°©s°Q©wñ	8ð	ñ	ð ô ��1�a�4‘˜˜1™‘¨¨1©Ô.°!Ò3Ð3Ñ3r~   c                  óî   — t        ddt        ¬«      \  } }t        d«      }t        d«      }t        | |«      } d| j                  j
                  |j
                  dœz  }t        ||    ||    ¬«      |k(  sJ ‚y )	Nz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Þ   )r   r   rm   rn   ÚlabelÚdummy_indexrs   )rÚ   r*  r…   rª   Úexpecteds        r|   Útest_dummy_loopsrH  ƒ  sw   € Ü�5 $¬EÔ2�D€A€qÜ�CÓ€AÜ�CÓ€AÜˆAˆq‹	€Að	ð —7‘7×&Ñ&°!·-±-Ñ@ñ	A€Hô ��1‘  1¡Ô&¨(Ò2Ð2Ñ2r~   c                  ó   — t        dd¬«      \  } }t        d«      }t        d«      }t        d«      }t        d«      }t        d|«      }t        d	| «      }d
|| z  |z   z  dz   }t        |||f   ||   z  ||   z   ||   z   ||   ¬«      |k(  sJ ‚y )Nr=  TrÜ   rÙ   r…   rª   r  rÚ   r  z‡for (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];
r>  rÞ   r?  )	rÛ   r*  rÙ   r…   rª   r  rÚ   r  rî   s	            r|   Útest_ccode_loops_addrJ  ’  s³   € Ü�5 $Ô'�D€A€qÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€Að	,ð
 01°©s°Q©wñ	8ð	ñ	ð ô ��1�a�4‘˜˜1™‘  !¡Ñ$ q¨¡tÑ+°q¸±tÔ<ÀÒAÐAÑAr~   c                  ó€  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d|«      }t        d| «      }t        d	|«      }	t        d
|«      }
d|| z  |z  |z  ||z  |z  z   |	|z  z   |
z   ›d||z  |z  |	|z  z   |
z   ›d�dz   }t        |||	|
f   ||||	|
f   z  ||   ¬«      |k(  sJ ‚y )Nún m o pTrÜ   rù   Úbrª   rÚ   r  r   Úlz³for (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Þ   r?  )rÛ   r*  r+  r  rù   rM  rª   rÚ   r  r   rN  rî   s               r|   Ú&test_ccode_loops_multiple_contractionsrQ  ¨  s÷   € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹�Að 78¸±c¸!±e¸A±gÀÀ!ÁÀAÁ±oÈÈ!ÉÑ6KÈaÓ6OÐQRÐSTÑQTÐUVÑQVÐYZÐ[\ÑY\ÑQ\Ð_`ÓQ`ð	bð	ñ	ð ô ��1�a˜�7‘˜A˜a  A q˜j™MÑ)°Q°q±TÔ:¸aÒ?Ð?Ñ?r~   c                  óæ  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d«      }t        d|«      }t        d	| «      }	t        d
|«      }
t        d|«      }d|| z  |z  |z  |	|z  |z  z   |
|z  z   |z   ›d|| z  |z  |z  |	|z  |z  z   |
|z  z   |z   ›d|	|z  |z  |
|z  z   |z   ›d�dz   }t        |||	|
|f   |||	|
|f   z   ||	|
|f   z  ||   ¬«      |k(  sJ ‚y )NrL  TrÜ   rù   rM  r
  rª   rÚ   r  r   rN  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++){
      for (int k=0; k<o; k++){
         for (int l=0; l<p; l++){
            y[i] = (a[z] + b[z])*c[rO  rP  rÞ   r?  )rÛ   r*  r+  r  rù   rM  r
  rª   rÚ   r  r   rN  rî   s                r|   Útest_ccode_loops_addfactorrS  Ã  sf  € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹�Að ABÀ!ÁÀAÁÀaÁÈ!ÈAÉ#ÈaÉ%ÁÐRSÐTUÑRUÑ@UÐXYÓ@YÐ[\Ð]^Ñ[^Ð_`Ñ[`ÐabÑ[bÐefÐghÑehÐijÑejÑ[jÐmnÐopÑmpÑ[pÐstÓ[tÐvwÐxyÑvyÐz{Ñv{Ð~ð  ABñ  Bñ  wBð  EFó  wFð	Gð	ñ	ð ô �!�A�q˜!˜Q�J‘- ! A q¨!¨Q J¡-Ñ/°°1°a¸°7±Ñ;ÀqÈÁtÔLÐPQÒQÐQÑQr~   c                  óˆ  — t        dd¬«      \  } }}}t        d«      }t        d«      }t        d«      }t        d«      }t        d|«      }t        d	| «      }	t        d
|«      }
d}d|| z  |z  |	|z  z   |
z   z  dz   }d||z  |
z   z  dz   }d|| z  |	z   z  dz   }t        ||	   |||	f   z  ||
   |||
f   z  z   ||	   ||
   z  |||	|
f   z  z   ||   ¬«      }|||z   |z   |d d z   k(  s\|||z   |z   |d d z   k(  sJ|||z   |z   |d d z   k(  s8|||z   |z   |d d z   k(  s&|||z   |z   |d d z   k(  s|||z   |z   |d d z   k(  sJ ‚y y y y y y )NrL  TrÜ   rù   rM  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Þ   r©   r?  )rÛ   r*  r+  r  rù   rM  r
  rª   rÚ   r  r   Ús0Ús1Ús2Ús3s                  r|   Útest_ccode_loops_multiple_termsrY  ß  s  € Ü˜¨DÔ1�J€A€qˆ!ˆQÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜ�CÓ€AÜˆC�‹€AÜˆC�‹€AÜˆC�‹€Að	ð ð	4ð 89¸±s¸1±u¸qÀ¹s±{ÀQ±ñ	Hð	ñ		ð ð	,à/0°©s°Q©wñ	8ð	ñ	ð ð	,à/0°©s°Q©wñ	8ð	ñ	ð ô 	ˆa�‰d�1�Q˜�T‘7‰l˜Q˜q™T ! A q D¡'™\Ñ)¨A¨a©D°°1±©I°a¸¸1¸a¸±jÑ,@Ñ@ÈAÈaÉDÔQ€AØ��b‘˜2‘  3 B Ñ'Ò'Ø��b‘˜2‘  3 B Ñ'Ò'Ø��b‘˜2‘  3 B Ñ'Ò'Ø��b‘˜2‘  3 B Ñ'Ò'Ø��b‘˜2‘  3 B Ñ'Ò'Ø��b‘˜2‘  3 B Ñ'Ò'ð)ð (ð
 (ð (ð (ð (ð (ð (r~   c                  óz   — t         t        z   t        t        «      z   t        z   } t	        | t        g¬«      dk(  sJ ‚y )N©Údereferencezx + y + (*z) + sin((*z)))r…   rª   r2   r  rs   r  s    r|   Útest_dereference_printingr]    s0   € ÜŒq‰5”3”q“6‰>œAÑ€DÜ�¤A 3Ô'Ð+EÒEÐEÑEr~   c            	      óX  — t        t        t        z  t        dt        z   t        dkD  ft        df«      t	        t
        «      g«      } t        ddd«      }t        | |«      dk(  sJ ‚t        d|d   z  t        dkD  f|d   df«      t	        |d	   «      z   |d
   z   }t        |«      dk(  sJ ‚t        ddd«      }t        ddd«      }t        t	        |d	   «      dt        |d   «      g|d	   |d   z   |d   dgd|d   z  |d	   z  t        |d
   «      dz   dgg«      }t        ||«      dk(  sJ ‚y )Nr�   r   TrÙ   r‹   rŽ   zPA[0] = x*y;
if (y > 0) {
   A[1] = x + 2;
}
else {
   A[1] = y;
}
A[2] = sin(z);)r�   r   )rŽ   r   ©r   r   z:((x > 0) ? (
   2*A[2]
)
: (
   A[2]
)) + sin(A[1]) + A[0]ÚqrŸ   ÚM)r‹   r   )r1  r   r1  z�M[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;)
ro   r…   rª   r0   r2   r  rp   rs   r%   r4   )ÚmatrÙ   rÿ   r`  ra  r*  s         r|   Útest_Matrix_printingrc    s\  € ä
”!”A‘#”y !¤a¡%¬¨1© ´°4¨yÓ9¼3¼q»6ÐBÓ
C€CÜ�S˜!˜QÓ€AÜ��a‹=ð	òð ð ô �a˜˜$™‘i¤ Q¡Ð'¨!¨D©'°4¨Ó9¼CÀÀ$Á»LÑHÈ1ÈTÉ7ÑR€DÜ�‹;ð	 ò!ð !ð !ô 	�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ”�Q�s‘V“˜a¤ Q s¡V£Ð-Ø	
ˆ3‰�!�C‘&‰˜!˜D™' 1Ð%Ø	
ˆ1ˆT‰7‰�1�S‘6Ñ	œ4  #¡›<¨!Ñ+¨QÐ/ð1ó 	2€Aô ��A‹;ð	ò	ð 	ñ 	r~   c                  óÒ   — t        t        «      5  t        t        g d¢g«      «       d d d «       dt	        ddi«      j                  t        g d¢g«      «      v sJ ‚y # 1 sw Y   Œ6xY w)N)rŽ   r�   r‹   zNot supported in CÚstrictF)r@   rB   rs   rq   rC   Údoprintr‚   r~   r|   Útest_sparse_matrixrg  ;  sV   € ä	Ô.Õ	/ÜŒlšI˜;Ó'Ô(÷ 
0ð  ¤>°8¸UÐ2CÓ#D×#LÑ#LÌ\Ò[dÐZeÓMfÓ#gÑgÐgÑg÷ 
0Ð	/ús   �AÁA&c                  ó  — t        d«      \  } }t        t        «      5  t        |dz  dd¬«       d d d «       t        |dz  «      dk(  sJ ‚t        | |dz  z  |g¬«      dk(  sJ ‚t        |dz  d	¬
«      dk(  sJ ‚y # 1 sw Y   ŒKxY w)Nzx, ifr�   Trâ   )Úerror_on_reservedr·   z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_wordsrl  D  s†   € Ü�7Ó�D€A€qÜ	”
Õ	Üˆa�‰d d°UÕ;÷ 
ä��A‘‹;˜-Ò'Ð'Ð'Ü��Q˜‘T‘¨ sÔ+Ð/AÒAÐAÐAÜ��A‘¨MÔ:Ð>UÒUÐUÑU÷	 
Ð	ús   žA:Á:Bc                  óN  — t        t        «      t        z  d}} t        t        t        «      «      d}}t        dt        z  t        dz  z   «      t        z  t        dz  z   d}}t	        | «      |k(  sJ ‚t	        | d«      d|z  k(  sJ ‚t	        |«      |k(  sJ ‚t	        |«      |k(  sJ ‚y )Nzy*(((x) > 0) - ((x) < 0))z!(((cos(x)) > 0) - ((cos(x)) < 0))r�   zApow(x, 2) + x*(((pow(x, 2) + 2*x) > 0) - ((pow(x, 2) + 2*x) < 0))r  zz = %s;)r1   r…   rª   r%   rs   )Úexpr1Úref1Úexpr2Úref2Úexpr3Úref3s         r|   Útest_ccode_signrt  M  sŸ   € Ü”q“'œA‘+Ð:ˆ4€EÜ”sœ1“v“,Ð Cˆ4€EÜ�qœ1‘uœq !™t‘|Ó$¤qÑ(¬1¨a©4Ñ/Ð1tˆ4€EÜ�‹<˜4ÒÐÐÜ�˜Ó 	¨DÑ 0Ò0Ð0Ð0Ü�‹<˜4ÒÐÐÜ�‹<˜4ÒÐÑr~   c                  óª   — t        t        t        t        t        z   «      «      dk(  sJ ‚t        t        t        dt        t        z   «      «      dk(  sJ ‚y )Nz
x = y + z;Ú+zx += y + z;)rs   r?   r…   rª   r  r>   r‚   r~   r|   Útest_ccode_Assignmentrw  V  s@   € Ü”œAœq¤1™uÓ%Ó&¨,Ò6Ð6Ð6Ü”œA˜s¤A¬¡EÓ*Ó+¨}Ò<Ð<Ñ<r~   c            	      ó„   — t        t        t        ddd«      t        t        dt        «      g«      } t        | «      dk(  sJ ‚y )Nr   é
   r�   Ú*z*for (x = 0; x < 10; x += 2) {
   y *= x;
})r=   r…   r9   r>   rª   rs   )Úfs    r|   Útest_ccode_Forr|  [  s?   € ÜŒAŒu�Q˜˜A‹¤¬A¨s´AÓ!6Ð 7Ó8€AÜ�‹8ð ò ð ñ r~   c            	      óà   — t        t        t        d«      d¬«      dk(  sJ ‚t        t        t        d«      d¬«      dk(  sJ ‚t        t        t        dt	        t        «      «      d¬«      dk(  sJ ‚y )	Nr   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))))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                  ó¤   — t        t        t        «      d¬«      dk(  sJ ‚t        t        d¬«      dk(  sJ ‚t        t	        d«      d¬«      dk(  sJ ‚y )Nr´   r¶   úexpm1(x)ÚNANr   )rs   r`   r…   r   Úfloatr‚   r~   r|   Útest_ccode_standardrƒ  h  sI   € Ü””q“ EÔ*¨jÒ8Ð8Ð8Ü”˜uÔ%¨Ò.Ð.Ð.Ü”�u“¨Ô.°%Ò7Ð7Ñ7r~   c                  óâ   — t        «       } | j                  dk(  sJ ‚| j                  dk(  sJ ‚d| j                  v sJ ‚d| j                  vsJ ‚| j	                  t        t        «      «      dk(  sJ ‚y )NÚCrä   ÚvoidÚtemplateúlog10(x))rC   Úlanguager·   Úreserved_wordsrf  re   r…   )Ú
c89printers    r|   Útest_C89CodePrinterrŒ  n  sw   € ÜÓ!€JØ×Ñ #Ò%Ð%Ð%Ø×Ñ %Ò'Ð'Ð'Ø�Z×.Ñ.Ñ.Ð.Ð.Ø˜Z×6Ñ6Ñ6Ð6Ð6Ø×Ñœe¤A›hÓ'¨:Ò5Ð5Ñ5r~   c                  ó‚  — t        «       j                  t        t        «      «      dk(  sJ ‚t        «       j                  t	        t        «      «      dk(  sJ ‚t        «       j                  t        t        «      «      dk(  sJ ‚t        «       j                  t        t        «      «      dk(  sJ ‚t        «       j                  t        t        t        t         «      «      dk(  sJ ‚t        «       j                  t        t        «      «      dk(  sJ ‚t        «       j                  t        t        «      «      dk(  sJ ‚t        «       j                  t        t        t        «      «      dk(  sJ ‚t        «       j                  t        t        «      «      d	k(  sJ ‚t        «       j                  t        t        d
t        dz  «      «      dk(  sJ ‚t        «       j                  t        t        d
«      «      dk(  sJ ‚t        «       } | j                   dk(  sJ ‚| j"                  dk(  sJ ‚d| j$                  v sJ ‚d| j$                  vsJ ‚y )Nr€  zlog1p(x)r¥   zlog2(x)zfma(x, y, -z)rˆ  zcbrt(x)zhypot(x, y)z	lgamma(x)r‹   r�   zfmax(3, fmax(x, pow(x, 2)))z
fmin(3, x)r…  râ   rk   Úusing)rD   rf  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¬¬1¬q¨b£MÓ2°oÒEÐEÐEÜÓ×#Ñ#¤E¬!£HÓ-°Ò;Ð;Ð;ÜÓ×#Ñ#¤D¬£GÓ,°	Ò9Ð9Ð9ÜÓ×#Ñ#¤E¬!¬Q£KÓ0°MÒAÐAÐAÜÓ×#Ñ#¤H¬Q£KÓ0°KÒ?Ð?Ð?ÜÓ×#Ñ#¤C¬¨1¬a°©d£OÓ4Ð8UÒUÐUÐUÜÓ×#Ñ#¤C¬¨1£IÓ.°,Ò>Ð>Ð>ÜÓ!€JØ×Ñ #Ò%Ð%Ð%Ø×Ñ %Ò'Ð'Ð'Ø˜×2Ñ2Ñ2Ð2Ð2Ø˜*×3Ñ3Ñ3Ð3Ñ3r~   c                  ó�   — t        dt        t        ii«      } | j                  t	        t
        t        d«      z   «      «      dk(  sJ ‚y )Nr‘   z2.1zsinl(x + 2.1L))rD   rV   rY   rf  r2   r…   r
   )Úf80_printers    r|   Ú"test_C99CodePrinter__precision_f80r“  Š  s=   € ä  .´4¼°/Ð!BÓC€KØ×Ñœs¤1¤u¨U£|Ñ#3Ó4Ó5Ð9IÒIÐIÑIr~   c            	      ó®
  ‡‡— t        dd¬«      } t        ddd¬«      }t        dt        t        ii«      }t        dt        t        ii«      }t        dt        t
        ii«      }|j                  t        t        dz   «      «      dk(  sJ ‚|j                  t        t        dz   «      «      d	k(  sJ ‚|j                  t        t        t        d
«      z   «      «      dk(  sJ ‚t        |||gg d¢«      D �]c  \  ŠŠˆˆfd„} |t        | «      d«        |t        t        dz   «      d«        |t        t        dz   «      t        t        dz
  «      z  d«        |t        t        dz  «      d«        |t        t        «      d«        |t        t        dz  «      d«        |t!        |d«      d«        |t!        d|z  dz   d|z  dz   d¬«      d«        |t!        t        dz   d«      d«        |t!        t        dt        z  dz   «      d «        |t#        t        dz  «      d!«        |t%        dt        z  dz  «      d"«        |t'        t        dz  «      d#«        |t)        t        «      d$«        |dt        z  d%«        |dt        z  d&«        |t        dz  d'«        |t        dz  d(«        |t+        dt        z   «      d)«        |t-        t        dz
  «      d*«        |t/        t        t0        «      d+«        |t        dt        z  dz   «      d,«        |t        dt        z  d-z
  «      d.«        |t3        dt0        z  dz   «      d/«        |t5        dt        z  dz   «      d0«        |t7        dt        z  dz   «      d1«        |t9        dt        z  dz   «      d2«        |t;        dt        z  dt0        z  «      d3«        |t=        dt        z  dz   «      d4«        |t?        dt        z  d-z
  «      d5«        |tA        dt0        z  dz   «      d6«        |tC        dt        z  dz   «      d7«        |tE        dt        z  dz   «      d8«        |tG        dt        z  dz   «      d9«        |tI        d:t        z  «      d;«        |tK        d:t        z  «      d<«        |tM        t        «      d=«        |tO        t        «      d>«        |tQ        t        dz   «      d?«        |tS        t        dz   «      d@«        |tU        t        t0        tV         «      dA«        |tY        t        dt        dz  «      dB«        |t[        t        d«      dC«       �Œf y )DNrÛ   TrÜ   r  rê   r‘   gÍÌÌÌÌÌ @zsinf(x + 2.1F)zsin(x + 2.1000000000000001)z2.0zsinl(x + 2.0L))r{  Ú rN  c                 óp   •— ‰j                  | «      |j                  ‰‰j                  «       ¬«      k(  sJ ‚y )N)rî   r   )rf  ÚformatÚupper)rÿ   Úrefr{   Úsuffixs     €€r|   Úcheckz-test_C99CodePrinter__precision.<locals>.check›  s-   ø€ Ø—?‘? 4Ó(¨C¯J©J¸À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)r�   zp % 2r‹   rŸ   Fr§   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)).r   rD   rV   rW   rX   rY   rf  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   �  sR  ù€ Ü�˜TÔ"€AÜ�˜T¨DÔ1€AÜ  .´4¼°/Ð!BÓC€KÜ  .´4¼°/Ð!BÓC€KÜ  .´4¼°/Ð!BÓC€KØ×Ñœs¤1 S¡5›zÓ*Ð.>Ò>Ð>Ð>Ø×Ñœs¤1 S¡5›zÓ*Ð.KÒKÐKÐKØ×Ñœs¤1¤U¨5£\¡>Ó2Ó3Ð7GÒGÐGÐGä ¨[¸+ÐFÊ×W‰ˆ�õ	SáŒc�!‹f�hÔÙŒc”!�c‘'‹lÐ1Ô2ÙŒc”!�c‘'‹lœC¤ C¡›LÑ(Ð*ZÔ[ÙŒc”!�C‘%‹jÐ,Ô-ÙŒd”1‹g�|Ô$ÙŒe”A�c‘E‹lÐ0Ô1ÙŒc�!�Q‹i˜Ô!ÙŒc�!�A‘#˜‘'˜1˜Q™3 ™7¨UÔ3Ð5LÔMÙŒc”!�c‘'˜3ÓÐ!EÔFÙŒc”!�Sœ‘U˜S‘[Ó!Ð#IÔJÙŒc”!�A‘#‹hÐ3Ô4ÙŒe�A”a‘C˜‘E‹lÐ9Ô:ÙŒd”1�S‘5‹kÐ.Ô/ÙŒe”A‹h˜Ô&Ùˆa”‰d�NÔ#Ùˆc”1‰fÐ)Ô*ÙŒa�‰d�NÔ#ÙŒa�‰fÐ)Ô*ÙŒd�1”Q‘3‹iÐ)Ô*ÙŒd”1�S‘5‹kÐ0Ô1ÙŒe”A”q‹kÐ+Ô,ÙŒc�"”Q‘$˜‘)‹nÐ9Ô:ÙŒc�"”Q‘$˜‘)‹nÐ9Ô:ÙŒc�"”Q‘$˜‘)‹nÐ9Ô:ÙŒd�2”a‘4˜"‘9‹oÐ;Ô<ÙŒd�2”a‘4˜"‘9‹oÐ;Ô<ÙŒd�2”a‘4˜"‘9‹oÐ;Ô<ÙŒe�B”q‘D˜"œQ™$ÓÐ!?Ô@áŒd�2”a‘4˜"‘9‹oÐ;Ô<ÙŒd�2”a‘4˜"‘9‹oÐ;Ô<ÙŒd�3”q‘5˜2‘:ÓÐ <Ô=ÙŒe�B”q‘D˜2‘IÓÐ =Ô>ÙŒe�B”q‘D˜2‘IÓÐ =Ô>ÙŒe�B”q‘D˜2‘IÓÐ =Ô>ÙŒc�#”a‘%‹jÐ-Ô.ÙŒd�3”q‘5‹kÐ/Ô0ÙŒe”A‹h˜Ô'ÙŒh”q‹k˜>Ô*áŒg”a˜"‘f‹oÐ/Ô0ÙŒe”A˜‘F‹mÐ.Ô/ÙŒc”!”Qœ˜‹mÐ/Ô0ÙŒc”!�Sœ!˜S™&Ó!Ð#SÔTÙŒc”!�S‹kÐ/Ö0ñ_ Xr~   c                  ój   — t        «       } | t        d«         dk(  sJ ‚| dt        d«      z     dk(  sJ ‚y )NrŽ   rÀ   r�   Ú	M_SQRT1_2)rE   r)   rh   )Úmacross    r|   Útest_get_math_macrosr¤  Ì  s;   € ÜÓ€FØ”#�a“&‰>˜UÒ"Ð"Ð"Ø�!”D˜“G‘)Ñ Ò+Ð+Ñ+r~   c                  ó¶  — t        dd¬«      } t        | t        j                  | «      ¬«      }t	        |«      }t        |«      dk(  sJ ‚t        t        t        t        h¬«      }t	        |«      }t        |«      dk(  sJ ‚|j                  t        ¬«      }t        |«      d	k(  sJ ‚t        t        t        d
«      ¬«      }t	        |«      }t        «       }d|j                  vsJ ‚|j                  |«      dk(  sJ ‚d|j                  v sJ ‚t        dd¬«      }	t        j                   |	t"        t$        h¬«      }
t	        |
«      }t        |«      dk(  sJ ‚t        t        t        d«      t        h¬«      }t	        |«      }t        |«      dk(  sJ ‚t        |j&                  |j(                  t        |j*                  ¬«      }t	        |«      }t        |«      dk(  sJ ‚y )NrÚ   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_PI)r   rL   rH   Ú	from_exprrJ   rs   r…   rW   rM   Úas_Declarationr   rª   rC   Úheadersrf  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Ü�AœDŸN™N¨1Ó-Ô.€DÜ�tÓ€DÜ�‹;˜'Ò!Ð!Ð!ä”AœG¬K¨=Ô9€DÜ˜Ó€EÜ�‹<˜?Ò*Ð*Ð*Ø×Ñ¤bÐÓ)€EÜ�‹<Ð1Ò1Ð1Ð1ä”AœD ›LÔ)€DÜ�tÓ€DÜÓ€GØ˜gŸo™oÑ-Ð-Ð-Ø�?‰?˜4Ó  HÒ,Ð,Ð,Ø˜'Ÿ/™/Ñ)Ð)Ð)ä�˜$Ô€AÜ�?‰?˜1¤]´HÐ$=Ô>€DÜ�tÓ€DÜ�‹;Ð5Ò5Ð5Ð5ä”A”t˜LÓ)´+°Ô?€DÜ˜Ó€EÜ�‹<Ð/Ò/Ð/Ð/Ü�T—[‘[ $§)¡)¬R°t·z±zÔB€EÜ˜Ó€EÜ�‹<Ð6Ò6Ð6Ñ6r~   c            	      ó†  — t        dt        j                  t        j                  t        j                  «      } t        t        | i| di| dit        d| di| didœ«      }|j                  t        «      dk(  sJ ‚|j                  rJ ‚|j                  rJ ‚|j                  rJ ‚|j                  d«      dk(  sJ ‚|j                  rJ ‚|j                  rJ ‚|j                  d	hk(  sJ ‚|j                  t        d
d«      «      dk(  sJ ‚|j                  t        t        «      «      dk(  sJ ‚|j                  t        dd¬«      «      dk(  sJ ‚|j                  t        dz  «      dk(  sJ ‚t        t        | t         h¬«      }t#        |«      }t%        |«      dk(  sJ ‚t        t        | t&        t         h¬«      }t#        |«      }|j                  |«      dk(  sJ ‚t        t        | t)        j*                  d«      t         h¬«      }t#        |«      }|j                  |«      dt)        j*                  | j,                  «      z  k(  sJ ‚y )NÚ	_Float128ÚQÚf128)Ú!__STDC_WANT_IEC_60559_TYPES_EXT__)r‘   Útype_literal_suffixesÚtype_func_suffixesÚtype_math_macro_suffixesÚtype_macrosr…   rœ  z2.0QrÅ  rŽ   r�   z	1.0Q/2.0Qz
sinf128(x)Fr§   zcosf128(2.0Q)r�   z1.0Q/xr¬  zconst _Float128 xzconst _Float128 x = M_PIf128é&   )r©  r¨  zconst _Float128 x = %sQ)rI   rZ   ÚnbitsÚnmantÚnexprD   rV   rf  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  € ä�[¤(§.¡.´(·.±.Ä(Ç-Á-ÓP€DÜÜ˜t˜Ø"&¨ Ø# V˜nä�&Ø�&ð%
ð
 Ð8ð
ñó €Dð �<‰<œ‹?˜cÒ!Ð!Ð!Ø�|Š|ÐÐØ�~Š~ÐÐØ�{Š{Ðˆ?Ø�<‰<˜Ó Ò&Ð&Ð&Ø�|Š|ÐÐØ�~Š~ÐÐØ�;‰;Ð>Ð?Ò?Ð?Ð?à�<‰<œ  A›Ó'¨;Ò6Ð6Ð6Ø�<‰<œœA›Ó <Ò/Ð/Ð/Ø�<‰<œ˜B¨Ô/Ó0°OÒCÐCÐCØ�<‰<œ˜4™Ó  HÒ,Ð,Ð,ä”A�t¤K =Ô1€Dä˜Ó€EÜ�‹<Ð.Ò.Ð.Ð.Ü”Q˜œb¬¨Ô6€EÜ˜Ó€EØ�<‰<˜ÓÐ"@Ò@Ð@Ð@Ü”Q˜¤G§M¡M°"Ó$5¼k¸]ÔK€EÜ˜Ó€EØ�<‰<˜ÓÐ";¼g¿m¹mÈD×L\ÑL\Ó>]Ñ"]Ò]Ð]Ñ]r~   c                  óô   — t        ddd«      } t        ddd«      }t        ddd«      }t        | d   «      dk(  sJ ‚t        d| d   z  «      dk(  sJ ‚|d   j                  || |z
  «      }t        |«      d	k(  sJ ‚y )
NrÙ   rŽ   r‹   r!  r…  r_  zA[0]z3*A[0]z
(A - B)[0])rp   rs   Úsubs)rÙ   r!  r…  r$  s       r|   Útest_MatrixElement_printingrÕ    s‡   € ä�S˜!˜QÓ€AÜ�S˜!˜QÓ€AÜ�S˜!˜QÓ€Aä��4‘‹>˜VÒ#Ð$Ð#Ü��Q�t‘W‘Ó Ò)Ð*Ð)à	ˆ$‰�‰�Q˜˜A™Ó€AÜ�‹8�|Ò#Ð$Ñ#r~   c                  ó*  — t        t        t        d«      z   «      dk(  sJ ‚t        t        t        t        d«      «      z   «      dk(  sJ ‚t        t        dt	        d«      z  z   «      dk(  sJ ‚t        t        t	        d«      z   «      dk(  sJ ‚t        t        t	        d«      z   «      dk(  sJ ‚t        t        t
        z   «      dk(  sJ ‚t        t        t
        dz  z   «      d	k(  sJ ‚t        t        t
        d
z  z   «      dk(  sJ ‚t        t        dt
        z  z   «      dk(  sJ ‚t        t        dt
        z  z   «      dk(  sJ ‚t        t        dt        t
        «      z  z   «      dk(  sJ ‚t        t        dt        t
        «      z  z   «      dk(  sJ ‚t        t        t        d«      z   «      dk(  sJ ‚t        t        t        d«      z   «      dk(  sJ ‚t        t        dt        d«      z  z   «      dk(  sJ ‚t        t        dt        d«      z  z   «      dk(  sJ ‚y )NrŽ   zz + M_Ezz + M_LOG2Er�   z	z + M_LN2ry  z
z + M_LN10zz + M_PIz
z + M_PI_2r1  z
z + M_PI_4z
z + M_1_PIz
z + M_2_PIzz + M_2_SQRTPIzz + M_SQRT2zz + M_SQRT1_2)rs   r  r)   rc   r,   r   r4   rh   r‚   r~   r|   Útest_ccode_math_macrosr×  '  sÄ  € Ü””S˜“V‘Ó 	Ò)Ð)Ð)Ü””Tœ#˜a›&“\Ñ!Ó" mÒ3Ð3Ð3Ü”�Q”s˜1“v‘X‘Ó -Ò/Ð/Ð/Ü””S˜“V‘Ó Ò+Ð+Ð+Ü””S˜“W‘Ó Ò-Ð-Ð-Ü””R‘‹=˜JÒ&Ð&Ð&Ü””R˜‘T‘‹?˜lÒ*Ð*Ð*Ü””R˜‘T‘‹?˜lÒ*Ð*Ð*Ü”�Q”r‘T‘‹?˜lÒ*Ð*Ð*Ü”�Q”r‘T‘‹?˜lÒ*Ð*Ð*Ü”�Q”tœB“x‘Z‘Ó Ð$4Ò4Ð4Ð4Ü”�Q”tœB“x‘Z‘Ó Ð$4Ò4Ð4Ð4Ü””T˜!“W‘Ó Ò.Ð.Ð.Ü””T˜!“W‘Ó Ò.Ð.Ð.Ü”�Q”t˜A“w‘Y‘Ó ?Ò2Ð2Ð2Ü”�Q”t˜A“w‘Y‘Ó ?Ò2Ð2Ñ2r~   c                  ó^   — t        t        d«      «      dk(  sJ ‚t        t        «      dk(  sJ ‚y )Nr‚  Úint)rs   rH   r[   r‚   r~   r|   Útest_ccode_TyperÚ  :  s+   € Ü”�g“Ó 7Ò*Ð*Ð*Ü”‹;˜%ÒÐÑr~   c                  óê  — t        t        d«      «      dk(  sJ ‚t        t        t        t        «      dkD  t        t        dd«      g«      «      dk(  sJ ‚t        t        t        t        d«      g«      «      dk(  sJ ‚t        t        t        t        ¬«      «      } t        t        t        d| g«      «      d	k(  sJ ‚t        t        t        d| gt        t        t        d
z  «      g«      «      dk(  sJ ‚t        t        t        t        t         gd«      t        t#        d«      t         gdt$        ¬«      t'        dt        g«      t)        t        «      «      }t        |«      dj+                  g d¢«      k(  sJ ‚y )Nzthis is a commentz/* this is a comment */rŽ   Ú-z"while (fabs(x) > 1) {
   x -= 1;
}z{
   x += 1;
}r¦  Úpwerzdouble pwer(double x)r�   z*double pwer(double x){
   x = pow(x, 2);
}z%d %dÚhelloz%s %d)ÚfileÚ
)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Ü””sœ1“v ‘z¤J¬q°#°qÓ$9Ð#:Ó;Ó<ð	òð ð ô
 ”Ô.¬q°!Ó4Ð5Ó6Ó7ð	òð ð ô
 œ¤¬Ô.Ó/€EÜÔ"¤4¨°%°Ó9Ó:Ð>UÒUÐUÐUÜÔ#¤D¨&°5°'¼JÄqÌ!ÈQÉ$Ó<OÐ;PÓQÓRð	òð ð ô Ü	ÜŒq”!ˆf�gÓÜŒ|˜GÓ$¤aÐ(¨'¼Ô?Ü�Vœa˜SÓ!ÜŒq‹	ó€Eô �‹<˜4Ÿ9™9ò &ó ò ð ñ r~   c                  óÀ  — t        t        t        t        z  «      t        z   «      dk(  sJ ‚t        t        t        t        z   «      t        z   «      dk(  sJ ‚t        d«      } t        t        t        t        z   «      t        t        | z   «      z   «      dk(  sJ ‚t        dd¬«      \  }}}t        ||z   «      }t        t        ||z   «      «      }t        |«      dk(  sJ ‚y )	Nzz + x*yzz + (x + y)Úwz(w + z) + (x + y)zp q rTré   zexp(p + (q + r)))rs   r   rª   r…   r  r   r÷   r)   )ræ  r  r`  rí   Úq_rrÿ   s         r|   Útest_ccode_UnevaluatedExprrè  f  s¼   € Ü”¤¤Q¡Ó'¬!Ñ+Ó,°	Ò9Ð9Ð9Ü”¤¤Q¡Ó'¬!Ñ+Ó,°Ò=Ð=Ð=Ü�‹€AÜ”¤¤Q¡Ó'¬/¼!¸a¹%Ó*@Ñ@ÓAÐEXÒXÐXÐXä�g DÔ)�G€A€qˆ!Ü
˜!˜a™%Ó
 €CÜŒs�1�S‘5‹z‹?€DÜ�‹;Ð,Ò,Ð,Ñ,r~   c                  óH   — t        g d¢«      dk(  sJ ‚t        d«      dk(  sJ ‚y )N)r�   r‹   r1  z	{2, 3, 4}rr   r‚   r~   r|   Ú test_ccode_array_like_containersrê  r  s&   € Ü’‹>˜[Ò(Ð(Ð(Ü�‹>˜[Ò(Ð(Ñ(r~   c                  óx   — t        t        t        «      «      dk(  sJ ‚t        t        t        «      «      dk(  sJ ‚y )Nzisinf(x)zisnan(x))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  r-  r2  r;  r@  rH  rJ  rQ  rS  rY  r]  rc  rg  rl  rt  rw  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ß )ß =Ñ =å ,á
�'Ó
�€€1€aò'ò'ò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1òx,ò7ò@&^òR
%ò3ò& ò
%òN	-ò)ó)r~   