+
    ‹°³j!  ã                   ó¼   € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHtHtHt ^ R	IHt  ! R
 R]4      t ! R R]]4      t ! R R]]4      tR# )é    N)ÚList)ÚBasic)ÚTuple)ÚS)Ú_sympify)ÚMutableNDimArray)Ú	NDimArrayÚImmutableNDimArrayÚ	ArrayKind)Úflattenc                   óp   a € ] tR t^t o R t]V 3R lR l4       tR t]R 4       t	R t
R tV 3R ltR	tV tR
# )ÚDenseNDimArrayc                ó   € \        V/ VB # ©N©ÚImmutableDenseNDimArray)ÚselfÚargsÚkwargss   &*,Úd/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/tensor/array/dense_ndim_array.pyÚ__new__ÚDenseNDimArray.__new__   s   € Ü&¨Ð7°Ñ7Ð7ó    c                ó    <€ V ^8„  d   QhRS[ /# )é   Úreturn)r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚDenseNDimArray.__annotate__   s   ø€ ÷ -ñ -‘iñ -r   c                óB   € \         P                  ! V P                  4      # r   )r   Ú_unionÚ_array©r   s   &r   ÚkindÚDenseNDimArray.kind   s   € ä×Ò §¡Ó,Ð,r   c                ó‚  € V P                  V4      pVe   V# V P                  V4      p\        V\        4      '       dÔ   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       dš   V P                  V4      w  r4V Uu. uF$  qPP                  V P                  V4      ,          NK&  	  pp\        V4       UUu. uF.  w  rW\        W,          \        4      '       g   K#  \        V4      NK0  	  ppp\        V 4      ! Wh4      # V P                  V4      pV P                  V,          # u upi u uppi )a”  
Allows to get items from N-dim array.

Examples
========

>>> from sympy import MutableDenseNDimArray
>>> a = MutableDenseNDimArray([0, 1, 2, 3], (2, 2))
>>> a
[[0, 1], [2, 3]]
>>> a[0, 0]
0
>>> a[1, 1]
3
>>> a[0]
[0, 1]
>>> a[1]
[2, 3]


Symbolic index:

>>> from sympy.abc import i, j
>>> a[i, j]
[[0, 1], [2, 3]][i, j]

Replace `i` and `j` to get element `(1, 1)`:

>>> a[i, j].subs({i: 1, j: 1})
3

c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir   ©Ú
isinstanceÚslice©Ú.0Úis   & r   Ú	<genexpr>Ú-DenseNDimArray.__getitem__.<locals>.<genexpr>?   ó   é € Ð+PÉ%ÀQ¬J°q¼%×,@Ð,@Ë%ùó   ‚TF)Ú_check_symbolic_indexÚ_check_index_for_getitemr*   ÚtupleÚanyÚ _get_slice_data_for_array_accessr#   Ú_parse_indexÚ	enumerater+   ÚlenÚtype)	r   ÚindexÚsyindexÚ
sl_factorsÚeindicesr.   ÚarrayÚelÚnshapes	   &&       r   Ú__getitem__ÚDenseNDimArray.__getitem__   sÿ   € ðB ×,Ñ,¨UÓ3ˆØÒØˆNà×-Ñ-¨eÓ4ˆä�eœU×#Ò#¯«Ñ+PÉ%Ó+P¯¯ªÑ+PÉ%Ó+P×(PÒ(PØ#'×#HÑ#HÈÓ#OÑ ˆJÙ@HÓIÁ¸1—[‘[ ×!2Ñ!2°1Ó!5×6Ð6ÁˆEÐIÜ+4°ZÔ+@Ô`Ñ+@¡% !ÄJÈuÍxÔY^×D_”g”c˜"–gÑ+@ˆFÑ`Ü˜”:˜eÓ,Ð,à×%Ñ% eÓ,ˆEØ—;‘;˜uÕ%Ð%ùò JùÛ`s   Â*D6Ã
 D;Ã/D;c                ó†   € \         P                  ! R  V\        P                  4      pV P	                  ^ .V,          3V4      # )c                 ó   € W,          # r   © ©ÚxÚys   &&r   Ú<lambda>Ú&DenseNDimArray.zeros.<locals>.<lambda>J   s   € °A¶Cr   )Ú	functoolsÚreducer   ÚOneÚ_new)ÚclsÚshapeÚlist_lengths   &* r   ÚzerosÚDenseNDimArray.zerosH   s5   € ä×&Ò&Ñ'7¸ÄÇÁÓFˆØ�x‰x˜!˜˜[�Ð*¨EÓ2Ð2r   c                óº   € ^ RI Hp V P                  4       ^8w  d   \        R4      hV! V P                  ^ ,          V P                  ^,          V P
                  4      # )a$  
Converts MutableDenseNDimArray to Matrix. Can convert only 2-dim array, else will raise error.

Examples
========

>>> from sympy import MutableDenseNDimArray
>>> a = MutableDenseNDimArray([1 for i in range(9)], (3, 3))
>>> b = a.tomatrix()
>>> b
Matrix([
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])

)ÚMatrixzDimensions must be of size of 2)Úsympy.matricesrW   ÚrankÚ
ValueErrorrR   r#   )r   rW   s   & r   ÚtomatrixÚDenseNDimArray.tomatrixM   sD   € õ" 	*à�9‰9‹;˜!ÔÜÐ>Ó?Ð?á�d—j‘j •m T§Z¡Z°¥]°D·K±KÓ@Ð@r   c                óÚ   € \         P                  ! R V4      pW P                  8w  d)   \        RV P                  \	        V4      V3,          4      h\        V 4      ! V P                  V4      # )a�  
Returns MutableDenseNDimArray instance with new shape. Elements number
must be        suitable to new shape. The only argument of method sets
new shape.

Examples
========

>>> from sympy import MutableDenseNDimArray
>>> a = MutableDenseNDimArray([1, 2, 3, 4, 5, 6], (2, 3))
>>> a.shape
(2, 3)
>>> a
[[1, 2, 3], [4, 5, 6]]
>>> b = a.reshape(3, 2)
>>> b.shape
(3, 2)
>>> b
[[1, 2], [3, 4], [5, 6]]

c                 ó   € W,          # r   rG   rH   s   &&r   rK   Ú(DenseNDimArray.reshape.<locals>.<lambda>{   s   € °a¶cr   z2Expecting reshape size to %d but got prod(%s) = %d)rM   rN   Ú
_loop_sizerZ   Ústrr;   r#   )r   ÚnewshapeÚnew_total_sizes   &* r   ÚreshapeÚDenseNDimArray.reshapee   se   € ô, #×)Ò)©/¸8ÓDˆØŸ_™_Ô,ÜÐQØ—‘¤ X£°ðU@õ @ó Að Aô �DŒz˜$Ÿ+™+ xÓ0Ð0r   c                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )r   r#   )r   r   )r   r   s   "€r   r   r       s   ø‡ ‚ á‘�KÑò r   rG   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úpropertyr%   rC   ÚclassmethodrT   r[   rd   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      sK   ø‡ € ò8ð ÷-ó ð-ò.&ð` ñ3ó ð3òAò01÷q ƒ r   r   c                   óL   a € ] tR t^„t o RR lt]R 4       tR tR tR t	Rt
V tR# )	r   Nc                ó(   € V P                   ! W3/ VB # r   ©rP   ©rQ   ÚiterablerR   r   s   &&&,r   r   ÚImmutableDenseNDimArray.__new__…   ó   € Ø�xŠx˜Ñ2¨6Ñ2Ð2r   c                ó`  € V P                   ! W3/ VB w  r$\        \        \        V4      !  pV P	                  WB4       \        V4      p\        V!  p\        P                  ! WV3/ VB pW%n        \        V4      Vn
        \        V4      Vn        \        P                  ! R  V^4      Vn        V# )c                 ó   € W,          # r   rG   rH   s   &&r   rK   Ú.ImmutableDenseNDimArray._new.<locals>.<lambda>“   ó   € °q¶sr   )Ú_handle_ndarray_creation_inputsr   Úmapr   Ú_check_special_boundsr   r   r   Ú_shapeÚlistr#   r:   Ú_rankrM   rN   r`   ©rQ   ru   rR   r   Ú	flat_listr   s   &&&,  r   rP   ÚImmutableDenseNDimArray._newˆ   s™   € à×>Ò>¸xÑYÐRXÑYÑˆÜ”sœ8 UÓ+Ñ,ˆØ×!Ñ! )Ô3Ü˜IÓ&ˆ	Ü˜9Ñ%ˆ	Ü�}Š}˜S¨UÑ=°fÑ=ˆØŒÜ˜9“oˆŒÜ˜“ZˆŒ
Ü#×*Ò*©?¸EÀ1ÓEˆŒØˆr   c                ó   € \        R 4      h)zimmutable N-dim array)Ú	TypeError)r   r<   Úvalues   &&&r   Ú__setitem__Ú#ImmutableDenseNDimArray.__setitem__–   s   € ÜÐ/Ó0Ð0r   c                ó   € \        V 4      # r   )ÚMutableDenseNDimArrayr$   s   &r   Ú
as_mutableÚ"ImmutableDenseNDimArray.as_mutable™   s   € Ü$ TÓ*Ð*r   c                ó0   € ^ RI Hp V P                  V4      # )r   )Úsimplify)Úsympy.simplify.simplifyr�   Ú	applyfunc)r   r   r�   s   &, r   Ú_eval_simplifyÚ&ImmutableDenseNDimArray._eval_simplifyœ   s   € Ý4Ø�~‰~˜hÓ'Ð'r   ©r#   r`   r�   r   r   )rg   rh   ri   rj   r   rl   rP   rˆ   rŒ   r’   rn   ro   rp   s   @r   r   r   „   s2   ø‡ € ô3ð ñó ðò1ò+÷(ð (r   r   c                   óV   a € ] tR t^ t o RR lt]R 4       tR tR t]	R 4       t
RtV tR# )	r‹   Nc                ó(   € V P                   ! W3/ VB # r   rs   rt   s   &&&,r   r   ÚMutableDenseNDimArray.__new__¢   rw   r   c                ó*  € V P                   ! W3/ VB w  r$\        V4      p\        P                  V 4      pW%n        \        V4      Vn        \        V4      Vn        V'       d    \        P                  ! R  V4      Vn        V# \        V4      Vn        V# )c                 ó   € W,          # r   rG   rH   s   &&r   rK   Ú,MutableDenseNDimArray._new.<locals>.<lambda>­   r{   r   )r|   r   Úobjectr   r   r€   r#   r:   r�   rM   rN   r`   r‚   s   &&&,  r   rP   ÚMutableDenseNDimArray._new¥   s   € à×>Ò>¸xÑYÐRXÑYÑˆÜ˜IÓ&ˆ	Ü�~‰~˜cÓ"ˆØŒÜ˜9“oˆŒÜ˜“ZˆŒ
ßFKœ)×*Ò*©?¸EÓBˆŒØˆô RUÐU^ÓQ_ˆŒØˆr   c                ó  € \        V\        4      '       d¨   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       dn   V P                  W4      w  r#pV FQ  p\	        WT4       UUu. uF  w  rgVf   K  Wg,
          NK  	  pppW(,          V P
                  V P                  V4      &   KS  	  R# V P                  V4      pV P                  V4       \        V4      pW P
                  V&   R# u uppi )zÏAllows to set items to MutableDenseNDimArray.

Examples
========

>>> from sympy import MutableDenseNDimArray
>>> a = MutableDenseNDimArray.zeros(2,  2)
>>> a[0,0] = 1
>>> a[1,1] = 1
>>> a
[[1, 0], [0, 1]]

c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir   r)   r,   s   & r   r/   Ú4MutableDenseNDimArray.__setitem__.<locals>.<genexpr>¾   r1   r2   TFN)	r*   r5   r6   Ú$_get_slice_data_for_array_assignmentÚzipr#   r8   Ú_setter_iterable_checkr   )	r   r<   r‡   r?   Úslice_offsetsr.   ÚindÚjÚother_is	   &&&      r   rˆ   Ú!MutableDenseNDimArray.__setitem__°   sÌ   € ô �eœU×#Ò#¯«Ñ+PÉ%Ó+P¯¯ªÑ+PÉ%Ó+P×(PÒ(PØ-1×-VÑ-VÐW\Ó-dÑ*ˆE˜]Û�Ü14°QÔ1FÔXÑ1F¡v sÈ!œ7˜3Ÿ7˜7Ñ1F�ÑXØ49µN�—‘˜D×-Ñ-¨aÓ0Ó1ó ð ×%Ñ% eÓ,ˆEØ×'Ñ'¨Ô.Ü˜U“OˆEØ!&�K‰K˜Óùó Ys   Á8C;ÂC;c                ó   € \        V 4      # r   r   r$   s   &r   Úas_immutableÚ"MutableDenseNDimArray.as_immutableÉ   s   € Ü& tÓ,Ð,r   c                ól   € V P                    UUu0 uF  qP                   F  q"kK  	  K  	  upp# u uppi r   )r#   Úfree_symbols)r   r¥   r.   s   &  r   r¬   Ú"MutableDenseNDimArray.free_symbolsÌ   s(   € àŸ;š;Ô?™;�a·´¨1’±‘™;Ò?Ð?ùÓ?s   �0r”   )NN)rg   rh   ri   rj   r   rl   rP   rˆ   r©   rk   r¬   rn   ro   rp   s   @r   r‹   r‹       s>   ø‡ € ô3ð ñó ðò'ò2-ð ñ@ó ö@r   r‹   )rM   Útypingr   Úsympy.core.basicr   Úsympy.core.containersr   Úsympy.core.singletonr   Úsympy.core.sympifyr   Ú%sympy.tensor.array.mutable_ndim_arrayr   Úsympy.tensor.array.ndim_arrayr	   r
   r   Úsympy.utilities.iterablesr   r   r   r‹   rG   r   r   Ú<module>r¶      sR   ðÛ Ý å "Ý 'Ý "Ý 'Ý Bß RÑ RÝ -ôt1�Yô t1ôn(˜nÐ.@ô (ô8.@˜NÐ,<ö .@r   