o
    tBh                     @   s  d dl Z d dl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 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mZ d dlmZmZ dd ZejdejdiZede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fej%efgd*d+gd,e jjd-eegd.d/gd,d0d1 Z&e jdejejge jjd-eegd.d/gd,d2d3 Z'e jdejejge jjd4eefej%efgd*d+gd,e jjd)eefej%efgd*d+gd,e jjd-eegd.d/gd,d5d6 Z(dS )7    N)assert_allclose)_dot_memview)_asum_memview)_axpy_memview)_nrm2_memview)_copy_memview)_scal_memview)_rotg_memview)_rot_memview)_gemv_memview)_ger_memview)_gemm_memview)RowMajorColMajor)TransNoTransc                 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/html/riverr-enterprise-integrations-main/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   

r2   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    r0   r1   r   r   r   	test_asum3   s   r6   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/   alphar0   r   r   r   	test_axpy@   s   r;   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    r0   r1   r   r   r   	test_nrm2O   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/   r0   r   r   r   	test_copy\   s   

rA   c                 C   sX   t t|  }tjd}|dj| dd}d}|| }||| t||t|  d d S r7   )	r   r   r   r(   r)   r*   r+   r   r-   )r   scalr.   r    r:   r0   r   r   r   	test_scalj   s   
rC   c           
      C   sn   t t|  }tjd}| | }| | }d\}}dd }|||}|||||}	t|	|t|  d d S )Nr   )        rD   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      rE   )r3   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.   rI   rJ   rL   rM   rP   r0   r1   r   r   r   	test_rotgx   s   

rS   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+   rQ   r   )	r   rotr.   r    r/   rL   rM   
expected_x
expected_yr   r   r   test_rot   s   
rW   zopA, transAr   r   )idsorderr   r   c                 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#   rZ   r8   g      r&   )r   r   r   r(   r)   asarrayr*   r+   ORDERr,   r   r-   )r   opAtransArY   gemvr.   Ar    r/   r:   betar0   r   r   r   	test_gemv   s   rd   c           	      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$   rZ   r#   rZ   r[   r8   r&   )r   r   r   r(   r)   r*   r+   r]   r^   outerr   r-   )	r   rY   gerr.   r    r/   rb   r:   r0   r   r   r   test_ger   s   rh   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[   re   )ri   rZ   r\   r&   )r   r   r   r(   r)   r]   r*   r+   r^   r,   r   r-   )r   r_   r`   opBtransBrY   gemmr.   rb   Br   r:   rc   r0   r   r   r   	test_gemm   s   	rn   ))r   numpyr   sklearn.utils._testingr   sklearn.utils._cython_blasr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r-   r^   r!   markparametrizer2   r6   r;   r?   rA   rC   rS   rW   	transposerd   rh   rn   r   r   r   r   <module>   sl    







