o
    2h                     @   s  d Z ddlmZ ddlZddlmZmZ g ddgdedfdfddgdedfdfd	d
gdedfdfddgdedfdfd	dgdedfdfddgdedfdfdd
gdedfdfddgdedfdfddgdedfdfddgdedfdfd	d
gdedfdfddgdedfdfd	dgdedfdfddgdedfdfdd
gdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgdedfdfddgd	e fdfddgdedfd fd!d
gdedfd"fddgd	e fd"fd	d	gd	e fd"fZej	
d#ed$ed%ed&dfd'd(Zd+d)d*ZdS ),z6
Tests the BLAS capability for the opt_einsum module.
    )AnyN)blascontractk DOTijkijjkikjGEMMijljlkjlkjkjljijlikiiljTDOTljkkljljiljikjz
DOT/EINSUMizOUTER/EINSUMzGEMV/EINSUMijjFzinp,benchmarkinp	benchmarkreturnc                 C   s   t j|  }||ksJ d S )N)r   can_blas)r   r    result r$   U/var/www/html/chatgem/venv/lib/python3.10/site-packages/opt_einsum/tests/test_blas.pytest_can_blas>   s   
r&   c                  C   s   t d} | jdd}| jdd}| jdd}| d}td|||d | j|| || | 	|| ||s>J td||||d | j|| ||| d S )Nnumpy   )r(   r(   z	ij,jk->ik)outzij,jk,kl->il)
pytestimportorskiprandomrandemptyr   testingassert_allclosedotallclose)npabcdr$   r$   r%   test_blas_outD   s   

 r8   )r!   N)__doc__typingr   r*   
opt_einsumr   r   set
blas_testsmarkparametrizeboolr&   r8   r$   r$   r$   r%   <module>   s    	
!"#$%&'(*+,-./3