a
    o=ic#                  *   @   s~  d Z ddlZddlZddlmZmZmZ 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g(Z	ej
d"e	d#d$ Zej
d"e	d%d& Zd'd( ZdS ))z7
Tests thte BLAS capability for the opt_einsum module.
    N)blascontracthelpersk DOTZijkZijZjkikjZGEMMZijlZjlkjlZkjZkjlZjiZjliZkiZiljZTDOTZljkZkljZljiZljZikjz
DOT/EINSUMizOUTER/EINSUMzGEMV/EINSUMZijjFzinp,benchmarkc                 C   s   t j|  }||ksJ d S )N)r   Zcan_blas)inp	benchmarkresult r   k/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/opt_einsum/tests/test_blas.pytest_can_blasC   s    
r   c           
      C   s   |du rd S | \}}}d |d | }t|dkr<ds<J t|\}}t|||}t||d ||d ||}	t||	sJ d S )NF,z->   r      )	joinlenr   Zbuild_viewsnpZeinsumr   Ztensor_blasallclose)
r   r   Ztensor_strsoutputZreduced_idxZ
einsum_strZ	view_leftZ
view_rightZeinsum_resultZblas_resultr   r   r   test_tensor_blasI   s    
r   c                  C   s   t jdd} t jdd}t jdd}t d}td| ||d t |t | |s\J td| |||d t |t | ||sJ d S )N   )r   r   z	ij,jk->ik)outzij,jk,kl->il)r   randomZrandemptyr   r   dot)abcdr   r   r   test_blas_out_   s    
r$   )__doc__numpyr   ZpytestZ
opt_einsumr   r   r   setZ
blas_testsmarkZparametrizer   r   r$   r   r   r   r   <module>   sb   9

