o
    Ebz                     @   sZ   d gZ zddlmZ W n ey   dZdd ZY nw dd Zdd	d
ddZddd ZdS )get_flinalg_funcs   )_flinalgNc                 C   s   dS )N     )ar   r   :/usr/lib/python3/dist-packages/scipy/linalg/_flinalg_py.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   r   c                 C   s   g }t |D ]\}}|jj}|tvrd}|||f q|r+|  t|d d  }nd}|r>t||d d  r>d\}}	nd\}}	g }
| D ]}|| }tt|| tt||	 d}|
| qFt	|
S )zoReturn optimal available _flinalg function objects with
    names. Arrays are used to determine optimal prefix.r   r   r   )_c_r)r   r   N)
	enumerateZdtypechar
_type_convappendsortr
   getattrr   tuple)namesZarraysdebugZorderingiartZrequired_prefixZsuffix1Zsuffix2ZfuncsnameZ	func_namefuncr   r   r   r      s*   

)r   r   )__all__ r   ImportErrorr
   r   r   r   r   r   r   <module>   s   