o
    i e#                     @   s  d Z ddlZddlZddlmZ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#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 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,benchmarkc                 C   s   t j|  }||ksJ d S )N)r   can_blas)inp	benchmarkresult r#   I/var/www/myenv/lib/python3.10/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J t|\}}t|||}t||d ||d ||}	t||	s@J d S )NF,z->   r      )	joinlenr   build_viewsnpeinsumr   tensor_blasallclose)
r    r!   tensor_strsoutputreduced_idx
einsum_str	view_left
view_righteinsum_resultblas_resultr#   r#   r$   test_tensor_blasI   s   
r8   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 | ||sFJ d S )N   )r9   r9   z	ij,jk->ik)outzij,jk,kl->il)r,   randomrandemptyr   r/   dot)abcdr#   r#   r$   test_blas_out_   s   
"rC   )__doc__numpyr,   pytest
opt_einsumr   r   r   set
blas_testsmarkparametrizer%   r8   rC   r#   r#   r#   r$   <module>   s    	
 !"#&'()*+,-0123459

