U
    »mœdy  ã                   @   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©Zdtype©é   é   é   é   é   )r
   r	   ©r   r
   ç      ð?ç        ©	ÚnpZarangeZreshapeÚemptyÚblasZ_test_dgemmr   ÚdotÚT©ÚselfÚaÚbÚc© r   ú\/home/sam/Atlas/atlas_env/lib/python3.8/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  dddgt j¡}t  dddgt j¡}tt ||¡ddƒ tt ||¡d	dƒ tt |¡d
ƒ tt 	|¡ddƒ tt 
|¡ddƒ tt |d d d… |d d d… ¡ddƒ tt |d d d… |d d d… ¡ddƒ tt 	|d d d… ¡ddƒ tt 
|d 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   ÚarrayZ	complex64r   r   Z_test_cdotcZ_test_cdotur   Z_test_icamaxZ_test_scasumZ_test_scnrm2©r   ZcxÚcyr   r   r   Útest_complex_args6   s.     ÿ ÿ  ÿ  ÿz#TestWfuncPointers.test_complex_argsc                 C   sÔ   t  dddgt j¡}t  dddgt j¡}tt |¡ddƒ tt ||¡d	dƒ tt |¡d
dƒ tt |d d d… ¡ddƒ tt |d d d… |d d d… ¡ddƒ tt |d d d… ¡ddƒ tt 	|¡dƒ d S )Nç      @éýÿÿÿç      à¿r   r   ç      à?ç      !@é
   ç      @çò `Îh@ç      @ç     €#@çJ @‰@)
r   r*   Zfloat64r   r   Z_test_dasumZ
_test_ddotZ_test_dnrm2r   Z_test_idamax©r   ÚxÚyr   r   r   Útest_double_argsL   s    (z"TestWfuncPointers.test_double_argsc                 C   sÔ   t  dddgt j¡}t  dddgt j¡}tt |¡dƒ tt |¡ddƒ tt ||¡d	dƒ tt 	|¡d
dƒ tt |d d d… ¡ddƒ tt |d d d… |d d d… ¡ddƒ tt 	|d d d… ¡ddƒ d S )Nr.   r/   r0   r   r   r1   r2   r)   r4   r5   r6   r7   r8   )
r   r*   Zfloat32r   r   Z_test_isamaxr   Z_test_sasumZ
_test_sdotZ_test_snrm2r9   r   r   r   Útest_float_args[   s    (z!TestWfuncPointers.test_float_argsc                 C   s´   t  dddgt j¡}t  dddgt j¡}tt |¡dƒ tt ||¡dd	ƒ tt ||¡d
d	ƒ tt |d d d… |d d d… ¡dd	ƒ tt |d d d… |d d d… ¡dd	ƒ d S )Nr%   r&   y      *@      Ày      ì?       @r'   r(   r	   y     2À     L6@r3   y     PÀ     d?@r   y     �2À      6@y     @À     à?@)	r   r*   Z
complex128r   r   Z_test_izamaxr   Z_test_zdotcZ_test_zdotur+   r   r   r   Útest_double_complex_argsj   s      ÿ  ÿz*TestWfuncPointers.test_double_complex_argsN)r!   r"   r#   Ú__doc__r-   r<   r=   r>   r   r   r   r   r$   1   s
   r$   )Únumpyr   Znumpy.testingr   r   Zscipy.linalg.cython_blasZlinalgZcython_blasr   r   r$   r   r   r   r   Ú<module>   s   +