K iGddlmZddlmZddlmZddlmZmZddl m Z ddl m Z ddl mZmZmZmZmZmZmZmZmZmZddlmZdd lmZdd lmZdd lmZm 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6dd l7m8Z8dd l9m:Z:m;Z;ddlZ>m?Z?ddl@mAZAddlBmCZCmDZDmEZEmFZFmGZGddlHmIZIddlJmKZKmLZLddlMmNZNmOZOddlPmQZQmRZRddlSmTZTmUZUmVZVmWZWmXZXddlYmZZZddl[m\Z\ed\Z]Z^Z_eQdZ`dZadZbdZcdZddZedZfd Zgd!Zhd"Zid#Zjd$ZkGd%d&eZld'Zmd(Znd)Zod*Zpd+Zqd,Zrd-Zsd.Ztd/Zud0Zvd1Zwd2Zxd3Zyy4)5)Not) Assignment)none)expm1log1p)cosm1) MatrixSolve) ExprModsymbolsEqLeGtzooooRationalPow) Derivative)pi)S)acosKroneckerDelta PiecewisesignsqrtMinMaxcotacschaseccothseclogsincostanasinatansinhcoshtanhasinhacoshatanh)atan2)AndOr) SparseMatrix MatrixSymbolIdentity)PrintMethodNotImplementedError) MpmathPrinter CmathPrinterPythonCodePrinterpycode SymPyPrinter)TensorflowPrinter) NumPyPrinter SciPyPrinter)raisesskip) IndexedBaseIdx) ArraySymbol ArrayDiagonalArrayContraction ZeroArrayOneArray) import_module)loggammazx y zpc .t}|jrJ|jttzdk(sJ|jt tddk(sJ|jt tt dk(sJ|jt t tdk(sJ|jt ttdk(sJ|jtttdk(sJ|jdttzz d k(sJ|jttd k(sJ|jrJ|jtd k(sJ|jd d hik(sJ|jttddzdk(sJ|jttdk(sJ|jd d dhik(sJ|jttdk(sJ|jttdk(sJ|jttdk(sJ|jttdk(sJ|jt!tdk(sJ|jt#tddk(sJ|jt%dt'tdfdtdkDfdk(sJ|jt%dt)tdfdt+tdfddk(sJ|jt-tdk(sJ|jt.ddk(sJ|jt1ttd k(sJ|jd!d"k(sJ|jddgd#k(sJ|jt3ttd$k(sJ|jt5ttd%k(sJy)&Nzx**yzx % 2z-(x % y)z(-x) % yzx and yzx or yz 1/(x + y)znot xzmath.pimathr math.sqrt(x)rz math.acos(x)z(1/math.tan(x))z;((math.exp(x) + math.exp(-x))/(math.exp(x) - math.exp(-x)))z(math.acos(1/x))z((math.log(math.sqrt(1 + x**(-2)) + 1/x))zx = 2rz/((1) if (x == 0) else (2) if (x > 6) else None)Fevaluatez/((2) if (x <= 0) else (3) if (x > 0) else None)z((0.0 if x == 0 else math.copysign(1, x))rrLzp[0, 1]z(1 if x == y else 0)rKrPz(2, 3)z[2, 3]z min(x, y)z max(x, y))r8module_importsdoprintxyr r0r1rrrrrrr!r rrrr rrrrIrrrprntrs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/printing/tests/test_pycode.pytest_PythonCodePrinterr\!s  E### # ==A & (( ( ==Q #w .. . ==#a) $ 22 2 ==aR $ 22 2 ==Q #y 00 0 ==Aq "h .. . ==AaC ![ 00 0 ==Q G ++ +### # ==  )) )   FTF#3 33 3 ==HQN* +~ == = ==a !^ 33 3   FT6N#; ;; ; ==a !^ 33 3 ==Q $5 55 5 ==a !%b bb b ==a !%7 77 7 ==q "&P PP P ==Aq) *g 55 5 ==Ar!Qx=AaC" #&W XX X ==Ar!Qx=Bq!H 7 8z1test_PythonCodePrinter_standard..Ss0*Y1GHr])r8rar> ValueErrorrYs r[test_PythonCodePrinter_standardrfNs'  E >>Y && & :HIr]ct}|jttdk(sJ|jt tdk(sJ|jt tdk(sJ|jt tdk(sJ|jttdk(sJ|jttdk(sJ|jttdk(sJ|jttdk(sJ|jttd k(sJ|jttd k(sJ|jttd k(sJ|jttd k(sJ|jttd k(sJ|jt!tdk(sJy)Nz cmath.sqrt(x)z cmath.log(x)z cmath.sin(x)z cmath.cos(x)z cmath.tan(x)z cmath.asin(x)z cmath.acos(x)z cmath.atan(x)z cmath.sinh(x)z cmath.cosh(x)z cmath.tanh(x)zcmath.asinh(x)zcmath.acosh(x)zcmath.atanh(x))r7rVrrWr#r$r%r&r'rr(r)r*r+r,r-r.rIs r[test_CmathPrinterriVsA 99T!W  00 0 99SV  .. . 99SV  .. . 99SV  .. . 99SV  .. . 99T!W  00 0 99T!W  00 0 99T!W  00 0 99T!W  00 0 99T!W  00 0 99T!W  00 0 99U1X "2 22 2 99U1X "2 22 2 99U1X "2 22 2r]ct}|jttdk(sJ|jt dddk(sJ|jt j dk(sJ|jt jdk(sJ|jt jdk(sJ|jt jdk(sJ|jt jd k(sJ|jt jd k(sJ|jt jd k(sJ|jttd k(sJy) Nzmpmath.sign(x)rLrKzmpmath.mpf(1)/mpmath.mpf(2)zmpmath.ez mpmath.piz mpmath.phiz mpmath.eulerz mpmath.nanz mpmath.infz mpmath.ninfzmpmath.loggamma(x))r6rVrrWrrExp1Pi GoldenRatio EulerGammaNaNInfinityNegativeInfinityrHrhs r[test_MpmathPrinterrrmsA 99T!W !1 11 1 99Xa^ $(E EE E 99QVV  ** * 99QTT?k )) ) 99Q]] #| 33 3 99Q\\ "n 44 4 99QUU | ++ + 99QZZ L 00 0 99Q'' (M 99 9 99Xa[ !%9 99 9r]c fddlm}ddlm}ddlm}m}m}ddlm }ddl m }ddl m }ddlm}m} dd lm} m} t)} | j+t-t.d k(sJt1d d d } t1d d d }t1ddd}t1ddd}| j+| dzdk(sJ| j+| dzdk(sJ| j+t3ddk(sJt1dd d}t1dd d}| j+t5| |dk(sJ| j+t5| ||zdk(sJ| j+| d ddk(sJ| j+|d ddk(sJ| j+|dd|| | f| | zdk(sJ| j+|| |dk(sJ| j+|| |d k(sJ| j+|| d!k(sJ| j+|| d"k(sJ| j+||d#k(sJ| j+||d$k(sJ| j+t.dzd%k(sJ| j+t.d&zd'k(sJt7d dd()}| j+|d*k(sJ| j+t8j:d+k(sJ| j+t8j<d,k(sJ| j+t8j>d-k(sJ| j+t8j@d.k(sJ| j+t8jBd/k(sJ| j+t8jDd0k(sJ| j+tGt.d zd1k(sJy)2Nr)Lambda)Adjoint) DiagMatrixDiagonalMatrix DiagonalOf)FunctionMatrix)HadamardProduct)KroneckerProduct) OneMatrix ZeroMatrix)abz numpy.sign(x)ArKBCrLDrPznumpy.linalg.inv(A)znumpy.linalg.matrix_power(A, 5)z numpy.eye(3)rWrXznumpy.linalg.solve(A, x)znumpy.linalg.solve(A, x) + yznumpy.zeros((2, 3))znumpy.ones((2, 3))z.numpy.fromfunction(lambda a, b: a + b, (4, 5))znumpy.multiply(A, B)znumpy.kron(A, B)z#numpy.conjugate(numpy.transpose(A))z%numpy.reshape(numpy.diag(A), (-1, 1))znumpy.diagflat(C)z"numpy.multiply(D, numpy.eye(3, 4))z x**(-1.0)z x**(-2.0)FrQz 2**(-1.0)numpy.eznumpy.piznumpy.euler_gammaz numpy.nanz numpy.infz -numpy.infz(numpy.cos(x)**(-1.0))**2)$sympy.core.functionrt"sympy.matrices.expressions.adjointru#sympy.matrices.expressions.diagonalrvrwrx%sympy.matrices.expressions.funcmatrixry#sympy.matrices.expressions.hadamardrz$sympy.matrices.expressions.kroneckerr{"sympy.matrices.expressions.specialr|r} sympy.abcr~rr<rVrrWr3r4r rrrkrlrnrorprqr")rtrurvrwrxryrzr{r|r}r~rrIrrrruvexprs r[test_NumPyPrinterr|sm*:\\DCEJA 99T!W  00 0S!QAS!QAS!QAS!QA 99QW !6 66 6 99QT?? ?? ? 99Xa[ !^ 33 3S!QAS!QA 99[A& '+E EE E 99[A&* +/M MM M 99Z1% &*? ?? ? 99Yq!_ %)= == = 99^Aq&!QQ*?@ A8 99 9 99_Q* +/E EE E 99%a+ ,0B BB B 99WQZ $I II I 99Z] #'N NN N 99Z] #': :: : 99^A& '+O OO O 99QU { ** * 99QU { ** * q"u %D 99T?k )) ) 99QVV  )) ) 99QTT?j (( ( 99Q\\ "&9 99 9 99QUU { ** * 99QZZ K // / 99Q'' (L 88 8 99SVQY #> >> >r]ctd}|s tdddlm}m}ddlm}|dtzdztdzd tzdz}|t|d}||jdddgd k(jsJ|d dk(sJ|td ztdz}|t|d}||jd d d gdk(jsJ|d dk(sJy)Nnumpyznumpy not installed.r)rr)lambdifyg?rPrLg?)g?g?g@rrKr)rLrrL@) rGr?(sympy.functions.elementary.miscellaneousrrsympy.utilities.lambdifyrrWlinspaceall)rrrrexpr1funcs r[test_issue_18770rs ' "E  #$C1 A 1q5#a%!) ,E Aug &D 1a( )-> > C C EE E GqLL 1adOE AeW %D Aq) *l : @ @ BB B 7b==r]c t}tt}d|jvsJ|j |dk(sJd|jvsJt d|jDrJt ddddi}|j |dk(sJd |jvsJ|j tjd k(sJ|j tjd k(sJ|j tjd k(sJy) Nrznumpy.arccos(x)c3>K|]}|jdyw)scipyN) startswith).0ms r[ z$test_SciPyPrinter..sCQ1<<(CsrKrrSrPz8scipy.sparse.coo_matrix(([3], ([0], [1])), shape=(2, 5))z scipy.sparsezscipy.constants.golden_ratiozscipy.constants.pir) r=rrWrUrVanyr2rrmrlrk)rIrsmats r[test_SciPyPrinterrsA 7D !** ** * 99T?/ // / a&& && &C!2B2BCCC C 1vqk *D 99T?B CC C Q-- -- - 99Q]] #'E EE E 99QTT?2 22 2 99QVV  )) )r]cttd\ttfdtz}|dvsJy)Nzif elsec$tzdS)NT)error_on_reserved)r9)s1s2sr[rdz,test_pycode_reserved_words..svb2gFr])z else_ + if_z if_ + else_)r r>rer9)py_strrrs @@r[test_pycode_reserved_wordsrs8 Y FB :FG BG_F 3 33 3r]cvtd\}}}||z}t|dk(sJ||z}t|dk(sJy)Nza_{b} b a_{11}za_b*bza_11*b)r r9)a_bra_11rs r[test_issue_20762rsI+,LCD q5D $<7 "" " 6D $<8 ## #r]ct}|jttddk(sJ|jdttz ddk(sJtddi}|jttdd k(sJ|jdttz dd k(sJt }|jttdd k(sJ|jttdd k(sJt }|jttdd k(sJ|jttdd k(sJt }|jttdd k(sJ|jttdd k(sJt}|jttddk(sJ|jttdd k(sJy)NF)rationalrNrLz1/math.sqrt(x)rar_Tzx**(1/2)z x**(-1/2)zmpmath.sqrt(x)z x**(mpmath.mpf(1)/mpmath.mpf(2))z numpy.sqrt(x)z sympy.sqrt(x))r8 _print_PowrrWr6r<r=r:rYs r[ test_sqrtrs  E   DGe  4 FF F   Ad1gI  6:J JJ J zI6 7E   DGd  3z AA A   Ad1gI  5 DD D OE   DGe  48H HH H   DGd  3* ++ + NE   DGe  4 GG G   DGd  3z AA A NE   DGe  4 GG G   DGd  3z AA A NE   DGe  4 GG G   DGd  3z AA Ar]chddlm}|t}t}|j |dk(sJt }|j |dk(sJt }|j |dk(sJt}|j |dk(sJt}|j |dk(sJy)Nr)fracznumpy.mod(x, 1)zx % 1zmpmath.frac(x)z+sympy.functions.elementary.integers.frac(x)) #sympy.functions.elementary.integersrrWr<rVr=r8r6r:)rrrZs r[ test_fracrs8 7D NE == "3 33 3 NE == "3 33 3  E == ' )) ) OE == "2 22 2 NE == "O OO Or]ceZdZdZdZy)CustomPrintedObjectcy)Nrrcselfprinters r[ _numpycodezCustomPrintedObject._numpycodesr]cy)Nmpmathrcrs r[ _mpmathcodezCustomPrintedObject._mpmathcodesr]N)__name__ __module__ __qualname__rrrcr]r[rrs r]rct}tj|dk(sJtj|dk(sJy)Nrr)rr<rVr6)objs r[test_printmethodrs@  C > ! !# &' 11 1 ? " "3 '8 33 3r]c,ttdk(sJy)NNone)r9rrcr]r[test_codegen_ast_nodesr"s $<6 !! !r]ct}|jtdk(sJ|jt dk(sJy)Nzmath.nanz float('-inf'))r8rVrrrYs r[test_issue_14283r&s:  E ==  ++ + =="  00 0r]cVt}|jtddk(sJy)NrKz(0, 1,))r< _print_seqrange)ns r[test_NumPyPrinter_print_seqr-s$A <<a !Y .. .r]cddlm}m}td}||t}||t}t }|j |dk(sJ|j |dk(sJt}tddi}||fD]@}tt5|j |dddd|j |vr@Jy#1swY!xYw) Nr) lowergamma uppergammar~z3scipy.special.gamma(a)*scipy.special.gammainc(a, x)z4scipy.special.gamma(a)*scipy.special.gammaincc(a, x)strictF Not supported) 'sympy.functions.special.gamma_functionsrrr rWr=rVr<r8r>NotImplementedError) rrr~rexpr2rZp_numpyp_pycoders r[test_issue_16535_16536r3sP A q! E q! E NE == #X XX X == #Y YY YnG (E!23H9 ' ( # OOE " #("2"24"88889 # #s CC cddlm}ddlm}||t tdt f}|tdz|tt zztt tft dtf}|tdzt|tdztdftj|dk(sJj|dk(sJttfdttfd tj|d k(sJj|d k(sJttfd ttfd y)Nr)exp)IntegralrKrLz>scipy.integrate.quad(lambda x: numpy.exp(-x), 0, numpy.inf)[0]zMscipy.integrate.nquad(lambda x, y: x**2*numpy.exp(x*y), ((-z, z), (0, z)))[0]c&jSNrV indefiniterZsr[rdztest_Integral..S j(Ar]c&jSrr evaluateatrZsr[rdztest_Integral..Trr]z6mpmath.quad(lambda x: mpmath.exp(-x), (0, mpmath.inf))z?mpmath.quad(lambda x, y: x**2*mpmath.exp(x*y), (-z, z), (0, z))c&jSrrrsr[rdztest_Integral..Yrr]c&jSrrrsr[rdztest_Integral..Zrr]) &sympy.functions.elementary.exponentialrsympy.integrals.integralsrrWrrXzr=rVr>rr6)rrsingledoublerrrZs @@@r[ test_IntegralrGs:2 c1"g1bz *F ad3qs8ma!QZ!Q ;F!Q$"J!Q$A'J NE == $d dd d == $s ss s  AB  AB OE == $\ \\ \ == $e ee e  AB  ABr]c*ddlm}m}|t}|t}t }|j |dk(sJ|j |dk(sJt }t}t}||fD]T}tt5|j |dddtt5|j |dddV|j |dk(sJ|j |dk(sJy#1swYaxYw#1swYxYw)Nr)fresnelcfresnelszscipy.special.fresnel(x)[1]zscipy.special.fresnel(x)[0]zmpmath.fresnelc(x)zmpmath.fresnels(x)) 'sympy.functions.special.error_functionsrrrWr=rVr<r8r6r>r) rrrrrZrrp_mpmathrs r[test_fresnel_integralsr]sL QKE QKE NE == #@ @@ @ == #@ @@ @nG "HH# ' ( " OOD ! " ' ( #   T " # ##   E "&: :: :   E "&: :: :  " " # #s C=4D =D D cxddlm}|tt}t }|j |dk(sJt }|j |dk(sJt}|j |dk(sJtddi}|j |dk(sJt}|j |dk(sJy)Nr)betazscipy.special.beta(x, y)z/(math.gamma(x)*math.gamma(y)/math.gamma(x + y))allow_unknown_functionsTzmpmath.beta(x, y)) &sympy.functions.special.beta_functionsrrWrXr=rVr<r8r6)rrrZs r[ test_betarts; 1:D NE == "< << < NE == "S SS S  E == "S SS S 8$? @E == "S SS S OE == #6 66 6r]cddlm}m}|t}|t}t }|j |dk(sJ|j |dk(sJt ddi}d|j |vsJd|j |vsJtddi}d|j |vsJd|j |vsJy)Nr)airyaiairybizscipy.special.airy(x)[0]zscipy.special.airy(x)[2]rFr)sympy.functions.special.besselrrrWr=rVr<r8)rrrrrZs r[ test_airyrs? 1IE 1IE NE == #= == = == #= == = (E* +E emmE2 22 2 emmE2 22 2 x/ 0E emmE2 22 2 emmE2 22 2r]cddlm}m}|t}|t}t }|j |dk(sJ|j |dk(sJt ddi}d|j |vsJd|j |vsJtddi}d|j |vsJd|j |vsJy)Nr) airyaiprime airybiprimezscipy.special.airy(x)[1]zscipy.special.airy(x)[3]rFr)rrr rWr=rVr<r8)rr rrrZs r[test_airy_primer sI NE NE NE == #= == = == #= == = (E* +E emmE2 22 2 emmE2 22 2 x/ 0E emmE2 22 2 emmE2 22 2r]ct}|jttdk(sJ|jt tdk(sJ|jt tdk(sJy)Nznumpy.expm1(x)znumpy.log1p(x)zscipy.special.cosm1(x))r=rVrrWrrrYs r[!test_numerical_accuracy_functionsr s] NE ==q "&6 66 6 ==q "&6 66 6 ==q "&> >> >r]c tdd}td}tddtddtdd }}}t}|j t d d k(sJ|j t d d k(sJ|j t|d dgdk(sJ|j |dk(sJ|j t|gddk(sJ|j t|ddgd dgdk(sJ|j t|d gdgdk(sJ|j t||||f||||fdk(sJt}|j t d dk(sJ|j t d dk(sJ|j t|d dgdk(sJ|j |dk(sJ|j t|gddk(sJ|j t|ddgd dgdk(sJ|j t|d gdgdk(sJ|j t||||f||||fdk(sJy)Nr)rrrOrOrOIirSjrTk)rrrznumpy.zeros((5,))znumpy.ones((5,))rKrPznumpy.einsum("abccd->abd", A))rKrPrznumpy.einsum("abccc->abc", A)rrLznumpy.einsum("aabbc->cab", A)znumpy.einsum("abcde->abe", A)zI = Iztensorflow.zeros((5,))ztensorflow.ones((5,))z)tensorflow.linalg.einsum("abccd->abd", A)z)tensorflow.linalg.einsum("abccc->abc", A)z)tensorflow.linalg.einsum("aabbc->cab", A)z)tensorflow.linalg.einsum("abcde->abe", A)) rBr@rAr<rVrErFrDrCrr;)rrrrrrZs r[test_array_printerrslC%ACA UOSe_c#uoaA NE ==1 &*= == = ==! %); ;; ; ==)!aU3 48W WW W == s "" " ==q'2 37V VV V ==q1Q%!A7 8<[ [[ [ ==)!aS1#6 7;Z ZZ Z ==Aa!eHa!Ah7 8G CC C  E ==1 &*B BB B ==! %)@ @@ @ ==)!aU3 48c cc c == s "" " ==q'2 37b bb b ==q1Q%!A7 8.MyPrinterc>|\}|\}d|j||fzS)Nz#my_custom_cosm1(%s, deriv_order=%d)_print)rargs seq_ordersargorders r[_print_Derivative_cosm1zItest_custom_Derivative_methods..MyPrinter._print_Derivative_cosm1s)DCFE8DKK.MyPrinter._print_Derivative_atan2sBJD$#JD$B D!4;;t#4dDF r]N)rrrrr#rcr]r[ MyPrinterrs  U  r]r$FrQz!my_custom_cosm1(x, deriv_order=1)rKrPz)my_custom_atan2(x, y, deriv1=2, deriv2=3)_print_Derivative_expm1z_print_Derivative() r=rrWdiffrVr/rXrr5reprrre)r$rIcosm1_1 atan2_2_3es r[test_custom_Derivative_methodsr+s L   AAhmmAm.G 99W !D DD Da   Aq!e r? sympy.tensorr@rA0sympy.tensor.array.expressions.array_expressionsrBrCrDrErFsympy.externalrGrrHrWrXrrIr\rfrirrrrrrrrrrrrrrrrrrrr r rr+rcr]r[rAs-$"1+2MMM*!"vvvvvvv:??E8;-)~~(< ' 1a*3ZJ3. :2?j&*"4$B6P($4 "1/ 9(C,;.7(3$3&? D4 r]