3
´
6^À  ã               @   st   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	f d fdd„Z
dS )é    )ÚdivisionÚprint_functionÚabsolute_importÚget_flinalg_funcsé   )Ú_flinalgNc             C   s   dS )Nr   © )Úar   r   ú5/tmp/pip-build-vw4w4j08/scipy/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ÚDc             C   sÔ   g }x:t t|ƒƒD ]*}|| jj}|tkr.d}|j||fƒ qW |r^|jƒ  t|d d  }nd}|r„t||d d  ƒr„d\}}nd\}}g }	x:| D ]2}
||
 }tt	|| tt	|| dƒƒ}|	j|ƒ q–W t
|	ƒS )	zoReturn optimal available _flinalg function objects with
    names. arrays are used to determine optimal prefix.r   r   r   Ú_cÚ_rN)r   r   )r   r   )ÚrangeÚlenZdtypeÚcharÚ
_type_convÚappendÚsortr   Úgetattrr   Útuple)ÚnamesZarraysÚdebugZorderingÚiÚtZrequired_prefixZsuffix1Zsuffix2ÚfuncsÚnameÚ	func_nameÚfuncr   r   r
   r      s(    


)Ú
__future__r   r   r   Ú__all__Ú r   ÚImportErrorr   r   r   r   r   r   r
   Ú<module>   s   