a
    lhU                     @   s   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mZmZmZ edZdd	 Zd
d Zdd ZdS )    )pi)symbols)cossin)ImmutableDenseMatrix)simplify)
CoordSys3DVectorDyadic	DyadicAdd	DyadicMul
DyadicZero
BaseDyadicexpressAc                  C   s@  t d\} }tjdksJ ttjts*J ttjtjttjtjksJJ tt	jtjttjt	j  krttjkszn J tjtjB }tjtjB }tjtjB }t|tsJ | | }t|t
sJ |j|ksJ |j| ksJ t| | ||  tsJ |tjtjksJ |tjtjks(J | tj tj }tj|tj  }||B ||  kr| tjtjB  | | tjtjB   tjtjB   |tjtjB   ksn J |d tjksJ |tjksJ |d dtjtjB  ksJ |d d| ksJ |d| t	jks J ||@ tjks4J |tjtj  kr\|tj@ ksbn J |t	jtjkszJ |tjtjksJ |tjA |tjksJ |tjtj tjB ksJ |tjtj tjB   kr|tjA ksn J tj|A tjksJ tj|tj tjB   krJtj|A ksPn J t	j|tjkshJ tj|A tjtjB ksJ tj|tj|@   krtjksn J tj|t	jksJ t	j|t	jksJ tj|@ tjksJ ||||@   kr.tjtjB   kr.|ks4n J ||@ tjksHJ t d}td|tj}	t||	t||	|	ks|J t|d |	j|	jB  t| t| |	j|	jB   t| t| |	j|	jB   t|d |	j|	jB   }
t||	|
  tjksJ t||	jtjB  t| |	jtjB   }t||	t|  tjksPJ t|tj|	jB  t| tj|	jB   }t|t|	|  tjksJ |ttg dg d	g d	gksJ |t|	tt|t| dgg d	g d	gksJ |ttg d
g d	g d	gks&J t d\} }}}}}| tj |tj  |tj  }|tj |tj  |tj  }||}|tt| | | | | | g|| || || g|| || || ggksJ ||}td|tj}t|t|t |tj ||D ] \}}||  dksJ qd S )Nza, br      g       @g      ?qB)   r   r   )r   r   r   )r   r   r   za, b, c, d, e, fC)r   r
   Zzero
isinstancer   r   r   ijr	   r   Zbase_dyadicZmeasure_numberr   outerkdotZcrossZorient_new_axisr   r   r   r   Z	to_matrixMatrixzipZrotation_matrixT)abd1Zd2Zd3Zd_mulZv1Zv2r   r   expr1Zexpr2Zexpr3cdefZd4Zd5r   expectedactual r)   L/var/www/auris/lib/python3.9/site-packages/sympy/vector/tests/test_dyadic.pytest_dyadic   s     :. 66.<&


* * **


r+   c               
   C   s  t d\
} }}}}}}}}}	td}
|
j|
jB }d|  d|  | }|
j|@ |
j@ | | | |  kshJ | }| t|ksJ |
j|@ |
j@ | | | |  ksJ |	d |d  dt | |d   | }| }|
j|@ |
j@ |	d |d  dt | |d   ksJ dd|   ddd|     dd|    | }| }|
j|@ |
j@ dks`J d|  |d  d|d   d| d  |  | | d  | }| }|
j|@ |
j@ d	| ksJ d S )
Nzx, y, z, k, n, m, w, f, s, ANr   r         r   )r   r   r   r   r   )xyzr   nmwr&   sr   r,   dyZtest1Ztest2Ztest3Ztest4r)   r)   r*   test_dyadic_simplifyc   s"    $$(:,<r9   c                  C   s8   ddl m}  td}|j|jB }d}| ||ks4J d S )Nr   )sreprr,   ax  BaseDyadic(CoordSys3D(Str('N'), Tuple(ImmutableDenseMatrix([[Integer(1), Integer(0), Integer(0)], [Integer(0), Integer(1), Integer(0)], [Integer(0), Integer(0), Integer(1)]]), VectorZero())).i, CoordSys3D(Str('N'), Tuple(ImmutableDenseMatrix([[Integer(1), Integer(0), Integer(0)], [Integer(0), Integer(1), Integer(0)], [Integer(0), Integer(0), Integer(1)]]), VectorZero())).j))Zsympy.printing.reprr:   r   r   r   )r:   r,   r8   resr)   r)   r*   test_dyadic_srepr{   s
    r<   N)Zsympy.core.numbersr   Zsympy.core.symbolr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.matrices.immutabler   r   Zsympy.simplify.simplifyr   Zsympy.vectorr   r	   r
   r   r   r   r   r   r   r+   r9   r<   r)   r)   r)   r*   <module>   s   (U