
    {Kg;              	          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j6                  j9                  d
ej,                  ej.                  g      d        Zej6                  j9                  d
ej,                  ej.                  g      d        Zej6                  j9                  d
ej,                  ej.                  g      d        Zej6                  j9                  d
ej,                  ej.                  g      d        Z ej6                  j9                  d
ej,                  ej.                  g      d        Z!ej6                  j9                  d
ej,                  ej.                  g      d        Z"ej6                  j9                  d
ej,                  ej.                  g      d        Z#ej6                  j9                  d
ej,                  ej.                  g      d        Z$ej6                  j9                  d
ej,                  ej.                  g      ej6                  j9                  deefejJ                  efgddg      ej6                  j9                  deegddg      d                      Z&ej6                  j9                  d
ej,                  ej.                  g      ej6                  j9                  deegddg      d               Z'ej6                  j9                  d
ej,                  ej.                  g      ej6                  j9                  deefejJ                  efgddg      ej6                  j9                  deefejJ                  efgddg      ej6                  j9                  deegddg      d                             Z(y)    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 y )Ncython)pytestimportorskipnpfloat32floatfloat64double)dtyper   s     h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/utils/tests/test_cython_blas.py_numpy_to_cythonr      sC      *F

||	"**	}} 
    gư>g-q=CFc                     | S )N )xs    r   _no_opr%   $   s    Hr   r   c                 L   t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }|j                  d      j                  | d      }|j                  |      } |||      }t        ||t        |           y 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$7A"$$U$7AuuQxHAYFFH4;7r   c                 *   t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }t        j                  |      j                         } ||      }t        ||t        |           y r'   )r   r   r   r-   r.   r/   r0   abssumr   r2   )r   asumr3   r$   r5   r6   s         r   	test_asumr<   6   sr    )%01D
))


"C"$$U$7Avvay}}H!WFFH4;7r   c                 @   t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }|j                  d      j                  | d      }d}||z  |z   } ||||       t        ||t        |           y 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1D
))


"C"$$U$7A"$$U$7AEqy1}H1Axd5k2r   c                 "   t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }t        j                  j                  |      } ||      }t        ||t        |           y r'   )r   r   r   r-   r.   r/   r0   linalgnormr   r2   )r   nrm2r3   r$   r5   r6   s         r   	test_nrm2rG   R   sq    )%01D
))


"C"$$U$7Ayy~~a H!WFFH4;7r   c                 0   t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }t        j                  |      }|j                         } |||       t        ||t        |           y r'   )r	   r   r   r-   r.   r/   r0   
empty_liker*   r   r2   )r   r*   r3   r$   r4   r5   s         r   	test_copyrJ   _   sx    )%01D
))


"C"$$U$7A
aAvvxHAJAxd5k2r   c                     t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }d}||z  } |||       t        ||t        |           y r>   )	r   r   r   r-   r.   r/   r0   r   r2   )r   scalr3   r$   rA   r5   s         r   	test_scalrM   m   sm    )%01D
))


"C"$$U$7AEqyHNAxd5k2r   c                     t         t        |          }t        j                  j	                  d      } | |j                               } | |j                               }d\  }}d } |||      } |||||      }	t        |	|t        |           y )Nr   )        rO   c                     t        |       t        |      kD  r| n|}| dk(  r|dk(  rd\  }}}}nEt        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    q6CF?a6a1f%JAq!Q1q!t$SAX2>Aq5!a%qAAXaAQ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1D
))


"CciikAciikADAq Q"H!Q1FFH4;7r   c                    t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }|j                  d      j                  | d      } | |j                               } | |j                               }||z  ||z  z   }||z  ||z  z
  } |||||       t        ||       t        ||       y )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$7A"$$U$7AciikAciikAQQJQQJ1aOAz"Az"r   zopA, transAr   r   )idsorderr   r   c                    t         t        |          }t        j                  j	                  d      }t        j
                   ||j                  d      j                  | d            t        |         }|j                  d      j                  | d      }|j                  d      j                  | d      }d\  }	}
|	 ||      j                  |      z  |
|z  z   } |||	|||
|       t        ||t        |    	       y )
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1D
))


"C


Ch'..u5.AB%PU,	A 	"$$U$7A"$$U$7AKE4s1vzz!}$tax/H1dA&Axd5k2r   c                    t         t        |          }t        j                  j	                  d      }|j                  d      j                  | d      }|j                  d      j                  | d      }t        j                  |j                  d      j                  | d      t        |         }d}|t        j                  ||      z  |z   } |||||       t        ||t        |    	       y )
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$7A"$$U$7A


(#**5u*=U5\	A Erxx1~%)Hq!QAxd5k2r   zopB, transBc           	         t         t        |          }t        j                  j	                  d      }t        j
                   ||j                  d      j                  | d            t        |         }t        j
                   ||j                  d      j                  | d            t        |         }	t        j
                  |j                  d      j                  | d      t        |         }
d\  }}| ||      j                   ||	            z  ||
z  z   } ||||||	||
       t        |
|t        |    	       y )
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1D
))


"C


Ch'..u5.AB%PU,	A 	

Ch'..u5.AB%PU,	A 	

(#**5u*=U5\	A KE4s1vzz#a&))D1H4H1dA.Axd5k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 	

D"**e,	3#& 2::rzz":;
8 <
8 2::rzz":;	8 <	8 2::rzz":;3 <3 2::rzz":;	8 <	8 2::rzz":;
3 <
3 2::rzz":;
3 <
3 2::rzz":;8 <80 2::rzz":;# <#$ 2::rzz":;VW%e'<=IwCW   8X"6Z<TU3 V <
3" 2::rzz":;8X"6Z<TU3 V <3" 2::rzz":;VW%e'<=IwCW   VW%e'<=IwCW   8X"6Z<TU3 V <3r   