+
    i              	          ^ RI Ht ^ RIt^ RIHtHt ^ RIHtHt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HtHtHtHtHt ^ R
IHt ^ RIHtHt ^ RI H!t" ^ RI#H$t$ ^ RI%H&t&  ! R R]]4      t']PP                  ! ]]'3]'4       R t)R t*R t+R t,]! R 4      ]]]! ]*])]+4      ],]! ]4      3t-]! ]! R ]! ]-!  4      4      t.R# )    )reduceN)Basicsympify)addAdd_could_extract_minus_sign)default_sort_key)adjoint)
MatrixBase)	transpose)rm_idunpackflattensort	conditionexhaustdo_oneglom)
MatrixExpr)
ZeroMatrixGenericZeroMatrix)validate_matadd_integer)sift)sympy_deprecation_warningc                      a a ] tR t^t oRtRt]! 4       tRRRRRR/R lt]	R	 4       t
]R
 4       tR tV 3R ltR tR tR tR tR tR tRtVtV ;t# )MatAdda  A Sum of Matrix Expressions

MatAdd inherits from and operates like SymPy Add

Examples
========

>>> from sympy import MatAdd, MatrixSymbol
>>> A = MatrixSymbol('A', 5, 5)
>>> B = MatrixSymbol('B', 5, 5)
>>> C = MatrixSymbol('C', 5, 5)
>>> MatAdd(A, B, C)
A + B + C
TevaluateFcheckN_sympifyc                 a  V'       g   S P                   # \        \        V 3R  lV4      4      pV'       d   \        \        \        V4      4      p\
        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      h\        P                  ! S .VO5!  pVe   \        RRRR7       VRJd
   \        V!   V'       d   S P                  V4      pV# )	c                 "   < SP                   V 8g  # N)identity)iclss   &ځ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/matrices/expressions/matadd.py<lambda> MatAdd.__new__.<locals>.<lambda>,   s    S\\Q%6    c              3   B   "   T F  p\        V\        4      x  K  	  R # 5ir"   )
isinstancer   ).0args   & r&   	<genexpr>!MatAdd.__new__.<locals>.<genexpr>0   s     ?$3:c:..$s   FTz Mix of Matrix and Scalar symbolszaPassing check to MatAdd is deprecated and the check argument will be removed in a future version.z1.11z,remove-check-argument-from-matrix-operations)deprecated_since_versionactive_deprecations_target)r#   listfiltermapr   all	TypeErrorr   __new__r   validate	_evaluate)r%   r   r   r   argsobjs   f$$$* r&   r7   MatAdd.__new__&   s    << F6=>GT*+Ds?$?sss?$???>??mmC'$'%s)/+Y[
 dO--$C
r)   c                    \        V4      # r"   )canonicalize)r%   exprs   &&r&   r9   MatAdd._evaluateC   s    D!!r)   c                <    V P                   ^ ,          P                  # r   )r:   shapeselfs   &r&   rC   MatAdd.shapeG   s    yy|!!!r)   c                    \        V 4      # r"   )r   rD   s   &r&   could_extract_minus_signMatAdd.could_extract_minus_signK   s    (..r)   c                N   < \         \        V `
  ! R/ VB pV P                  V4      # )N )superr   expandr9   )rE   kwargsexpanded	__class__s   &, r&   rM   MatAdd.expandN   s&    -77~~h''r)   c           
     r    \        V P                   Uu. uF  qDP                  ! W3/ VB NK  	  up!  # u upi r"   )r   r:   _entry)rE   r$   jrN   r-   s   &&&, r&   rS   MatAdd._entryR   s/    499E9CZZ//9EFFEs   4c                    \        V P                   Uu. uF  p\        V4      NK  	  up!  P                  4       # u upi r"   )r   r:   r   doitrE   r-   s   & r&   _eval_transposeMatAdd._eval_transposeU   s0    $))<)3	#)<=BBDD<   ;c                    \        V P                   Uu. uF  p\        V4      NK  	  up!  P                  4       # u upi r"   )r   r:   r
   rW   rX   s   & r&   _eval_adjointMatAdd._eval_adjointX   s0    		:		:;@@BB:r[   c                    ^RI H p \        V P                   Uu. uF
  q!! V4      NK  	  up!  P                  4       # u upi )   )trace)ra   r   r:   rW   )rE   ra   r-   s   &  r&   _eval_traceMatAdd._eval_trace[   s3     49959CU3Z956;;==5s   =c                    VP                  R R4      pV'       d,   V P                   Uu. uF  q3P                  ! R/ VB NK  	  ppMV P                  p\        \	        V!  4      # u upi )deepTrK   )getr:   rW   r>   r   )rE   hintsre   r-   r:   s   &,   r&   rW   MatAdd.doit_   sV    yy&15;#HH%u%D;D99DFDM** <s   A$c                    V P                    Uu. uF  q"P                  V4      NK  	  ppV UUu. uF  qD F  qUNK  	  K  	  upp# u upi u uppi r"   )r:   _eval_derivative_matrix_lines)rE   xr-   	add_linesr$   rT   s   &&    r&   rj   $MatAdd._eval_derivative_matrix_linesg   sI    EIYYOYc66q9Y	O$09aaa900 P0s
   AA
rK   )__name__
__module____qualname____firstlineno____doc__	is_MatAddr   r#   r7   classmethodr9   propertyrC   rH   rM   rS   rY   r]   rb   rW   rj   __static_attributes____classdictcell____classcell__)rP   __classdict__s   @@r&   r   r      s      I "HU $  : " " " "/(GEC>+1 1r)   r   c                 0    V P                  4       ^ ,          # rB   )as_coeff_mmulr-   s   &r&   r'   r'   n   s    ))+A.r)   c                 B    \        V P                  4       ^,          4      # r`   )r   r{   r|   s   &r&   r'   r'   o   s    s002156r)   c                 $    V ^8X  d   V# W,          # r~   rK   )cntmats   &&r&   combiner   p   s    
ax
yr)   c                    \        V P                  R 4      p\        VR,          4      ^8  d8   \        VR,          \	        \
        P                  VR,          4      .,           !  # V # )a  Merge explicit MatrixBase arguments

Examples
========

>>> from sympy import MatrixSymbol, eye, Matrix, MatAdd, pprint
>>> from sympy.matrices.expressions.matadd import merge_explicit
>>> A = MatrixSymbol('A', 2, 2)
>>> B = eye(2)
>>> C = Matrix([[1, 2], [3, 4]])
>>> X = MatAdd(A, B, C)
>>> pprint(X)
    [1  0]   [1  2]
A + [    ] + [    ]
    [0  1]   [3  4]
>>> pprint(merge_explicit(X))
    [2  2]
A + [    ]
    [3  5]
c                 "    \        V \        4      # r"   )r+   r   r|   s   &r&   r'    merge_explicit.<locals>.<lambda>   s    :c:+Fr)   TF)r   r:   lenr   r   operatorr   )mataddgroupss   & r&   merge_explicitr   w   sQ    * &++FGF
6$<1ufTl)K(LLNNr)   c                 <    V ^ 8H  ;'       g    \        V \        4      # rB   )r+   r   rk   s   &r&   r'   r'      s    a<<:a#<<r)   c                 "    \        V \        4      # r"   )r+   r   r   s   &r&   r'   r'      s    :a+@r)   )/	functoolsr   r   
sympy.corer   r   sympy.core.addr   r   r   sympy.core.sortingr	   sympy.functionsr
   sympy.matrices.matrixbaser   $sympy.matrices.expressions.transposer   sympy.strategiesr   r   r   r   r   r   r   r   "sympy.matrices.expressions.matexprr   "sympy.matrices.expressions.specialr   r   !sympy.matrices.expressions._shaper   r8   sympy.utilities.iterablesr   sympy.utilities.exceptionsr   r   register_handlerclass	factor_of	matrix_ofr   r   rulesr>   rK   r)   r&   <module>r      s      % > > / # 0 :   9 L Q * @V1Z V1p   3- 0 /	6	8 
<	=			iG	,				! y!@!'1 2r)   