o
    Ö­j÷  ã                   @   sJ   d dl Zd dlmZmZ d dlm  mZ G dd„ dƒZ	G dd„ dƒZ
dS )é    N)Úassert_allcloseÚassert_equalc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	TestDGEMMc                 C   s¨  t jddd� d¡d d…d d…f }t jdddd� d¡d d…d d…f }t  d	¡d d…d d…f }t d
||d|¡ t|| |¡ƒ t d
|j|d|¡ t||j |¡ƒ t d
||jd|¡ t|| |j¡ƒ t d
|j|jd|¡ t||j |j¡ƒ t d
||d|j¡ t|| |¡jƒ t d
|j|d|j¡ t||j |¡jƒ t d
||jd|j¡ t|| |j¡jƒ t d
|j|jd|j¡ t||j |j¡jƒ d S )Né   Úd©Údtype©é   é   é   é   é   )r   r
   ©r   r   ç      ð?ç        ©	ÚnpÚarangeÚreshapeÚemptyÚblasÚ_test_dgemmr   ÚdotÚT©ÚselfÚaÚbÚc© r    ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/linalg/tests/test_cython_blas.pyÚtest_transposes   s&   $&zTestDGEMM.test_transposesc                 C   sˆ   t jddd� d¡}t jdddd� d¡}t  d¡}t d	||d
|¡ t|| |¡ƒ t d	|j|jd
|j¡ t||j |j¡jƒ d S )Né   r   r   )r
   r   iúÿÿÿr   r   r	   r   r   r   r   r    r    r!   Útest_shapes&   s   
zTestDGEMM.test_shapesN)Ú__name__Ú
__module__Ú__qualname__r"   r$   r    r    r    r!   r      s    r   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚTestWfuncPointersz› Test 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                 C   sü   t  g d¢t j¡}t  g d¢t j¡}tt ||¡dƒ tt ||¡dƒ tt |¡dƒ tt 	|¡dƒ tt 
|¡dƒ tt |d d d… |d d d… ¡d	ƒ tt |d d d… |d d d… ¡d
ƒ tt 	|d d d… ¡dƒ tt 
|d d d… ¡dƒ d S )N)ù      à?      ð?ù      Ð?      Ø¿y      )@      À)yš™™™™™é?       @ù      ì?      ä¿ù      ð¿       @yI!  ™¥1ÀŸÔÿ?3_5@y4 €fvÀa+ ÀÌP>@r
   g      2@gKg àú[*@r   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Úcyr    r    r!   Útest_complex_args6   s&   ÿÿ ÿ ÿz#TestWfuncPointers.test_complex_argsc                 C   sÄ   t  g d¢t j¡}t  g d¢t j¡}tt |¡dƒ tt ||¡dƒ tt |¡dƒ tt |d d d… ¡dƒ tt |d d d… |d d d… ¡dƒ tt |d d d… ¡d	ƒ tt 	|¡d
ƒ d S )N©g      @éýÿÿÿg      à¿©r   r   g      à?ç      !@ç      @çò `Îh@r   ç      @ç     €#@çJ @‰@r   )
r   r-   Úfloat64r   r   Ú_test_dasumÚ
_test_ddotÚ_test_dnrm2r   Ú_test_idamax©r   ÚxÚyr    r    r!   Útest_double_argsL   s   &z"TestWfuncPointers.test_double_argsc                 C   sÄ   t  g d¢t j¡}t  g d¢t j¡}tt |¡dƒ tt |¡dƒ tt ||¡dƒ tt 	|¡dƒ tt |d d d… ¡dƒ tt |d d d… |d d d… ¡d	ƒ tt 	|d d d… ¡d
ƒ d S )Nr8   r:   r   r;   r<   r=   r   r>   r?   r@   )
r   r-   Úfloat32r   r   Ú_test_isamaxr   Ú_test_sasumÚ
_test_sdotÚ_test_snrm2rF   r    r    r!   Útest_float_args[   s   &z!TestWfuncPointers.test_float_argsc                 C   s¨   t  g d¢t j¡}t  g d¢t j¡}tt |¡dƒ tt ||¡dƒ tt ||¡dƒ tt |d d d… |d d d… ¡dƒ tt |d d d… |d d d… ¡dƒ d S )	N)r)   r*   y      *@      À)y      ì?       @r+   r,   r
   y     2À     L6@y     PÀ     d?@r   y     �2À      6@y     @À     à?@)	r   r-   Ú
complex128r   r   Ú_test_izamaxr   Ú_test_zdotcÚ_test_zdotur4   r    r    r!   Útest_double_complex_argsj   s   &*z*TestWfuncPointers.test_double_complex_argsN)r%   r&   r'   Ú__doc__r7   rI   rO   rT   r    r    r    r!   r(   1   s    r(   )Únumpyr   Únumpy.testingr   r   Úscipy.linalg.cython_blasÚlinalgÚcython_blasr   r   r(   r    r    r    r!   Ú<module>   s
    +