
    Wh5              	          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 Zej(                  dej*                  diZej.                  dej0                  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jJ                  fejL                  ejN                  fgddg      ej6                  j9                  dej.                  ej0                  gddg      d                      Z(ej6                  j9                  d
ej(                  ej*                  g      ej6                  j9                  dej.                  ej0                  gddg      d               Z)ej6                  j9                  d
ej(                  ej*                  g      ej6                  j9                  deejJ                  fejL                  ejN                  fgddg      ej6                  j9                  deejJ                  fejL                  ejN                  fgddg      ej6                  j9                  dej.                  ej0                  gddg      d                             Z*y)     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                     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     ^/var/www/html/jupyter_env/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   r/   rngr"   yexpectedactuals          r   test_dotr5   &   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-   r.   abssumr   r0   )r   asumr1   r"   r3   r4   s         r   	test_asumr:   4   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-   r.   r   r0   )r   axpyr1   r"   r2   alphar3   s          r   	test_axpyr@   A   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-   r.   linalgnormr   r0   )r   nrm2r1   r"   r3   r4   s         r   	test_nrm2rE   P   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-   r.   
empty_liker(   r   r0   )r   r(   r1   r"   r2   r3   s         r   	test_copyrH   ]   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-   r.   r   r0   )r   scalr1   r"   r?   r3   s         r   	test_scalrK   k   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   )        rM   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      rO   )r7   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   r0   )
r   rotgr1   rS   rT   rV   rW   rZ   r3   r4   s
             r   	test_rotgr]   y   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-   r.   r[   r   )	r   rotr1   r"   r2   rV   rW   
expected_x
expected_ys	            r   test_rotrb      s    
'.
/C
))


"C"$$U$7A"$$U$7AciikAciikAQQJQQJ1aOAz"Az"r   zopA, transANoTransTrans)idsorderRowMajorColMajorc                    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&   rj   r=   g      r)   )r
   r   r   r+   r,   asarrayr-   r.   ORDERr/   r   r0   )r   opAtransArf   gemvr1   Ar"   r2   r?   betar3   s               r   	test_gemvrt      s     )%01D
))


"C


Ch'..u5.AB%PU,	A 	"$$U$7A"$$U$7AKE4s1vzz!}$tax/H1dA&Axd5k2r   zBLAS_Order.RowMajorzBLAS_Order.ColMajorc                    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'   rj   r&   rj   rk   r=   r)   )r   r   r   r+   r,   r-   r.   rm   rn   outerr   r0   )	r   rf   gerr1   r"   r2   rr   r?   r3   s	            r   test_gerry      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'   rk   rv   )r{   rj   rl   r)   )r	   r   r   r+   r,   rm   r-   r.   rn   r/   r   r0   )r   ro   rp   opBtransBrf   gemmr1   rr   Br   r?   rs   r3   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   sklearn.utils._testingr   r   r   r   r0   rg   rh   rn   r#   markparametrizer5   r:   r@   rE   rH   rK   r]   rb   rc   	transposerd   rt   ry   r   r!   r   r   <module>r      s        3 	

D"**e,			c:#6#6< 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":;j  !BLL*2B2B#CD	G  
 *--.	Z   
3 <3" 2::rzz":;*--.	 56  
3 <3" 2::rzz":;j  !BLL*2B2B#CD	G  
 j  !BLL*2B2B#CD	G  
 *--.	 56  
3 < 3r   