
    sg                     j   d dl mZmZ d dlmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZ d dlmZ d dlm Z m!Z!m"Z" d dl#m$Z$  ed      Z%e%jM                         \  Z'Z(Z) ed      \  Z*Z+Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9y)    )RationalS)simplifytrigsimp)
DerivativeFunctiondiff)pi)symbols)sqrt)cossin)Integral)ImmutableDenseMatrix)Vector
BaseVector	VectorAdd	VectorMul
VectorZero
CoordSys3D)CrossDotcross)raisesCza b cc                  >   t         j                  t        z  t         j                  t         j                  z  t        z  z   } t         j                  t        z  t         j
                  t        z  z   t         j                  t        z  z   }t        | |      t        t         j                  t         j                  z  t         j                  dz  t         j                  z  z   t         j                  t         j                  z  t         j
                  t         j                  z  z   t         j                  t         j                  z  z         k(  sJ t        | |      j                         t         j                  dz  t         j                  z  t         j                   t         j                  z  t         j                  z  z   t         j                  t         j
                  z  t         j                  t         j                  dz  z  z
  t         j                  z  z   k(  sJ t        | |      t         j                  dz  t         j                  z  t         j                   t         j                  z  t         j                  z  z   t         j                  t         j
                  z  t         j                  t         j                  dz  z  z
  t         j                  z  z   k(  sJ t        | |      t        ||        k(  sJ t        | |      t        ||       z   t        j                  k(  sJ y )N      )r   xizjykr   doitr   r   zerov1v2s     Q/var/www/html/venv/lib/python3.12/site-packages/sympy/vector/tests/test_vector.py
test_crossr,      s   	
q1339q=	 B	
q1337	QSS1W	$BR=E!##acc'ACCF133J"6ACC!##acc'8IACCPQPSPSG8STTTTR=1336!##:!##acc133#>!##acc'ACCPQPSPSUVPVJBVXYX[X[A[#[[[[R=ACCF133J133$qss(ACC7133qss7QSSaZ;OQRQTQT:TTTTTR=U2r]N***R=5R=(FKK777    c                      t         j                  t        z  t         j                  t         j                  z  t        z  z   } t         j                  t        z  t         j
                  t        z  z   t         j                  t        z  z   }t        | |      t        t         j                  t         j                  z  t         j                  dz  t         j                  z  z   t         j                  t         j                  z  t         j
                  t         j                  z  z   t         j                  t         j                  z  z         k(  sJ t        | |      j                         t         j                  dz  t         j
                  t         j                  dz  z  z   k(  sJ t        | |      j                         t         j                  dz  t         j
                  t         j                  dz  z  z   k(  sJ t        | |      t        ||       k(  sJ y )Nr   )	r   r    r!   r"   r#   r$   r%   r   r&   r(   s     r+   test_dotr/       sC   	
q1339q=	 B	
q1337	QSS1W	$Br2;#acc!##gQqss
2ACCGacc!##g4EACC4OPPPPr2;a!##acc1f*!4444r2;a!##acc1f*!4444r2;#b"+%%%r-   c                  D   dt         z  } | t         dz  k(  sJ | j                  t         dik(  sJ dt        z  dt         z  z   dt        z  z   }dt        z  dt         z  z   t        z   dt        z  z   t        z   }||k(  sJ |j	                         |j	                         k(  sJ y)zq
    Test whether the Vector framework confirms to the hashing
    and equality testing properties of SymPy.
    r         r   N)r#   
componentsr!   r%   __hash__r)   r*   v3s      r+   test_vector_sympyr7   )   s    
 
1B199==QF"""	
1qsQqSB	
1qsQ1	q	 B8O8;;=BKKM)))r-   c                  B
   t        t        t              sJ t        t        k7  sJ t        t        k7  sJ t        t        k7  sJ t        t        z
  t
        j                  k(  sJ t        t
        j                  z   t        k(  sJ t        t
        j                  z
  t        k(  sJ t
        j                  dk7  sJ t
        j                   t
        j                  k(  sJ t        t        z  t        t        z  z   t        t        z  z   t        dz  t        z  t        dz  t        z  z   t        dz  t        z  z   } | z   }dz  }t        t        z  }t        t              sJ z
  t
        j                  k(  sJ t
        j                  z   k(  sJ j                  t              t        k(  sJ j                  t              t        k(  sJ j                  t              t        k(  sJ t        j                  |       t        dz  k(  sJ t        j                  |       t        dz  k(  sJ t        j                  |       t        dz  k(  sJ |j                  t              t        dz  t        z   k(  sJ |j                  t              t        dz  t        z   k(  sJ |j                  t              t        dz  t        z   k(  sJ | z   | z   k(  sJ | z
  d| z
  z  k(  sJ t        z  t        z  k(  sJ t        |t              sJ |j                  t        k(  sJ |j                  t        k(  sJ t        |t
              sJ t        |t              sJ t        |t
              sJ t        t
        j                  t              sJ t        t
        j                  t
              sJ t        dz  t              sJ j!                  t"              t%        t        gt        gt        gg      k(  sJ t        j&                  t        dik(  sJ |j&                  t        t        ik(  sJ j&                  t        t        t        t        t        t        ik(  sJ t        t
        j                        k(  sJ t        t              t        z  k(  sJ t        dt              t        k(  sJ t        t
        j                        k(  sJ t        dt
        j                        t
        j                  k(  sJ t)        t*        fd       t)        t*        fd       y )Nr   r      c                  &     j                  d      S Nr:   )outerr)   s   r+   <lambda>ztest_vector.<locals>.<lambda>n   s    bhhqk r-   c                  &     j                  d      S r<   )dotr>   s   r+   r?   ztest_vector.<locals>.<lambda>o   s    bffQi r-   )
isinstancer!   r   r#   r%   r   r'   abcr   rA   r   base_vectormeasure_numberr   	to_matrixr   Matrixr3   r   	TypeError)r*   r6   v4v5r)   s       @r+   test_vectorrM   7   s   a$$$6M66M66M6q5FKKv{{?av{{?a;;!KK<6;;&&&	
1qsQqSB	
Aa!Q$q&1a46	!B	bB	
RB	
QBb)$$$7fkk!!!r!!!66!9>>66!9>>66!9>>55915591559166!91q   66!91q   66!91q   7b2g7bBGn$$$r6R!Vb)$$$>>Q!!!b&!!!b)$$$b&!!!fkk:...fkk6***b1fj)))<<?fqcA3_5555<<Aq6!!!==QF"""==Q1aA....R%+++Qr!t###Q?aR%+++Q$333
9)*
9'(r-   c                     t         j                  j                         dk(  sJ t         j                  j                         t         j                  k(  sJ t        j                         dk(  sJ t
        j                         dk(  sJ t        j                         dk(  sJ t        j                         t        k(  sJ t
        j                         t
        k(  sJ t        j                         t        k(  sJ t        t        z  } | j                         t        t        t        dz        z  t        z  k(  sJ | j                         t        t        dz        k(  sJ t        t        z  t        t
        z  z   t        t        z  z   }|j                         t        t        dz  t        dz  z   t        dz  z         k(  sJ |j                         ||j                         z  k(  sJ t        t
        z   }|j                         t        d      dz  t        j                  z  t        d      dz  t        j
                  z  z   k(  sJ y )Nr   r:   r   )r   r'   	magnitude	normalizer!   r#   r%   rC   r   rD   rE   r   r5   s      r+   test_vector_magnitude_normalizerQ   r   s   ;;  "a''';;  "fkk111;;=A;;=A;;=A;;=A;;=A;;=A	
QB<<>aQT
lA----<<>T!Q$Z'''	
1qsQqSB<<>T!Q$A+1"45555<<>R",,.0000	
QB<<>d1gai_Q	133>>>>r-   c                     t        d      \  } }}}dt        z  dt        z  z   t        z  }|t        z  t        t        z   t        t        z  z  k7  sJ t	        |      }|t        z  t        t        z   t        t        z  z  k(  sJ |j	                         t	        |      k(  sJ | dz  |dz  z  dt
        z  |z  |dz  z  z  t        z  }t	        |      }|t        z  | dz  |dz  z  dt
        z  |z  |dz  z  z  k(  sJ ddt        z  z   dddt        z  z   z  z
  ddt        z  z   z  t        z  }t	        |      }|t        z  dk(  sJ dt        z  t        dz  z  dt        dz  z  z
  dt        dz  z  t        z  z
  t        t        z   dz  z  t        z  }t	        |      }|t        z  dt        z  k(  sJ t        t              t        t              z   dz  t        z  t        z
  }t        |      dt        t        t
        dz  z         dz  z  t        z  d	t        z  z   k(  sJ t        |      |j                         k(  sJ t	        t        j                        t        j                  k(  sJ y )
Nz
A, s, k, mr:   r   r1   r   r   r9   )r   rC   rD   r!   r   r
   r   r   r#   r   r   r'   )	Asr%   mtest1test2test3test4vs	            r+   test_vector_simplifyr]      s'   &JAq!QUQU]aEAI1q5QU++++UOEAI1q5QU++++>>x...TAqD[AFQJA-.!3EUOEAI1a4!Q$;!b&1*q!t*;<===!a%i!q1q5y/)a!a%i8A=EUOEAI!1fq!tma!Q$h&QTA5!a%!CqHEUOEAI"q&   	QA1q AA;1SRT]A--q0B69999A;!**,&&&FKK FKK///r-   c                  ^   t         j                  t        j                        dk(  sJ t        j                  j                  t               dk(  sJ t         t        j                  z  dk(  sJ t         j                  t               dk(  sJ t         j                  t              dk(  sJ t         j                  t
              dk(  sJ t         t         z  dk(  sJ t         t        z  dk(  sJ t         t
        z  dk(  sJ t        j                  t               dk(  sJ t        j                  t              dk(  sJ t        j                  t
              dk(  sJ t        t         z  dk(  sJ t        t        z  dk(  sJ t        t
        z  dk(  sJ t
        j                  t               dk(  sJ t
        j                  t              dk(  sJ t
        j                  t
              dk(  sJ t
        t         z  dk(  sJ t
        t        z  dk(  sJ t
        t
        z  dk(  sJ t        t        d        y )Nr   r:   c                  ,    t         j                  d      S r<   )r%   rA    r-   r+   r?   z!test_vector_dot.<locals>.<lambda>   s    aeeAh r-   )r!   rA   r   r'   r#   r%   r   rJ   r`   r-   r+   test_vector_dotra      s   55""";;??1"""v{{?a558q==558q==558q==q5A::q5A::q5A::558q==558q==558q==q5A::q5A::q5A::558q==558q==558q==q5A::q5A::q5A::
9&'r-   c                     t         j                  t        j                        t        j                  k(  sJ t        j                  j                  t               t        j                  k(  sJ t         j                  t               t        j                  k(  sJ t         j                  t              t
        k(  sJ t         j                  t
              t         k(  sJ t         t         z  t        j                  k(  sJ t         t        z  t
        k(  sJ t         t
        z  t         k(  sJ t        j                  t               t
         k(  sJ t        j                  t              t        j                  k(  sJ t        j                  t
              t         k(  sJ t        t         z  t
         k(  sJ t        t        z  t        j                  k(  sJ t        t
        z  t         k(  sJ t
        j                  t               t        k(  sJ t
        j                  t              t          k(  sJ t
        j                  t
              t        j                  k(  sJ t
        t         z  t        k(  sJ t
        t        z  t          k(  sJ t
        t
        z  t        j                  k(  sJ t
        j                  d      t        t
        d      k(  sJ y r<   )r!   r   r   r'   r#   r%   r   r`   r-   r+   test_vector_crossrc      s   776;;6;;...;;Q6;;...771:$$$771:??771:!q5FKKq5A::q5QB;;771:!771:$$$771:??q5QB;;q5FKKq5A::771:??771:!771:$$$q5A::q5QB;;q5FKK771:q!$$$r-   c                     t         t        z   t        z   } dt         z  dt        z  z   }dt         z  dt        z  z   }| j                  |       t         t        z   t        z   k(  sJ | j                  |      t	        dd      t
        j                   z  t	        dd      t
        j                  z  z   t	        dd      t
        j                  z  z   k(  sJ | j                  | d      t        j                  k(  sJ | j                  |d      t	        dd      k(  sJ |j                  |       t        j                  k(  sJ |j                  | d      t        j                  k(  sJ y )Nr   r1   r      T)scalar)r!   r#   r%   
projectionr   r   r   Oner   r'   Zeror5   s      r+   test_projectionrj      s   	
QB	
1qsB	
1qsB==A	)))==Aqss 2Xa^ACC5G G(STVW.YZY\Y\J\ \\\\==D=)QUU222==D=)Xa^;;;==+++==D=)QVV333r-   c                     t        d      }  | t              t        j                  z  t        dz  t        j                  z  z   t        j
                  z
  }t        |t              t         | t              t        j                  z  t        dz  t        j                  z  z   dt        j
                  z  z   t              k(  sJ t        |t              |j                  t              cxk(  rlt        |t              j                         cxk(  rJt         | t              t              t        j                  z  dt        z  t        j                  z  z   k(  sJ  J t        |t              t         | t              t              t        j                  z  t        t        dz  t              t        j                  z  z   t        dt              t        j
                  z  z   k(  sJ y )Nfr   r9   )
r   rC   r   r!   r#   r%   r   r	   r&   r   )rl   r\   s     r+   test_vector_diff_integraterm      s`   A	!QSS1a48acc!Aaz1Q4**+Q$qss(+368!##X+>?@ B B B BAJ!&&) 0z!Q'7'<'<'> 0!a !##%!ACC/0 1 0 1 0QNx!a0!##5adA#$'/A&;< < = <r-   c                  H    t        t        d        t        t        d        y )Nc                  "    t        dt              S )Nr   )r   r   r`   r-   r+   r?   z"test_vector_args.<locals>.<lambda>   s    z!Q/ r-   c                  6    t        dt        j                        S )Nr   )r   r   r'   r`   r-   r+   r?   z"test_vector_args.<locals>.<lambda>   s    jFKK8 r-   )r   
ValueErrorrJ   r`   r-   r+   test_vector_argsrr      s    
:/0
989r-   c                  J    ddl m}  d} | t        j                        |k(  sJ y )Nr   )sreprzCoordSys3D(Str('C'), Tuple(ImmutableDenseMatrix([[Integer(1), Integer(0), Integer(0)], [Integer(0), Integer(1), Integer(0)], [Integer(0), Integer(0), Integer(1)]]), VectorZero())).i)sympy.printing.reprrt   r   r!   )rt   ress     r+   
test_sreprrw      s%    )GC :r-   c                     ddl m}   | d      }d|j                  z  d|j                  z  z   d|j                  z  z   }d|j                  z  d|j                  z  z
  d|j                  z  z   }|j
                  du sJ |j                  du sJ |j                  |      j                  du sJ |j                  |      j                  du sJ y )	Nr   r   r   r   r1   r2   TF)	sympy.vectorr   r!   r#   r%   	is_Vector	is_scalarrA   r   )r   r   r)   r*   s       r+   test_scalarr|     s    '3A	
133133133	B	
133133133	B<<4<<5   FF2J!!T)))HHRL##u,,,r-   N):
sympy.corer   r   sympy.simplifyr   r   sympy.core.functionr   r   r	   sympy.core.numbersr
   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.integrals.integralsr   sympy.matrices.immutabler   rI   sympy.vector.vectorr   r   r   r   r   sympy.vector.coordsysrectr   r   r   r   sympy.testing.pytestr   r   base_vectorsr!   r#   r%   rC   rD   rE   r,   r/   r7   rM   rQ   r]   ra   rc   rj   rm   rr   rw   r|   r`   r-   r+   <module>r      s    " - < < ! % 9 ? . C  0 1 1 'sO
..
1a
'
1a8&*8)v?.08(:%8	4=:
-r-   