B
    î&]\À  ã               @   sp   d dl mZmZmZ dgZyddlmZ W n  ek
rJ   dZdd„ ZY nX dd	„ Zd
ddddœZ	ddd„Z
dS )é    )ÚdivisionÚprint_functionÚabsolute_importÚget_flinalg_funcsé   )Ú_flinalgNc             C   s   dS )Nr   © )Úar   r   ú3lib/python3.7/site-packages/scipy/linalg/flinalg.pyÚ<lambda>   s    r   c             C   s
   | j d S )NZFORTRAN)Úflags)Zarrr   r   r
   Úhas_column_major_storage   s    r   ÚsÚdÚcÚz)Úfr   ÚFÚDr   c             C   sÔ   g }x:t t|ƒƒD ]*}|| jj}|tkr.d}| ||f¡ qW |r^| ¡  t|d d  }nd}|r„t||d d  ƒr„d\}}nd\}}g }	x:| D ]2}
||
 }tt	|| tt	|| dƒƒ}|	 |¡ q–W t
|	ƒS )zoReturn optimal available _flinalg function objects with
    names. arrays are used to determine optimal prefix.r   r   r   )Ú_cÚ_r)r   r   N)ÚrangeÚlenZdtypeÚcharÚ
_type_convÚappendÚsortr   Úgetattrr   Útuple)ÚnamesZarraysÚdebugZorderingÚiÚtZrequired_prefixZsuffix1Zsuffix2ZfuncsÚnameZ	func_nameÚfuncr   r   r
   r      s(    


)r   r   )Z
__future__r   r   r   Ú__all__Ú r   ÚImportErrorr   r   r   r   r   r   r
   Ú<module>   s   