
    \h                        S SK JrJr  S SKJr  S SKJr  S SKJrJ	r	J
r
  S SKJr  S SKJrJr  S SKJr  S SKJrJrJrJr  \" S	5      u  rrr\" S
\\5      r\" S\\5      r\" S\\5      r\" S\\5      rS rS rS r S r!S r"S r#S r$S r%S r&g)    )Matrixeye)
ShapeError)MatAdd)Identity	OneMatrix
ZeroMatrix)symbols)raiseswarns_deprecated_sympy)MatrixSymbol)HadamardProducthadamard_productHadamardPowerhadamard_powerzn,m,kZABCc                     [        [        [        [        5      R                  [        R                  :X  d   e[	        [
        S 5        [	        [
        S 5        [        [        S[        -  [        * 5      S   S[        S   -  [        S   -  [        S   -  :X  d   e[        [        [        -  [        5      [        -  n U R                  [        [        4:X  d   e[        [        [        [        [        5      R                  R                  5      [        R                  [        R                  [        R                  1:X  d   eg )Nc                  *    [        [        [        5      $ N)r   r   n     f/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/tests/test_hadamard.py<lambda>&test_HadamardProduct.<locals>.<lambda>   s    q!4r   c                  "    [        [        S5      $ )N   )r   r   r   r   r   r   r      s    q!4r      r    r    )r   r   r   shaper   	TypeErrorr   r   r   ksetTargs)mixs    r   test_HadamardProductr+      s    1a#))QWW444
945
9451acA2&t,4L1T7"QtW,- - - !A#q
!!
#C99Aq!Q'))../ACCacc?BBBr   c                  \    [        [        [        5      [        [        [        5      :w  d   eg r   )r   r   r   r   r   r   %test_HadamardProduct_isnt_commutativer-   !   s    1a OAq$9999r   c                      [        SSS5      n [        SSS5      n[        SSS5      nU [        X5      -  S   U S   US   -  US   -  U S   US   -  US   -  -   :X  d   eg )NXr!   Yr   r   r   r   r    r    r   )r   r   )r/   r0   r   s      r   test_mixed_indexingr4   %   s    S!QAS!QAS!QAoa##T*dGAdGOAdG#agagoag&==> > >r   c                  d   [        SSS5      n [        SSS5      n[        5          [        U SS9nS S S 5        [        W[        5      (       d   eUR	                  5       n[        U[         5      (       d   e[        SS5      n[        SS5      n[        X@5      R	                  5       U:X  d   e[        XPX5      R	                  5       [        U S5      :X  d   e[        XU5      R	                  5       [        X5      :X  d   e[        XXQ5      R	                  5       U:X  d   eg ! , (       d  f       N= f)Nr/   r!   r0   F)check)r   r   r   
isinstancedoitr	   r   r   )r/   r0   exprexpr2r   Us         r   test_canonicalizer<   .   s   S!QAS!QA		!q. 
"dO,,,,IIKEe\****1aA!QA1 %%'1,,,1&++-q!1DDDD1#((*oa.CCCC1&++-222 
"	!s   D!!
D/c                     [        SSS9u  pn[        SX5      n[        SX5      n[        SX 5      n[        U 5      n[        [        S 5        [        U5      U:X  d   e[        [        X45      [        5      (       d   e[        X45      R                  5       [        X45      :X  d   e[        XV5      [        Xe5      :X  d   e[        [        XV5      [        5      (       d   e[        S[        S	5      n[        [        [        S	5      [        [        S	5      5      n[        X5      nUR                  5       U:X  d   e[        [        S
 5        g )Nm, n, pTintegerr   r   r/   c                      [        5       $ r   )r   r   r   r   r   test_hadamard.<locals>.<lambda>E   s    .0r   ar    c                      [        5       $ r   r   r   r   r   r   rB   Q   s    0r   )r
   r   r   r   r%   r   r7   r   r8   r&   r   r	   r   
ValueError)	mr   pr   r   r/   IrC   r9   s	            r   test_hadamardrJ   >   s   i.GA!S!AS!AS!AA
901A!###&q,o>>>>A!&&(,<Q,BBBBA!_Q%::::&q,o>>>>S!QA*Q"IaO4D4#D99;!
:01r   c            	      >   [        SSS5      R                  5       n [        SSS5      R                  5       n[        SSS5      n[        X5      n[        [	        X5       VVs/ s H	  u  pEXE-  PM     snn5      R                  SS5      nX6:X  d   e[        XU5      nU[        Xb5      :X  d   e[        [        S5      U 5      nU[        U S   SS/SU S   S/SSU S   //5      :X  d   e[        [        S5      [        S5      5      nU[        S5      :X  d   eg s  snnf )	Nr      r   r/   r1   r   r"   )r!   r!   )r   as_explicitr   r   zipreshaper   r   )r   r   r/   r9   ijrets          r   'test_hadamard_product_with_explicit_matrS   T   s   S!Q++-AS!Q++-AS!QAA!D
#a),)$!!#),
-
5
5a
;C;;A!$D?3****CFA&D6AdGQ?Q$OaAdG_MNNNNCFCF+D3q6>> -s   "D
c                    ^ [        SSS9u  pn[        SX5      m[        TS5      T:X  d   e[        [        TS5      [        5      (       d   e[        TU5      R
                  [        TR
                  U5      :X  d   e[        TU5      S   TS   U-  :X  d   e[        X5      X-  :X  d   e[        [        U4S j5        g )	Nr>   Tr?   r   r    r!   r1   c                     > [        T T 5      $ r   )r   )r   s   r   r   %test_hadamard_power.<locals>.<lambda>l   s    ~a3r   )r
   r   r   r7   r   r(   r   rF   )rG   r   rH   r   s      @r   test_hadamard_powerrW   c   s    i.GA!S!A!Q1$$$nQ*M::::!Q!!^ACC%;;;;!Q%4!333!14'''
:34r   c                  ,   [        SSS5      n [        SSS5      n[        S5      u  p#[        X#5      X#-  :X  d   e[        X!5      R                  5       [	        X!S   -  X!S   -  /X!S   -  X!S   -  //5      :X  d   e[        X5      R                  5       [	        U S   U-  U S   U-  /U S   U-  U S   U-  //5      :X  d   e[        X5      R                  5       [	        U S   US   -  U S   US   -  /U S   US   -  U S   US   -  //5      :X  d   eg )	Nr   r!   r   za br1   r2   r3   r"   )r   r
   r   rM   r   )r   r   rC   bs       r   test_hadamard_power_explicitrZ   o   se   S!QAS!QA5>DA!$&&&**,$ZdG$$ZdG$& 	'' ' '
 **,tWaZ4!$tWaZ4!$& 	'' ' '
 **,tWagqw$/0tWagqw$/02 	33 3 3r   c                     ^ ^ [        SSS5      m [        SSS5      m[        [        U U4S j5        [        [        U U4S j5        [        SSS5      m [        [        U U4S j5        [        [        U U4S j5        g )	Nr   r!   rL   r   c                     > [        T T5      $ r   rE   r   r   s   r   r   "test_shape_error.<locals>.<lambda>       q!4r   c                     > [        T T5      $ r   r   r]   s   r   r   r^          }Q2r   c                     > [        T T5      $ r   rE   r]   s   r   r   r^      r_   r   c                     > [        T T5      $ r   ra   r]   s   r   r   r^      rb   r   )r   r   r   r]   s   @@r   test_shape_errorre      sY    S!QAS!QA
:45
:23S!QA
:45
:23r   N)'sympy.matrices.denser   r   sympy.matrices.exceptionsr   !sympy.matrices.expressions.mataddr   "sympy.matrices.expressions.specialr   r   r	   
sympy.corer
   sympy.testing.pytestr   r   sympy.matricesr   sympy.matrices.expressionsr   r   r   r   r   rG   r&   r   r   r   r   r+   r-   r4   r<   rJ   rS   rW   rZ   re   r   r   r   <module>rn      s    , 0 4 N N  ? ' i i
'
1aaaaaC:>3 2,	53.4r   