K i5ddlmZmZmZmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZmZm Z m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'm(Z(m)Z)ddl*m+Z+ddl,m-Z-dd l.m/Z/dd l0m1Z1m2Z2dd l3m4Z4m5Z5dd l,m6Z6ed \Z7Z8Z9dZ:dZ;dZdZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKd ZLd!ZMd"ZNd#ZOd$ZPd%ZQd&ZRd'ZSd(ZTd)ZUd*ZVd+ZWd,ZXd-ZYd.ZZy/)0) SpiooSymbolsymbolsRationalInteger GoldenRatio EulerGammaCatalanLambdaDummy) PiecewisesincosAbsexpceilingsqrtgammasignMaxMin factorialbeta)EqGeGtLeLtNe)Range)ITE)For aug_assign Assignment)raises) RCodePrinter)implemented_function) IndexedBaseIdx)Matrix MatrixSymbol)rcodezx,y,zcVGddt}t|tdk(sJy)NceZdZdZy)test_printmethod..fabscDd|j|jdzS)Nzabs(%s)r)_printargs)selfprinters e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/printing/tests/test_rcode.py_rcodez%test_printmethod..fabs._rcodesw~~diil;; ;N)__name__ __module__ __qualname__r8r9r7fabsr1s abs(x))rr.x)r>s r7test_printmethodrAs&X %% %r9ctttdk(sJttdzdk(sJtttdk(sJy)Nzsqrt(x)?)r.rr@r=r9r7test_rcode_sqrtrDsD a>Y && & C=I %% % a>Y && &r9c,ttdzdk(sJtttdzzdk(sJtdt tdtz}td|tdztttzz zz tdztzz dk(sJttd zd k(sJttt ddzd k(sJd d fddfg}ttdzd|idk(sJttdzd|idk(sJy)Nzx^3zx^(y^3)gg @z(3.5*2*x)^(-x + y^x)/(x^2 + y)gz1.0/xz x^(2.0/3.0)c|jSN is_integerbasers r7z test_rcode_Pow..*s cnnr9dpowic|j SrKrLrNs r7rPz test_rcode_Pow..+s #..&8r9powPowuser_functionsz dpowi(x, 3)g @z pow(x, 3.2))r.r@yr)r r)rG _cond_cfuncs r7test_rcode_PowrY"s A;%   QT y (( (S&AaC.1A AaDHAqD))1a4!84 5( )) ) D>W $$ $ HQN" #} 44 44g>8%@BK Auk&: ;} LL L C (< = NN Nr9c`tttttzddddk(sJy)Nmy_maxmy_pow)rrTrUzmy_max(x, my_pow(x, 2)))r.rr@r=r9r7test_rcode_Maxr]0s' Qqs((+K LPi ii ir9cttddk(sJttdk(sJttdk(sJtt dk(sJy)NrIzexp(1)rInfz-Inf)r.rrrr=r9r7test_rcode_constants_mathhr`5sP Q=H $$ $ 9   9   ":  r9ctdtzdk(sJtdtzdk(sJtdtzdk(sJy)NrHz-GoldenRatio = 1.61803398874989; 2*GoldenRatioz&Catalan = 0.915965594177219; 2*Catalanz,EulerGamma = 0.577215664901533; 2*EulerGamma)r.r r r r=r9r7test_rcode_constants_otherrb<sV ; #S SS S  '  ? @@ @ : "Q QQ Qr9cXttdddk(sJttdddk(sJttdddk(sJttd ddk(sJtttddzd k(sJttddtzd k(sJy) NrFz3.0/7.0 2iz-3.0/7.0z x + 3.0/7.0z (3.0/7.0)*x)r.rr@r=r9r7test_rcode_RationalriCs !Q I -- - "a !S (( ( !R !Z // / "b! "i // / Xa^# $ 55 5 !Q! "m 33 3r9chttddk(sJttddk(sJy)NC67z-1)r.r r=r9r7test_rcode_IntegerrnLs0   %% %   %% %r9c 4tttttzdk(sJtt tt t zdk(sJttttt ttt dk(sJy)Nz sin(x)^cos(x)zfactorial(x) + gamma(y)zbeta(min(x, y), max(x, y))) r.rr@rrrrWrrrr=r9r7test_rcode_functionsrpQsj Q3q6! "o 55 5 1a( )-F FF F c!QiQ+ ,0L LL Lr9c td}tdt|d|z}t||dk(sJtdt|d|ztz }t||dt j zk(sJt d}tdtdd }tdt||d |zzd|zz}t||||| }d }||k(sJy)Nr@rGrHz2*xzCatalan = %s; 2*x/CatalanAinTintegerrI assign_toz7for (i in 1:n){ A[i] = (A[i] + 1)*(A[i] + 2)*A[i]; })rr)r r.r rtr*r+)r@rGrrrsresrefs r7test_rcode_inline_functionr{Ws AS&AaC.1A 1;%  S&AaCK"89A  ! - ; << <CA Cd+,AS&Aq1uIq1u,=">?A a!g1&C  #::r9ctttdk(sJtttdk(sJtt tdk(sJy)Nz ceiling(x)r?zgamma(x))r.rr@rrr=r9r7test_rcode_exceptionsr}jsE   ,, , Q=H $$ $ q?j (( (r9ctdd}tdd}dddfd d fgd }tt|| d k(sJtt|| dk(sJtt|| dk(sJy)Nr@FrurtTmyceilc|j SrKrLr@s r7rPz+test_rcode_user_functions..us q||+r9r>c|jSrKrLrs r7rPz+test_rcode_user_functions..us r9abs)rrrUz myceil(x)zfabs(x)zabs(n))rr.rr)r@rtcustom_functionss r7test_rcode_user_functionsrpsU#AT"A+V47Mu6UV ,< = LL L Q(8 9Y FF F Q(8 9X EE Er9cbtddk(sJttjdk(sJtddk(sJttjdk(sJttt zdk(sJttt zdk(sJttdk(sJttt zt zdk(sJttt zt zd k(sJttt zt zd k(sJttt zt zd k(sJy) NTTrueFFalsezx & yzx | yz!xz x & y & zz x | y | zz z | x & yz z & (x | y))r.rtruefalser@rWzr=r9r7test_rcode_booleanr|s ;&  =F "" " <7 "" " >W $$ $ Q<7 "" " Q<7 "" " !9   Q { ** * Q { ** * !a%1  ,, , !a%1  .. .r9cttttdk(sJtt ttdk(sJtt ttdk(sJtt ttdk(sJttttdk(sJttttdk(sJy)Nzx == yzx != yzx <= yzx < yzx > yzx >= y) r.rr@rWr!rr rrr=r9r7test_rcode_Relationalrs Aq?h && & Aq?h && & Aq?h && & Aq?g %% % Aq?g %% % Aq?h && &r9ctttdkftdzdf}t|}d}||k(sJtd}t||}d}||k(sJdtttdkftdztdkftdzdfz}t|dk(sJt|d }|d k(sJdtttdkftdztdkfz}t|d k(sJy) NrIrHTzifelse(x < 1,x,x^2)tauztau = ifelse(x < 1,x,x^2);rFz'2*ifelse(x < 1,x,ifelse(x < 2,x^2,x^3))crwz,c = 2*ifelse(x < 1,x,ifelse(x < 2,x^2,x^3));z&2*ifelse(x < 1,x,ifelse(x < 2,x^2,NA)))rr@r.r)exprryrzrs r7test_rcode_Piecewisers aQZ!Q$ .D d CC #::u C d3C$C #:: Y1q5zAqD!A#;Ad < C 8O8CC dc"A 8O8r9cdttdktt}t |}d}||k(sJy)NrIzifelse(x < 1,y,z))r#r@rWrr.)rrrzs r7test_rcode_ITErs- q1ua D d AC 8O8r9c&ttdy)Nc6tttdS)Ngarbage)method)r.rr@r=r9r7rPz%test_rcode_settings..seCF9=r9)r' TypeErrorr=r9r7test_rcode_settingsrs  9=>r9ctdd\}}}td|td|td|}}}t}t|_t d|}|j |dk(sJt d ||f}|j |d k(sJt d |||f} |j | d k(sJ|jtk(sJy) Nzn m oTrursjkr@zx[j]rrzA[i, j]Bz B[i, j, k])rr+r(set_not_rr*_print_Indexed) rtmorsrrrr@rrrs r7test_rcode_Indexedrsgt,GAq!#qk3sA;C !qAAuAHCA  A & (( (CAA  A ) ++ +CAq!A  A , .. . 88su  r9c@d}td|f}td|f}td|dz f}td|dz }t||||dz||z ||dz||z z }t|j|j d }|d |dzd |dzd k(sJy) NrW)shaper@DyrIrsF)rxcontractz Dy[i] = (y[z ] - y[i])/(x[z ] - x[i]);)r*r+rr.rhslhs)len_yrWr@rrsecode0s r72test_rcode_Indexed_without_looking_for_contractionrs ECx(ACx(A T%' ,B CqAA1Q3!q1vad{+,A !%%1555 9E Aq1uM MM Mr9ctdd\}}td}td}td}td|}td|}d }t|||f||z|| }||k(sJy) Nn mTrurrr@rWrsrzjfor (i in 1:m){ y[i] = 0; } for (i in 1:m){ for (j in 1:n){ y[i] = A[i, j]*x[j] + y[i]; } }rwrr*r+r.) rtrrrr@rWrsrsrs r7test_rcode_loops_matrix_vectorrs} 5$ 'DAqCACACA C A C A  a1gadlad+A 6M6r9ctddt\}}td}td}t||}d|jj |j dz}t ||||}||k(sJy) Nzi mT)rvclsr@rWzMfor (i_%(icount)i in 1:m_%(mcount)i){ y[i_%(icount)i] = x[i_%(icount)i]; })icountmcountrw)rrr*r+label dummy_indexr.)rsrr@rWexpectedcodes r7test_dummy_loopsrs~ 5$E 2DAqCACA Aq A 77&&!--@ AH 11 &D 8  r9c tdd\}}td}td}td}td}td|}td |}d }t|||f||z||z||z|| } | |k(sJy) NrTrurrr@rWrrsrztfor (i in 1:m){ y[i] = x[i] + z[i]; } for (i in 1:m){ for (j in 1:n){ y[i] = A[i, j]*x[j] + y[i]; } }rwr) rtrrrr@rWrrsrrrs r7test_rcode_loops_addr s 5$ 'DAqCACACACA C A C A  a1gadlQqT!AaD(AaD9A 6M6r9ctdd\}}}}td}td}td}td|}td|}td |} td |} d } t||| | f|||| | fz|| } | | k(sJy) Nn m o pTruabrWrsrrlzfor (i in 1:m){ y[i] = 0; } for (i in 1:m){ for (j in 1:n){ for (k in 1:o){ for (l in 1:p){ y[i] = a[i, j, k, l]*b[j, k, l] + y[i]; } } } }rwr) rtrrrrrrWrsrrrrrs r7&test_rcode_loops_multiple_contractionsr!sD1JAq!QCACACA C A C A C A C A  a1aj1aA:&!A$7A 6M6r9cFtdd\}}}}td}td}td}td}td|}td |} td |} td |} d } t||| | | f||| | | fz|| | | fz|| }|| k(sJy)NrTrurrrrWrsrrrzfor (i in 1:m){ y[i] = 0; } for (i in 1:m){ for (j in 1:n){ for (k in 1:o){ for (l in 1:p){ y[i] = (a[i, j, k, l] + b[i, j, k, l])*c[j, k, l] + y[i]; } } } }rwr) rtrrrrrrrWrsrrrrs r7test_rcode_loops_addfactorr=sD1JAq!QCACACACA C A C A C A C A  qAq!}qAq!},a1aj8AaDIA 6M6r9ctdd\}}}}td}td}td}td}td|}td |} td |} d } d } d } d}t|| ||| fz|| ||| fzz|| || z||| | fzz||}i}| | z| z|ddz|d<| | z|z| ddz|d<| | z| z|ddz|d<| | z|z| ddz|d<| |z| z| ddz|d<| |z| z| ddz|d<||dk(s/||dk(s&||dk(s||dk(s||dk(s ||dk(sJyyyyyy)NrTrurrrrWrsrrzfor (i in 1:m){ y[i] = 0; } zufor (i in 1:m){ for (j in 1:n){ for (k in 1:o){ y[i] = b[j]*b[k]*c[i, j, k] + y[i]; } } } zLfor (i in 1:m){ for (k in 1:o){ y[i] = a[i, k]*b[k] + y[i]; } } zLfor (i in 1:m){ for (j in 1:n){ y[i] = a[i, j]*b[j] + y[i]; } } rwrmrrIrHrFrr)rtrrrrrrrWrsrrs0s1s2s3rzs r7test_rcode_loops_multiple_termsrZsD1JAq!QCACACACA C A C A C A       !Qq!tW qtAadG|#ad1Q4i!Q' &::ad LA C "Wr\BsG #CF "Wr\BsG #CF "Wr\BsG #CF "Wr\BsG #CF "Wr\BsG #CF "Wr\BsG #CF QK QK QK QK QK QK        r9czttzttztz}t |tgdk(sJy)N) dereferencezx + y + (*z) + sin((*z)))r@rWrrr.)rs r7test_dereference_printingrs0 q53q6>A D A3 '+E EE Er9c `tttztdtztdkDftdft t g}t ddd}t||}|dk(sJtd|dztdkDf|ddft |d z|d z}t|}|d k(sJt d d d}t ddd}tt |d dt|dg|d |dz|dd gd|dz|d z t|d dzdgg}t||dk(sJy)NrHrTrrrFrIz8A[0] = x*y; A[1] = ifelse(y > 0,x + 2,y); A[2] = sin(z);)rHr)rIrrrz,ifelse(x > 0,2*A[2],A[2]) + sin(A[1]) + A[0]qrM)rFr)rrrzM[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;) r,r@rWrrrr-r.rr)matrrrrrrrs r7test_Matrix_printingrs\ !A#y!a%14y93q6B CCS!QA c1 A     a$iQ'!D'4 9C$L H1T7 RD d A @ AA AS!QAS!QAQsVaQsV- 3!C&!D'1% 1T71S6 4#V #$ # QtW  )* ) $ QAA 8| #$ #r9N)[ sympy.corerrrrrrr r r r r rsympy.functionsrrrrrrrrrrrrrsympy.core.relationalrrrrr r! sympy.setsr" sympy.logicr# sympy.codegenr$r%r&sympy.testing.pytestr'sympy.printing.rcoder(sympy.utilities.lambdifyr) sympy.tensorr*r+sympy.matricesr,r-r.r@rWrrArDrYr]r`rbrirnrpr{r}rrrrrrrrrrrrrrrrrrrrrrr=r9r7rsIIIIEEEE::55'-9)/& ' 1a&' Oj  R4& M &) F /'C, ? N,$.8:6rF > =  %r9