
    Bpj                     j    S SK rS SKJrJr  S SKJs  Jr   " S S5      r	 " S S5      r
 " S S5      rg)	    N)assert_allcloseassert_equalc                   $    \ rS rSrSrS rS rSrg)TestBlasInt   z:Tests for blas_int type used in cython_blas/cython_lapack.c                     SSK Jn  [        R                  " 5       nUS   S   S   nU(       a  US:X  d   SU S35       eOUS	:X  d   S
U S35       e[        R                  " 5       nU(       a	  US:X  d   egUS:X  d   eg)z5Verify blas_int size matches the build configuration.r   )CONFIGzBuild Dependenciesblaszcython blas ilp64   zILP64 build but blas_int is z bytes   zLP64 build but blas_int is )r   r   )r   r   N)scipy.__config__r	   r
   _blas_int_size_blas_bint_bint_sizes)selfr	   sizecython_blas_ilp64
bint_sizess        _/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_cython_blas.pytest_blas_int_sizeTestBlasInt.test_blas_int_size
   s    +""$"#78@ATU19I <TF&II919H ;D6HH9 //1
''''''    c                 <   [         R                  " S[         R                  S9n[         R                  " S[         R                  S9R	                  S5      n[         R
                  " S[         R                  S9n[        R                  " SXSU5        [        X25        g)z?Test dgemm works correctly - exercises blas_int for dimensions.   dtype	   )r   r         ?        N)	npeyefloat64arangereshapeemptyr
   _test_dgemmr   r   abcs       r   #test_dgemm_with_blas_int_dimensions/TestBlasInt.test_dgemm_with_blas_int_dimensions   se    FF1BJJ'IIarzz*226:HHV2::.Q2q)r    N)__name__
__module____qualname____firstlineno____doc__r   r*   __static_attributes__r,   r   r   r   r      s    D("r   r   c                        \ rS rSrS rS rSrg)	TestDGEMM$   c                 b   [         R                  " S[         R                  S9R                  S5      S S2S S24   n[         R                  " SS[         R                  S9R                  S5      S S2S S24   n[         R                  " S[         R                  S9S S2S S24   n[
        R                  " S	XS
U5        [        X1R                  U5      5        [
        R                  " S	UR                  US
U5        [        X1R                  R                  U5      5        [
        R                  " S	XR                  S
U5        [        X1R                  UR                  5      5        [
        R                  " S	UR                  UR                  S
U5        [        X1R                  R                  UR                  5      5        [
        R                  " S	XS
UR                  5        [        X1R                  U5      R                  5        [
        R                  " S	UR                  US
UR                  5        [        X1R                  R                  U5      R                  5        [
        R                  " S	XR                  S
UR                  5        [        X1R                  UR                  5      R                  5        [
        R                  " S	UR                  UR                  S
UR                  5        [        X1R                  R                  UR                  5      R                  5        g )N   r   r   r            )r   r   r9   r   r   r   
r   r"   r!   r#   r$   r
   r%   r   dotTr&   s       r   test_transposesTestDGEMM.test_transposes&   s   IIb

+33F;BQBrrEBIIa2::.66v>rr"1"uEHHV2::.rr"1"u5Q2q)558$QSS!R+33771:&QR+55:&QSS!##r1-3377133<(Q2qss+558::&QSS!R-33771:<<(QR-55:<<(QSS!##r133/3377133<>>*r   c                 Z   [         R                  " S[         R                  S9R                  S5      n[         R                  " SS[         R                  S9R                  S5      n[         R                  " S[         R                  S9n[
        R                  " SXS	U5        [        X1R                  U5      5        [
        R                  " SUR                  UR                  S	UR                  5        [        X2R                  R                  UR                  5      R                  5        g )
N   r   )r   r9   ir9   r<   r8   r   r   r=   r&   s       r   test_shapesTestDGEMM.test_shapesD   s    IIarzz*226:IIb!2::.66v>HHV2::.Q2q)558$QSS!##r133/3377133<>>*r   r,   N)r-   r.   r/   r0   r@   rD   r2   r,   r   r   r4   r4   $   s    +<	+r   r4   c                   0    \ rS rSrSrS rS rS rS rSr	g)	TestWfuncPointersO   zTest the function pointers that are expected to fail on
Mac OS X without the additional entry statement in their definitions
in fblas_l1.pyf.src. c           	      ,   [         R                  " / SQ[         R                  5      n[         R                  " / SQ[         R                  5      n[        [        R
                  " X5      S5        [        [        R                  " X5      S5        [        [        R                  " U5      S5        [        [        R                  " U5      S5        [        [        R                  " U5      S5        [        [        R
                  " US S S2   US S S2   5      S	5        [        [        R                  " US S S2   US S S2   5      S
5        [        [        R                  " US S S2   5      S5        [        [        R                  " US S S2   5      S5        g )N)      ?      ?      ?      ؿy      )@      )y?       @      ?                   @yI! 1?3_5@y4 fva+ P>@r   g     2@gKg [*@r9   yI! 2?335@y4 ffa+ >@g      2@g8f X*@)r   array	complex64r   r
   _test_cdotc_test_cdotur   _test_icamax_test_scasum_test_scnrm2r   cxcys      r   test_complex_args#TestWfuncPointers.test_complex_argsT   s+   XX92<<HXX92<<H((05	7((05	7 	T&&r*A.))"-v6))"-}=((CaC"SqS':5	7((CaC"SqS':5	7))"SqS'2C8))"SqS'2MBr   c           	         [         R                  " / SQ[         R                  5      n[         R                  " / SQ[         R                  5      n[        [        R
                  " U5      S5        [        [        R                  " X5      S5        [        [        R                  " U5      S5        [        [        R
                  " US S S2   5      S5        [        [        R                  " US S S2   US S S2   5      S5        [        [        R                  " US S S2   5      S	5        [        [        R                  " U5      S
5        g )Ng      @g      ࿩r9   r:   g      ?      !@      @ `h@r9         @     #@J @@r:   )
r   rN   r!   r   r
   _test_dasum
_test_ddot_test_dnrm2r   _test_idamaxr   xys      r   test_double_args"TestWfuncPointers.test_double_argsj   s    HH]BJJ/HHZ,((+S1-t4((+];((3Q30#6#A##A#7>((3Q30,?T&&q)1-r   c           	         [         R                  " / SQ[         R                  5      n[         R                  " / SQ[         R                  5      n[        [        R
                  " U5      S5        [        [        R                  " U5      S5        [        [        R                  " X5      S5        [        [        R                  " U5      S5        [        [        R                  " US S S2   5      S5        [        [        R                  " US S S2   US S S2   5      S	5        [        [        R                  " US S S2   5      S
5        g )Nr[   r]   r:   r^   r_   r`   r9   ra   rb   rc   )
r   rN   float32r   r
   _test_isamaxr   _test_sasum
_test_sdot_test_snrm2rh   s      r   test_float_args!TestWfuncPointers.test_float_argsy   s    HH]BJJ/HHZ,T&&q)1-((+S1-t4((+];((3Q30#6#A##A#7>((3Q30,?r   c           	         [         R                  " / SQ[         R                  5      n[         R                  " / SQ[         R                  5      n[        [        R
                  " U5      S5        [        [        R                  " X5      S5        [        [        R                  " X5      S5        [        [        R                  " US S S2   US S S2   5      S5        [        [        R                  " US S S2   US S S2   5      S5        g )	N)rJ   rK   y      *@      )y      ?       @rL   rM   r   y     2     L6@y     P     d?@r9   y     2      6@y     @     ?@)	r   rN   
complex128r   r
   _test_izamaxr   _test_zdotc_test_zdoturU   s      r   test_double_complex_args*TestWfuncPointers.test_double_complex_args   s    XX8"--HXX;R]]KT&&r*A.((02GH((02FG((CaC"SqS':<LM((CaC"SqS':OLr   r,   N)
r-   r.   r/   r0   r1   rX   rk   rs   rz   r2   r,   r   r   rG   rG   O   s    C,.@Mr   rG   )numpyr   numpy.testingr   r   scipy.linalg.cython_blaslinalgcython_blasr
   r   r4   rG   r,   r   r   <module>r      s6    ) ' ' :)+ )+VDM DMr   