o
    GZh                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ ed
ddZedddZedZed
eeZe Zed\ZZZZdd Zdd Zdd Zdd Z dd Z!dS )    )symbolsDummy)ElementwiseApplyFunction)Lambda)exp)sin)Matrix)MatrixSymbol)MatMul)simplifyX   Ykzx y z tc                  C   sr  t d} t| | d }t|t}t|tsJ | tdd ks$J |jdks+J |j|j	 |ks5J t
||ks=J |d |td ksIJ t|t}t|tsUJ t| ts^J |t|ksgJ |j|j	 |ksqJ tttt }|jtt ksJ |jt| t| sJ |tt tsJ |j|j	 |ksJ tt| tsJ t| jdksJ tddd}|| jd	ksJ tt|jtt| }|jdksJ tt|tt|j }|jd
ksJ t| tgttgg}tt|}t|tsJ |jt| t| sJ |j|ksJ | |tks!J | tt| ttgttttggks:J |j|j	 |ksEJ t|t}| |ksSJ |tdjd
ks_J || jttfkskJ tdtt}|j| | }t|tsJ |j	d |ksJ |jttfksJ || }|jttfksJ tdd t}tdd t}||ksJ d S )Nx   c                 S   s   | d S )Nr    r   r   r   ^/var/www/auris/lib/python3.10/site-packages/sympy/matrices/expressions/tests/test_applyfunc.py<lambda>       z'test_applyfunc_matrix.<locals>.<lambda>)r   r   r   r   Zr   )r   r   r   r   M   c                 S   s   | d S )Nr   r   r   r   r   r   r   N   r   c                 S   s   | S Nr   r   r   r   r   r   O   s    )r   r   r   Xd
isinstanceZdoit	applyfuncshapefuncargsr   r   r   r   exprfunctiondummy_eqr
   r	   Tr   yztr   Xksubsr   )r   doubler#   r   r   Zexpr2Zexpr3expr1r   r   r   test_applyfunc_matrix   sb   


2
r.   c                  C   sH   t t} | d tt d ksJ tt} | d tt d ks"J d S )Nr   )r   r   r   r   afr   r   r   test_applyfunc_entryS   s   

r1   c               	   C   s   t t} |  ttt d tt d tt d gtt d tt d tt d gtt d tt d tt d	 ggks?J d S )
Nr   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r   )r   r   r   as_explicitr   r/   r   r   r   test_applyfunc_as_explicit\   s   
   r3   c                  C   s&   t t} | jt jtsJ d S r   )r*   r   r   r&   r%   r/   r   r   r   test_applyfunc_transposef   s   
r4   c                  C   s^   t ddd} tttd }| t}t|tsJ | |}t|ts%J |d|  ks-J d S )Nr   r   r   )r	   r   r   r   r   r   r   r
   )r   r,   r#   r   r   r    test_applyfunc_shape_11_matricesl   s   

r5   N)"Zsympy.core.symbolr   r   Z$sympy.matrices.expressions.applyfuncr   Zsympy.core.functionr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.trigonometricr   Zsympy.matrices.denser   Z"sympy.matrices.expressions.matexprr	   Z!sympy.matrices.expressions.matmulr
   Zsympy.simplify.simplifyr   r   r   r   r*   r2   r   r   r'   r(   r)   r.   r1   r3   r4   r5   r   r   r   r   <module>   s(    <	
