B
    `                 @   sN   d dl Zd dlmZmZ d dlm  mZ G dd de	Z
G dd de	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	   g      ?g        )	nparangereshapeemptyblas_test_dgemmr   dotT)selfabc r   R/home/dcms/DCMS/lib/python3.7/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
   ir
   )r
   r	   )r   r	   g      ?g        )	r   r   r   r   r   r   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 )Ny      ?      ?y      ?      ؿy      )@      y?       @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   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 )Ng      @g      r
   r   g      ?g      !@
   g      @g `h@g      @g     #@gJ @@)
r   r#   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 )Ng      @r'   g      r
   r   g      ?g      !@r"   g      @g `h@g      @g     #@gJ @@)
r   r#   float32r   r   Z_test_isamaxr   Z_test_sasumZ
_test_sdotZ_test_snrm2)r   r*   r+   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 )Ny      ?      ?y      ?      ؿy      *@      y      ?       @y      ?      y             @r   y     2     L6@r(   y     P     d?@r
   y     2      6@y     @     ?@)	r   r#   Z
complex128r   r   Z_test_izamaxr   Z_test_zdotcZ_test_zdotu)r   r$   r%   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   objectr   r!   r   r   r   r   <module>   s   +