import numpy as np
from scipy.lib.lapack import flapack,clapack
FUNCS_TP = {'ssygv' : np.float32,
'dsygv': np.float,
'ssygvd' : np.float32,
'dsygvd' : np.float,
'ssyev' : np.float32,
'dsyev': np.float,
'ssyevr' : np.float32,
'dsyevr' : np.float,
'ssyevr' : np.float32,
'dsyevr' : np.float,
'sgehrd' : np.float32,
'dgehrd' : np.float,
'sgebal' : np.float32,
'dgebal': np.float}
# Test FLAPACK if not empty
if hasattr(flapack, 'empty_module'):
FLAPACK_IS_EMPTY = True
else:
FLAPACK_IS_EMPTY = False
# Test CLAPACK if not empty and not the same as clapack
if hasattr(clapack, 'empty_module') or (clapack == flapack):
CLAPACK_IS_EMPTY = True
else:
CLAPACK_IS_EMPTY = False
funcs = ['ssygv', 'dsygv', 'ssygvd', 'dsygvd', 'ssyev', 'dsyev', 'ssyevr',
'dsyevr', 'sgehrd', 'dgehrd', 'sgebal', 'dgebal']
if not FLAPACK_IS_EMPTY:
FUNCS_FLAPACK = {}
for f in funcs:
FUNCS_FLAPACK[f] = getattr(flapack, f)
else:
FUNCS_FLAPACK = None
if not CLAPACK_IS_EMPTY:
FUNCS_CLAPACK = {}
for f in funcs:
try:
FUNCS_CLAPACK[f] = getattr(clapack, f)
except AttributeError:
FUNCS_CLAPACK[f] = None
else:
FUNCS_CLAPACK = None
PREC = {np.float32: 5, np.float: 12}
|