o
    \i5                     @   s  d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ dd ZejdejdiZejdejd	iZd
d Zejdejejgdd Zejdejejgdd Zejdejejgdd Zejdejejgdd Z ejdejejgdd Z!ejdejejgdd Z"ejdejejgdd Z#ejdejejgdd Z$ejdejejgejjdeej%fej&ej'fgddgd ejjd!ejejgd"d#gd d$d% Z(ejdejejgejjd!ejejgd&d'gd d(d) Z)ejdejejgejjd*eej%fej&ej'fgddgd ejjdeej%fej&ej'fgddgd ejjd!ejejgd&d'gd d+d, Z*dS )-    N)
BLAS_Order
BLAS_Trans_asum_memview_axpy_memview_copy_memview_dot_memview_gemm_memview_gemv_memview_ger_memview_nrm2_memview_rot_memview_rotg_memview_scal_memview)assert_allclosec                 C   s.   t d}| tjkr|jS | tjkr|jS d S )Ncython)pytestimportorskipnpfloat32floatfloat64double)dtyper    r   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/sklearn/utils/tests/test_cython_blas.py_numpy_to_cython   s   


r   gư>g-q=CFc                 C   s   | S )Nr   )xr   r   r   _no_op"   s   r   r   c                 C   sj   t t|  }tjd}|dj| dd}|dj| dd}||}|||}t||t	|  d d S Nr   
   Fcopyrtol)
r   r   r   randomRandomStaterandom_sampleastypedotr   RTOL)r   r*   rngr   yexpectedactualr   r   r   test_dot&   s   

r0   c                 C   sX   t t|  }tjd}|dj| dd}t| }||}t	||t
|  d d S r    )r   r   r   r&   r'   r(   r)   abssumr   r+   )r   asumr,   r   r.   r/   r   r   r   	test_asum4   s   r4   c                 C   sr   t t|  }tjd}|dj| dd}|dj| dd}d}|| | }|||| t||t|  d d S Nr   r!   Fr"         @r$   )	r   r   r   r&   r'   r(   r)   r   r+   )r   axpyr,   r   r-   alphar.   r   r   r   	test_axpyA   s   r9   c                 C   sV   t t|  }tjd}|dj| dd}tj|}||}t	||t
|  d d S r    )r   r   r   r&   r'   r(   r)   linalgnormr   r+   )r   nrm2r,   r   r.   r/   r   r   r   	test_nrm2P   s   r=   c                 C   s^   t t|  }tjd}|dj| dd}t|}| }||| t	||t
|  d d S r    )r   r   r   r&   r'   r(   r)   
empty_liker#   r   r+   )r   r#   r,   r   r-   r.   r   r   r   	test_copy]   s   

r?   c                 C   sX   t t|  }tjd}|dj| dd}d}|| }||| t||t|  d d S r5   )	r   r   r   r&   r'   r(   r)   r   r+   )r   scalr,   r   r8   r.   r   r   r   	test_scalk   s   
rA   c           
      C   sn   t t|  }tjd}| | }| | }d\}}dd }|||}|||||}	t|	|t|  d d S )Nr   )        rB   c                 S   s   t | t |kr
| n|}| dkr|dkrd\}}}}n,t| d |d  |dkr+dnd }| | || }}|| kr=|n	|dkrCdnd| }||||fS )Nr   )   r   r   r      rC   )r1   r   sqrt)abroecsrzr   r   r   expected_rotg   s   & z test_rotg.<locals>.expected_rotgr$   )r   r   r   r&   r'   randnr   r+   )
r   rotgr,   rG   rH   rJ   rK   rN   r.   r/   r   r   r   	test_rotgy   s   

rQ   c           	      C   s   t t|  }tjd}|dj| dd}|dj| dd}| | }| | }|| ||  }|| ||  }||||| t|| t|| d S )Nr   r!   Fr"   )	r   r   r   r&   r'   r(   r)   rO   r   )	r   rotr,   r   r-   rJ   rK   
expected_x
expected_yr   r   r   test_rot   s   
rU   zopA, transANoTransTrans)idsorderRowMajorColMajorc                 C   s   t t|  }tjd}tj||dj| ddt| d}|dj| dd}|dj| dd}d\}	}
|	||	| |
|  }|||	|||
| t
||t|  d	 d S )
Nr   )   r!   Fr"   rY   r!   r\   r6   g      r$   )r	   r   r   r&   r'   asarrayr(   r)   ORDERr*   r   r+   )r   opAtransArY   gemvr,   Ar   r-   r8   betar.   r   r   r   	test_gemv   s   rf   zBLAS_Order.RowMajorzBLAS_Order.ColMajorc           	      C   s   t t|  }tjd}|dj| dd}|dj| dd}tj|dj| ddt| d}d}|t	|| | }||||| t
||t|  d	 d S )
Nr   r!   Fr"   r\   r!   r\   r]   r6   r$   )r
   r   r   r&   r'   r(   r)   r_   r`   outerr   r+   )	r   rY   gerr,   r   r-   rd   r8   r.   r   r   r   test_ger   s   rj   zopB, transBc                 C   s   t t|  }tjd}tj||dj| ddt| d}tj||dj| ddt| d}	tj|dj| ddt| d}
d\}}|||	||	 ||
  }||||||	||
 t
|
|t|  d	 d S )
Nr   )   r!   Fr"   r]   rg   )rk   r\   r^   r$   )r   r   r   r&   r'   r_   r(   r)   r`   r*   r   r+   )r   ra   rb   opBtransBrY   gemmr,   rd   Br   r8   re   r.   r   r   r   	test_gemm   s   rp   )+numpyr   r   sklearn.utils._cython_blasr   r   r   r   r   r   r   r	   r
   r   r   r   r   sklearn.utils._testingr   r   r   r   r+   rZ   r[   r`   r   markparametrizer0   r4   r9   r=   r?   rA   rQ   rU   rV   	transposerW   rf   rj   rp   r   r   r   r   <module>   sx    <










