o
    GZhU                     @   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s%J tt	jtjttjt	j  kr;tjks>J  J tjtjB }tjtjB }tjtjB }t|tsWJ | | }t|t
sbJ |j|ksiJ |j| kspJ t| | ||  ts}J |tjtjksJ |tjtjksJ | 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sJ  J |d tjksJ |tjksJ |d dtjtjB  ksJ |d d| ksJ |d| t	jks
J ||@ tjksJ |tjtj  kr)|tj@ ks,J  J |t	jtjks8J |tjtjksDJ |tjA |tjksRJ |tjtj tjB ksbJ |tjtj tjB   kr{|tjA ks~J  J tj|A tjksJ tj|tj tjB   krtj|A ksJ  J t	j|tjksJ tj|A tjtjB ksJ tj|tj|@   krtjksJ  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sJ  J ||@ tjks#J 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sJ t||	jtjB  t| |	jtjB   }t||	t|  tjksJ 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siJ ||}td|tj}t|t|t |tj ||D ]\}}||  dksJ qd 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
   zero
isinstancer   r   r   ijr	   r   Zbase_dyadicZmeasure_numberr   outerkdotcrossZorient_new_axisr   r   r   r   Z	to_matrixMatrixzipZrotation_matrixT)abZd1Zd2Zd3Zd_mulv1v2r   r   expr1Zexpr2Zexpr3cdefZd4Zd5r   expectedactual r,   M/var/www/auris/lib/python3.10/site-packages/sympy/vector/tests/test_dyadic.pytest_dyadic   s    80 880>&


* * **


r.   c               
   C   s  t d\
} }}}}}}}}}	td}
|
j|
jB }d|  d|  | }|
j|@ |
j@ | | | |  ks4J | }| t|ksBJ |
j|@ |
j@ | | | |  ksTJ |	d |d  dt | |d   | }| }|
j|@ |
j@ |	d |d  dt | |d   ksJ dd|   ddd|     dd|    | }| }|
j|@ |
j@ dksJ 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"   $$(8,< r<   c                  C   s8   ddl m}  td}|j|jB }d}| ||ksJ 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/   r;   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.   r<   r?   r,   r,   r,   r-   <module>   s    (U