
    0Ph;              	          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mZmZ d dlmZ d Zej        dej        diZedediZd	 Zej                            d
ej        ej        g          d             Zej                            d
ej        ej        g          d             Zej                            d
ej        ej        g          d             Zej                            d
ej        ej        g          d             Z ej                            d
ej        ej        g          d             Z!ej                            d
ej        ej        g          d             Z"ej                            d
ej        ej        g          d             Z#ej                            d
ej        ej        g          d             Z$ej                            d
ej        ej        g          ej                            deefej%        efgddg          ej                            deegddg          d                                     Z&ej                            d
ej        ej        g          ej                            deegddg          d                         Z'ej                            d
ej        ej        g          ej                            deefej%        efgddg          ej                            deefej%        efgddg          ej                            deegddg          d                                                 Z(dS )    N)ColMajorNoTransRowMajor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                     t          j        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   s     d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_cython_blas.py_numpy_to_cythonr      sD     **F
|	"*		} 
	    gư>g-q=CFc                     | S )N )xs    r   _no_opr%   $   s    Hr   r   c                    t           t          |                    }t          j                            d          }|                    d                              | d          }|                    d                              | d          }|                    |          } |||          }t          ||t          |                     d S Nr   
   Fcopyrtol)
r
   r   r   randomRandomStaterandom_sampleastypedotr   RTOL)r   r1   rngr$   yexpectedactuals          r   test_dotr7   (   s    
'..
/C
)


"
"C"$$U$77A"$$U$77AuuQxxHSAYYFFH4;777777r   c                 h   t           t          |                    }t          j                            d          }|                    d                              | d          }t          j        |                                          } ||          }t          ||t          |                     d S r'   )r   r   r   r-   r.   r/   r0   abssumr   r2   )r   asumr3   r$   r5   r6   s         r   	test_asumr<   6   s    )%001D
)


"
"C"$$U$77Avayy}}HT!WWFFH4;777777r   c                    t           t          |                    }t          j                            d          }|                    d                              | d          }|                    d                              | d          }d}||z  |z   } ||||           t          ||t          |                     d S Nr   r(   Fr)         @r+   )	r   r   r   r-   r.   r/   r0   r   r2   )r   axpyr3   r$   r4   alphar5   s          r   	test_axpyrB   C   s    )%001D
)


"
"C"$$U$77A"$$U$77AEqy1}HD1Axd5k222222r   c                 Z   t           t          |                    }t          j                            d          }|                    d                              | d          }t          j                            |          } ||          }t          ||t          |                     d S r'   )r   r   r   r-   r.   r/   r0   linalgnormr   r2   )r   nrm2r3   r$   r5   r6   s         r   	test_nrm2rG   R   s    )%001D
)


"
"C"$$U$77Ay~~a  HT!WWFFH4;777777r   c                 n   t           t          |                    }t          j                            d          }|                    d                              | d          }t          j        |          }|                                } |||           t          ||t          |                     d S r'   )r	   r   r   r-   r.   r/   r0   
empty_liker*   r   r2   )r   r*   r3   r$   r4   r5   s         r   	test_copyrJ   _   s    )%001D
)


"
"C"$$U$77A
aAvvxxHDAJJJAxd5k222222r   c                 ,   t           t          |                    }t          j                            d          }|                    d                              | d          }d}||z  } |||           t          ||t          |                     d S r>   )	r   r   r   r-   r.   r/   r0   r   r2   )r   scalr3   r$   rA   r5   s         r   	test_scalrM   m   s    )%001D
)


"
"C"$$U$77AEqyHDNNNAxd5k222222r   c                 j   t           t          |                    }t          j                            d          } | |                                          } | |                                          }d\  }}d } |||          } |||||          }	t          |	|t          |                     d S )Nr   )        rO   c                    t          |           t          |          k    r| n|}| dk    r|dk    rd\  }}}}nGt          j        | dz  |dz  z             |dk    rdndz  }| |z  ||z  }}|| k    r|n|dk    rdnd|z  }||||fS )Nr   )   r   r   r      rQ   )r9   r   sqrt)abroecsrzs          r   expected_rotgz test_rotg.<locals>.expected_rotg   s    q66CFF??aa66a1ff%JAq!QQ1q!t$$SAXX2>Aq5!a%qAAXXaAAQUA!Qzr   r+   )r   r   r   r-   r.   randnr   r2   )
r   rotgr3   rU   rV   rX   rY   r\   r5   r6   s
             r   	test_rotgr_   {   s    )%001D
)


"
"CciikkAciikkADAq   }Q""HT!Q1FFH4;777777r   c                    t           t          |                    }t          j                            d          }|                    d                              | d          }|                    d                              | d          } | |                                          } | |                                          }||z  ||z  z   }||z  ||z  z
  } |||||           t          ||           t          ||           d S )Nr   r(   Fr)   )	r   r   r   r-   r.   r/   r0   r]   r   )	r   rotr3   r$   r4   rX   rY   
expected_x
expected_ys	            r   test_rotrd      s    
'..
/C
)


"
"C"$$U$77A"$$U$77AciikkAciikkAQQJQQJC1aOOOAz"""Az"""""r   zopA, transAr   r   )idsorderr   r   c                 v   t           t          |                    }t          j                            d          }t          j         ||                    d                              | d                    t          |                   }|                    d                              | d          }|                    d                              | d          }d\  }	}
|	 ||          	                    |          z  |
|z  z   } |||	|||
|           t          ||t          |          	           d S )
Nr   )   r(   Fr)   rf   r(   rh   r?   g      r+   )r   r   r   r-   r.   asarrayr/   r0   ORDERr1   r   r2   )r   opAtransArf   gemvr3   Ar$   r4   rA   betar5   s               r   	test_gemvrr      s,    )%001D
)


"
"C

Ch''..u5.AABB%PU,	 	 	A 	"$$U$77A"$$U$77AKE4ss1vvzz!}}$tax/HD1dA&&&Axd5k222222r   c                 B   t           t          |                    }t          j                            d          }|                    d                              | d          }|                    d                              | d          }t          j        |                    d                              | d          t          |                   }d}|t          j	        ||          z  |z   } |||||           t          ||t          |          	           d S )
Nr   r(   Fr)   rh   r(   rh   ri   r?   r+   )r   r   r   r-   r.   r/   r0   rk   rl   outerr   r2   )	r   rf   gerr3   r$   r4   rp   rA   r5   s	            r   test_gerrw      s    '..
/C
)


"
"C"$$U$77A"$$U$77A

(##**5u*==U5\	 	 	A Erx1~~%)HCq!QAxd5k222222r   zopB, transBc           	         t           t          |                    }t          j                            d          }t          j         ||                    d                              | d                    t          |                   }t          j         ||                    d                              | d                    t          |                   }	t          j        |                    d                              | d          t          |                   }
d\  }}| ||          	                     ||	                    z  ||
z  z   } ||||||	||
           t          |
|t          |          	           d S )
Nr   )   r(   Fr)   ri   rt   )ry   rh   rj   r+   )r   r   r   r-   r.   rk   r/   r0   rl   r1   r   r2   )r   rm   rn   opBtransBrf   gemmr3   rp   Br    rA   rq   r5   s                 r   	test_gemmr~      s{    )%001D
)


"
"C

Ch''..u5.AABB%PU,	 	 	A 	
Ch''..u5.AABB%PU,	 	 	A 	
(##**5u*==U5\	 	 	A KE4ss1vvzz##a&&)))D1H4HD1dA...Axd5k222222r   ))numpyr   r   sklearn.utils._cython_blasr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   sklearn.utils._testingr   r   r   r   r2   rl   r%   markparametrizer7   r<   rB   rG   rJ   rM   r_   rd   	transposerr   rw   r~   r#   r   r   <module>r      s                                        " 3 2 2 2 2 2   	
D"*e,	3#&   2:rz":;;
8 
8 <;
8 2:rz":;;	8 	8 <;	8 2:rz":;;3 3 <;3 2:rz":;;	8 	8 <;	8 2:rz":;;
3 
3 <;
3 2:rz":;;
3 
3 <;
3 2:rz":;;8 8 <;80 2:rz":;;# # <;#$ 2:rz":;;VW%e'<=IwCW    8X"6Z<TUU3 3 VU  <;
3" 2:rz":;;8X"6Z<TUU3 3 VU <;3" 2:rz":;;VW%e'<=IwCW    VW%e'<=IwCW    8X"6Z<TUU3 3 VU   <;3 3 3r   