K i \ddlmZddlmZddlmZddlmZdZGddeZ dZ d Z y ) ) MatrixExpr)Basic)Tuple)floorct|tr#|j|j|jf}t|t t tfs|dkdk(r||z }||dzdf}t |}t|dk(r|jd|\}}}|xsd}||}|dkdk(r||z }|dkdk(r||z }|xsd}||z |zdkdk(r t|||fS)NrT) isinstanceslicestartstopsteptuplelistrlenappend IndexError)i parentsizer r rs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/matrices/expressions/slice.py normalizers!U WWaffaff % a%u- . Ed? OA !QK QA 1v{  E4 JQE |  d  qT  91D !d*l 4 creZdZdZedZedZedZdZedZ dZ edZ y ) MatrixSlicea A MatrixSlice of a Matrix Expression Examples ======== >>> from sympy import MatrixSlice, ImmutableMatrix >>> M = ImmutableMatrix(4, 4, range(16)) >>> M Matrix([ [ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) >>> B = MatrixSlice(M, (0, 2), (2, 4)) >>> ImmutableMatrix(B) Matrix([ [2, 3], [6, 7]]) c |jdS)Nrargsselfs rzMatrixSlice.4s499Q<rc |jdS)Nrrrs rr zMatrixSlice.5TYYq\rc |jdS)Nr rrs rr zMatrixSlice.6r"rct||jd}t||jd}t|t|cxk(rdk(sttd|dkDdk(s;|jd|dkdk(s#d|dkDdk(s|jd|dkdk(r tt |t r t |||Stj||t|t|S)NrrT) rshaperrr rmat_slice_of_slicer__new__r)clsparentrowslicecolslices rr(zMatrixSlice.__new__8sXv||A7Xv||A7H X3!3, 4,  !_ % \\!_x{ *t 3 !_ % \\!_x{ *t 3,  fk *%fhA A}}S&%*:E8>> from sympy import MatrixSymbol >>> X = MatrixSymbol('X', 10, 10) >>> X[:, 1:5][5:8, :] X[5:8, 1:5] >>> X[1:9:2, 2:6][1:3, 2] X[3:7:2, 4:5] )rFr+r,rr*)r*r+r,rowcols rr'r'fs7 ( 3C ( 3C v}}c3 //rN) "sympy.matrices.expressions.matexprrsympy.core.basicrsympy.core.containersr#sympy.functions.elementary.integersrrrrFr'r<rrrNs-9"'526.*6.r  0r