K i-ddlmZddlmZddlmZmZddlmZddl m Z ddl m Z ddl mZddlmZmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZmZmZddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-m.Z.ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6ddl7m8Z8ddl9m:Z:m;Z;mm?Z?m@Z@mAZAmBZBmCZCmDZDddlEmFZFddlGmHZHmIZIddlJmKZKeKdZLeKdZMeLr6eLjeLjgjZQeQjZSdZTdZUdZVdZWd ZXd!ZYd"ZZd#Z[d$Z\d%Z]d&Z^d'Z_d(Z`d)Zad*Zbd+Zcd,Zdd-Zed.Zfd/Zgd0Zhd1Zid2Zjd3Zkd4Zld5Zmd6Zny7)8)Sum)Mod)Equality Unequality)Symbol)sqrt) Piecewise) polygamma)SiCi)Matrix) BlockMatrix) MatrixSymbol)Identity)lambdify)symbolsMinMax)xijabcd)Pow) MatrixSolve) logaddexp logaddexp2)log1pexpm1hypotlog10exp2log2Sqrt)Array)ArrayTensorProductArrayAdd PermuteDims ArrayDiagonal) NumPyPrinter SciPyPrinter_numpy_known_constants_numpy_known_functions_scipy_known_constants_scipy_known_functions)convert_matrix_to_array)skipraises) import_modulenumpyjaxct}tdtdkfd}|j|dk(sJ|jdhdik(sJy)z NumPyPrinter needs to print Piecewise()'s choicelist as a list to avoid breaking compatibility with numpy 1.8. This is not necessary in numpy 1.9+. See gh-9747 and gh-9749 for details. r)rTz?numpy.select([numpy.less(x, 0),True], [1,0], default=numpy.nan)r6>nanlessselectN)r,r rdoprintmodule_imports)printerps e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/printing/tests/test_numpy.pytest_numpy_piecewise_regressionrB&sZ nG1a!e*i(A ??1 I JJ J  ! !g/H%I II Icttt}tj |dk(sJt tt}tj |dk(sJy)Nznumpy.logaddexp(a, b)znumpy.logaddexp2(a, b))rrrr,r=r)laelae2s rAtest_numpy_logaddexprG2sQ Aq/C > ! !# &*A AA A a D > ! !$ '+C CC CrCc ts tdtttztt t f}tt t tf|d}d\}}tjdddtj|||tfdt||dzDsJtttztt t f}tt t tf|d}d\}}tjdddtj|||tfdt||dzDsJy) NNumPy not installedr6r r9rKc3(K|] }|z ywN.0i_x_s rA ztest_sum..Bs)Or"()Oc3(K|] }|z ywrNrOrPs rArTztest_sum..Is)Nb"r')NrU) npr3rrrrrrlinspaceallclosesumrange)sfa_b_rSs @rAtest_sumr`9s  "# AFQ1IA!QAw'A FB RR B ;;qR}c)OU2rAv=N)O&O PP P AEAq!9A!QAw'A FB RR B ;;qR}c)NE"b1f.Ws5bbPUVXZ\_`Z`Pab"BGr>b>bs&))rWr3rrrrrrrrrrXrYrZr[)r\r]r^r_rfrgrSs @@@rAtest_multiple_sumsrhLs  "# QUaK!QQ1I.A!Q1a!W-A FB FB RR B ;;qRR,bE"b1f4Ebb dd drCc`ts tdtddd}tddd}t||z}t ||f|d}tj ddgddgg}tj dd gd dgg}|||tj ||k(jsJy) NrIMNr6r9rL)rWr3rr2rarraymatmulall)rjrlcgr]mambs rAtest_codegen_einsumrvZs  "#S!QAS!QA Q 'B!QW%A Aq6Aq6" #B Ab6B7# $B b"I2r* * / / 11 1rCc ts tdtddd}tddd}tddd}tddd}tjddgdd gg}tjdd gd dgg}tjdd gddgg}tjdd gd d gg}t ||}t ||f|d} | ||tj |d dg|ddgk(jsJt||}t ||f|d} | ||||zk(jsJt|||}t |||f|d} | |||||z|zk(jsJt||||}t ||||f|d} | ||||||z|z|zk(jsJt|dd g}t |f|d} | ||jk(jsJtt ||gd}t ||f|d} | ||tjtj |d dg|ddgdk(jsJtt ||d}t ||f|d} | ||tjtj |d dg|ddgddk(jsJy)NrIrjrkrlPQr9rmrnrorLrr6)r9rkrmr)r9rk)axis1axis2)rWr3rrpr(reinsumrrr)r*T transposer+diagonal) rjrlrxryrtrumcmdrsr]s rAtest_codegen_extraris  "#S!QAS!QAS!QAS!QA Aq6Aq6" #B Ab6B7# $B Aq6Aq6" #B Ab6Aq6" #B Aq !B!QW%A b"I21vrAq6: : ? ? AA A !QB!QW%A b"IB  # # %% % !Q B!QB(A b"bMRU2X % * * ,, , !Q1 B!Q1r7+A b"b" Br" , 1 1 33 3 QA B!r7#A bERTTM    '1-| >!B%!5 66 61aA!qA ) B >>!B%!4 55 5 QA!qA ) B >>!B%!5 66 6 aA!qA ) B >>!B%!4 55 5 QA!qA ) B >>!B%!5 66 6 aA!qA ) B >>!B%!4 55 5rCc*ts tdttt}t ttf|}tj gd}d}tj|||gdsJtj gd}tj gd}tj|||gdsJtj gd}tj gd}tj|||gdsJy)NrI)rr9rkrmrk)rr9rr9)rkrkrkrk)rkrmrn)rrrr)rWr3rrrrrpr)rr]r^r_s rAtest_modrs  "# Aq A!QA , B B >>!B)\ 22 2 , B , B >>!B)\ 22 2 , B , B >>!B)\ 22 2rCctts tdtddd}tg|d}|dk(sJy)NrIrkrLF)evaluater6g?)rWr3rr)exprr]s rAtest_powrs8  "# q"u %DT7#A 3#::rCcts tdttft td}t |ddz dz dt zksJy)NrIr6g|=g#B ;)rWr3rrr!absNUMPY_DEFAULT_EPSILONr]s rA test_expm1rsI  "#!uQx)A qx%%' (E4I,I II IrCcts tdttft td}t |ddz dt zksJy)NrIr6g>N}a+)rWr3rrr rrrs rA test_log1prsD  "#!uQx)A qx% E,A$A AA ArCc ts tdtttt ft tt ddddz tksJy)NrIr6rmrnr)rWr3rrrrr"rrOrCrA test_hypotrsD  "# 5xAa W5a;a? @DY YY YrCc ts tdtttft tdddz t ksJy)NrIr6drk)rWr3rrrr#rrOrCrA test_log10rs>  "# 0xeAh059 :>S SS SrCc ts tdtttft tdddz t ksJy)NrIr6r )rWr3rrrr$rrOrCrA test_exp2rs>  "# /xd1gw/2R7 8  "# /xd1gw/4q8 9=R RR RrCc ts tdtttft tdddz t ksJyNrIr6rnrk)rWr3rrrr&rrOrCrA test_Sqrtr>  "# /xd1gw/2Q6 7;P PP PrCc ts tdtttft tdddz t ksJyr)rWr3rrrrrrOrCrA test_sqrtrrrCcts tdtddd}tddd}|dz|z|z}t|||z}t ||f|}t ||f|}tj gdgdgd g}tj j|dk(sJtj gd }tj||||||sJy) NrIrjrmrr9rLr9rkrm)rmrkr)rrz)rmrnr) rWr3rrrrplinalg matrix_rankrY)rjrr matsolve_exprr] f_matsolvem0x0s rA test_matsolver s  "#S!QAS!QA r7Q;?D1%)M!QA1a&-0J 9i3 4B 99  $ )) ) ) B ;;z"b)1R9 55 5rCcts tdtddd}tddd}tddd}tddd}t||g||gg}|jdk(sJt }|j |d k(sJy) NrIa_1rKrma_2a_3a_4)rz%numpy.block([[a_1, a_2], [a_3, a_4]]))rWr3rrshaper,r=)rrrrAr?s rA test_16857r s  "# ub! $C ub! $C ub! $C ub! $Cc3Z#s,-A 77g  nG ??1 !H HH HrCcxts tdtddd}t||t dz}tj ddgddgg}tj ddgddgg}|||k(j sJdd lm}|d d tdttfd y)NrIrjrkr9rmrnrr)rnT)integerc4ttzSrN)rr)rlrsrAz"test_issue_17006..>sA O(DrC) rWr3rrrrprrsympy.core.symbolrr4NotImplementedError)rjr]rtmrrrlrs @@rAtest_issue_17006r/s  "#S!QAA O$A Aq6Aq6" #B Aq6Aq6" #B bERK    )T"AS!QA  DErCcts tdtd\}}}t|||t |||z}t |||f|d}d\}}tj j|tj j|}}tj||||sJtj||||sJy)NzJax not installedzx y zr7)r)rnrr) r7r3rrrrr6asarrayrWrY) ryzrfunc input_tuple1 input_tuple2 input_array1 input_array2s rAtest_jax_tuple_compatibilityr@s  !gGAq! q!Q<#aA, &D Q1ItU +D!5L,!$!2!2r sJ)8$9:=<!>;7-##)))2;QQQ$KKW-(7E"((2,"4"45.22 JDP& d 2'aT&6R3(JBZ T R S Q Q 6* IF" A 9@8L( >rC