def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration from scipy._build_utils import get_g77_abi_wrappers, get_sgemv_fix config = Configuration('arpack', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') config = Configuration('arpack', parent_package, top_path) arpack_sources = [join('ARPACK', 'SRC', '*.f')] arpack_sources.extend([join('ARPACK', 'UTIL', '*.f')]) arpack_sources += get_g77_abi_wrappers(lapack_opt) config.add_library('arpack_scipy', sources=arpack_sources, include_dirs=[join('ARPACK', 'SRC')]) ext_sources = ['arpack.pyf.src'] ext_sources += get_sgemv_fix(lapack_opt) config.add_extension( '_arpack', sources=ext_sources, libraries=['arpack_scipy'], extra_info=lapack_opt, depends=arpack_sources, ) config.add_data_dir('tests') return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration from scipy._build_utils import get_g77_abi_wrappers config = Configuration('isolve', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') # iterative methods methods = [ 'BiCGREVCOM.f.src', 'BiCGSTABREVCOM.f.src', 'CGREVCOM.f.src', 'CGSREVCOM.f.src', # 'ChebyREVCOM.f.src', 'GMRESREVCOM.f.src', # 'JacobiREVCOM.f.src', 'QMRREVCOM.f.src', # 'SORREVCOM.f.src' ] Util = ['STOPTEST2.f.src', 'getbreak.f.src'] sources = Util + methods + ['_iterative.pyf.src'] sources = [join('iterative', x) for x in sources] sources += get_g77_abi_wrappers(lapack_opt) config.add_extension('_iterative', sources=sources, extra_info=lapack_opt) config.add_data_dir('tests') return config
def configuration(parent_package='', top_path=None): from numpy.distutils.misc_util import Configuration from numpy.distutils.system_info import get_info, NotFoundError, numpy_info config = Configuration('lib', parent_package, top_path) # get lapack options lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([v[3:-3] for k, v in lapack_opt.get('define_macros', []) if k == 'ATLAS_INFO'] + [None])[0] if atlas_version: print(('ATLAS version: %s' % atlas_version)) # include_dirs=[os.curdir,'$MKLROOT/include'] # library_dirs=['$MKLROOT/lib/intel64'] # libraries=['mkl_intel_lp64','mkl_sequential','mkl_core', 'm', 'pthread'] # render f90 files if templates changed render_f90s() for extension, source in zip(extension_list, source_list): # config.add_extension( # extension, [os.path.join(libdir, source)], libraries=libraries, # library_dirs=library_dirs, include_dirs=include_dirs) config.add_extension(extension, [os.path.join( libdir, source)], extra_info=lapack_opt) return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('pypropack', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') #------------------------------------------------------------ # Set up the libraries. # We need a different python .so file for each, because they # re-use names for functions in the LAPACK extensions. This # could probably be remedied with some work. type_dict = dict(s='single', d='double', c='complex8', z='complex16') for typ in type_dict: lapack_lib = 'sp_%slapack_util' % typ propack_lib = '_%spropack' % typ lapack_sources = join('PROPACK', type_dict[typ], 'Lapack_Util', '*.f') propack_sources = join('PROPACK', type_dict[typ], '*.F') config.add_library(lapack_lib, sources=lapack_sources) config.add_library(propack_lib, sources=propack_sources) config.add_extension('_%spropack' % typ, sources='%spropack.pyf' % typ, libraries=[lapack_lib, propack_lib], extra_info=lapack_opt) return config
def prediction_image(image_path, model_url, user_id): try: model_folder = extract_model(model_url, user_id) model_file = model_json = "" for i in os.listdir(model_folder): if i.endswith(".model"): model_file = i if i.endswith(".json"): model_json = i if model_file is None: raise NotFoundError("model not found") if model_json is None: raise NotFoundError("model json not found") with open(model_folder + "/" + model_json) as f: class_config = json.load(f) print(class_config) model = load_model(model_folder + "/" + model_file) img = image.load_img(image_path, target_size=(HEIGHT, WIDTH)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) pred = model.predict(x)[0] result = {} z = 0 for i in class_config.keys(): label = class_config[i] result[label] = str(pred[z]) z += 1 print(result) keras.backend.clear_session() return result finally: os.remove(image_path)
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('isolve', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') # iterative methods methods = [ 'BiCGREVCOM.f.src', 'BiCGSTABREVCOM.f.src', 'CGREVCOM.f.src', 'CGSREVCOM.f.src', # 'ChebyREVCOM.f.src', 'GMRESREVCOM.f.src', # 'JacobiREVCOM.f.src', 'QMRREVCOM.f.src', # 'SORREVCOM.f.src' ] if needs_g77_abi_wrapper(lapack_opt): methods += [ join('FWRAPPERS', 'wrap_veclib_f.f'), join('FWRAPPERS', 'wrap_veclib_c.c') ] else: methods += [join('FWRAPPERS', 'wrap_dummy.f')] Util = ['STOPTEST2.f.src', 'getbreak.f.src'] sources = Util + methods + ['_iterative.pyf.src'] config.add_extension( '_iterative', sources=[join('iterative', x) for x in sources], extra_info=lapack_opt, depends=[ join('iterative', 'FWRAPPERS', x) for x in ['wrap_veclib_f.f', 'wrap_veclib_c.c', 'wrap_dummy.f'] ]) config.add_data_dir('tests') return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('_propack', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') # ------------------------------------------------------------ # Set up the libraries. # We need a different python extension file for each, because # names resue between functions in the LAPACK extensions. This # could probably be remedied with some work. # NOTES: this might not longer apply now that we build without # LAPACK extensions type_dict = dict(s='single', d='double', c='complex8', z='complex16') check_propack_submodule() for prefix, directory in type_dict.items(): propack_lib = f'_{prefix}propack' # Need to use risc implementation for 32-bit machines if _is_32bit: src = list((pathlib.Path(__file__).parent / 'PROPACK' / directory).glob('*.F')) src = [str(p) for p in src if 'risc' not in str(p)] else: src = join('PROPACK', directory, '*.F') config.add_library(propack_lib, sources=src, macros=[('_OPENMP', )]) config.add_extension(f'_{prefix}propack', sources=f'{prefix}propack.pyf', libraries=[propack_lib], extra_info=lapack_opt, undef_macros=['_OPENMP']) # add required data files to run example matrix tests path_list = ['PROPACK', directory, 'Examples'] config.add_data_files('.', join(*path_list, '*.coord')) config.add_data_files('.', join(*path_list, '*.diag')) config.add_data_files('.', join(*path_list, '*.rra')) config.add_data_files('.', join(*path_list, '*.cua')) config.add_data_files('.', join(*path_list, 'Output', '*.ascii')) return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('arpack', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') config = Configuration('arpack', parent_package, top_path) arpack_sources = [join('ARPACK', 'SRC', '*.f')] arpack_sources.extend([join('ARPACK', 'UTIL', '*.f')]) arpack_sources.extend([join('ARPACK', 'LAPACK', '*.f')]) if needs_g77_abi_wrapper(lapack_opt): arpack_sources += [ join('ARPACK', 'FWRAPPERS', 'wrap_veclib_f.f'), join('ARPACK', 'FWRAPPERS', 'wrap_veclib_c.c') ] else: arpack_sources += [join('ARPACK', 'FWRAPPERS', 'wrap_dummy.f')] config.add_library('arpack_scipy', sources=arpack_sources, include_dirs=[join('ARPACK', 'SRC')], depends=[ join('ARPACK', 'FWRAPPERS', 'wrap_veclib_f.f'), join('ARPACK', 'FWRAPPERS', 'wrap_veclib_c.c'), join('ARPACK', 'FWRAPPERS', 'wrap_dummy.f') ]) config.add_extension( '_arpack', sources='arpack.pyf.src', libraries=['arpack_scipy'], extra_info=lapack_opt, depends=arpack_sources, ) config.add_data_dir('tests') return config
def configuration(parent_package='', top_path=None): from numpy import get_include from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') config = Configuration('_trlib', parent_package, top_path) config.add_extension('_trlib', sources=['_trlib.c', 'trlib_krylov.c', 'trlib_eigen_inverse.c', 'trlib_leftmost.c', 'trlib_quadratic_zero.c', 'trlib_tri_factor.c'], include_dirs=[get_include(), 'trlib'], extra_info=lapack_opt, ) return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration from scipy._build_utils import get_g77_abi_wrappers, split_fortran_files config = Configuration('linalg', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([ v[3:-3] for k, v in lapack_opt.get('define_macros', []) if k == 'ATLAS_INFO' ] + [None])[0] if atlas_version: print(('ATLAS version: %s' % atlas_version)) # fblas: sources = ['fblas.pyf.src'] sources += get_g77_abi_wrappers(lapack_opt) config.add_extension('_fblas', sources=sources, depends=['fblas_l?.pyf.src'], extra_info=lapack_opt) # flapack: sources = ['flapack.pyf.src'] sources += get_g77_abi_wrappers(lapack_opt) config.add_extension('_flapack', sources=sources, depends=['flapack_user.pyf.src'], extra_info=lapack_opt) if atlas_version is not None: # cblas: config.add_extension('_cblas', sources=['cblas.pyf.src'], depends=['cblas.pyf.src', 'cblas_l1.pyf.src'], extra_info=lapack_opt) # clapack: config.add_extension('_clapack', sources=['clapack.pyf.src'], depends=['clapack.pyf.src'], extra_info=lapack_opt) # _flinalg: config.add_extension('_flinalg', sources=[join('src', 'det.f'), join('src', 'lu.f')], extra_info=lapack_opt) # _interpolative: routines_to_split = [ 'dfftb1', 'dfftf1', 'dffti1', 'dsint1', 'dzfft1', 'id_srand', 'idd_copyints', 'idd_id2svd0', 'idd_pairsamps', 'idd_permute', 'idd_permuter', 'idd_random_transf0', 'idd_random_transf0_inv', 'idd_random_transf_init0', 'idd_subselect', 'iddp_asvd0', 'iddp_rsvd0', 'iddr_asvd0', 'iddr_rsvd0', 'idz_estrank0', 'idz_id2svd0', 'idz_permute', 'idz_permuter', 'idz_random_transf0_inv', 'idz_random_transf_init0', 'idz_random_transf_init00', 'idz_realcomp', 'idz_realcomplex', 'idz_reco', 'idz_subselect', 'idzp_aid0', 'idzp_aid1', 'idzp_asvd0', 'idzp_rsvd0', 'idzr_asvd0', 'idzr_reco', 'idzr_rsvd0', 'zfftb1', 'zfftf1', 'zffti1', ] print('Splitting linalg.interpolative Fortran source files') fnames = split_fortran_files( join( os.path.split(os.path.abspath(__file__))[0], 'src', 'id_dist', 'src'), routines_to_split) fnames = [join('src', 'id_dist', 'src', f) for f in fnames] config.add_extension('_interpolative', fnames + ["interpolative.pyf"], extra_info=lapack_opt) config.add_data_dir('tests') config.add_data_dir('benchmarks') return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration from scipy._build_utils import (gfortran_legacy_flag_hook, get_g77_abi_wrappers, needs_g77_abi_wrapper) lapack_opt = get_info('lapack_opt') pre_build_hook = gfortran_legacy_flag_hook f2py_options = None if not lapack_opt: raise NotFoundError('no lapack/blas resources found') config = Configuration('_propack', parent_package, top_path) # ------------------------------------------------------------ # Set up the libraries. # We need a different python extension file for each, because # names reuse between functions in the LAPACK extensions. This # could probably be remedied with some work. # NOTES: this might not longer apply now that we build without # LAPACK extensions type_dict = dict(s='single', d='double', c='complex8', z='complex16') check_propack_submodule() for prefix, directory in type_dict.items(): propack_lib = f'_{prefix}propack' # Use risc msg implementation for 64-bit machines, pentium for 32-bit src_dir = pathlib.Path(__file__).parent / 'PROPACK' / directory src = list(src_dir.glob('*.F')) if _is_32bit(): # don't ask me why, 32-bit blows up without second.F src = [str(p) for p in src if 'risc' not in str(p)] else: src = [str(p) for p in src if 'pentium' not in str(p) and 'second' not in str(p)] if not _is_32bit(): # don't ask me why, 32-bit blows up with this wrapper src += get_g77_abi_wrappers(lapack_opt) cmacros = [('_OPENMP',)] if needs_g77_abi_wrapper(lapack_opt): cmacros += [('SCIPY_USE_G77_CDOTC_WRAP', 1)] config.add_library(propack_lib, sources=src, macros=cmacros, include_dirs=src_dir, depends=['setup.py']) ext = config.add_extension(f'_{prefix}propack', sources=f'{prefix}propack.pyf', libraries=[propack_lib], extra_info=lapack_opt, undef_macros=['_OPENMP'], f2py_options=f2py_options, depends=['setup.py'] + src) ext._pre_build_hook = pre_build_hook return config
from numpy.distutils.system_info import get_info, NotFoundError import numpy.distutils.extension as Next # Fortran helper files F90ext = Next.Extension( 'Inelastica.F90helpers', [ 'package/F90/expansion_SE.f90', 'package/F90/readTSHS.f90', 'package/F90/removeUnitCellXij.f90', 'package/F90/setkpointhelper.f90' ], ) # Retrieve the LAPACK-library... lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('No LAPACK/BLAS resources found') F90extLapack = Next.Extension('Inelastica.F90_lapack', ['package/F90/surfaceGreen.f90'], **lapack_opt) # Main setup of python modules setup( name='Inelastica', version='1.2-rc', # Define the requirements for Inelastica # These probably needs to be adjusted... requires=['python (>=2.5)', 'numpy (>=1.6)', 'netCDF4 (>=1.2.7)'], description='Python tools for SIESTA/TranSIESTA', long_description=""" Provides: 1: File format conversions for geometry, try: geom2geom --help 2: Phonon calculations (including e-ph coupling)
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('linalg', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([v[3:-3] for k,v in lapack_opt.get('define_macros',[]) \ if k=='ATLAS_INFO']+[None])[0] if atlas_version: print('ATLAS version: %s' % atlas_version) target_dir = '' skip_names = {'clapack': [], 'flapack': [], 'cblas': [], 'fblas': []} if skip_single_routines: target_dir = 'dbl' skip_names['clapack'].extend(\ 'sgesv cgesv sgetrf cgetrf sgetrs cgetrs sgetri cgetri'\ ' sposv cposv spotrf cpotrf spotrs cpotrs spotri cpotri'\ ' slauum clauum strtri ctrtri'.split()) skip_names['flapack'].extend(skip_names['clapack']) skip_names['flapack'].extend(\ 'sgesdd cgesdd sgelss cgelss sgeqrf cgeqrf sgeev cgeev'\ ' sgegv cgegv ssyev cheev slaswp claswp sgees cgees' ' sggev cggev'.split()) skip_names['cblas'].extend('saxpy caxpy'.split()) skip_names['fblas'].extend(skip_names['cblas']) skip_names['fblas'].extend(\ 'srotg crotg srotmg srot csrot srotm sswap cswap sscal cscal'\ ' csscal scopy ccopy sdot cdotu cdotc snrm2 scnrm2 sasum scasum'\ ' isamax icamax sgemv cgemv chemv ssymv strmv ctrmv'\ ' sgemm cgemm'.split()) if using_lapack_blas: target_dir = join(target_dir, 'blas') skip_names['fblas'].extend(\ 'drotmg srotmg drotm srotm'.split()) if atlas_version == '3.2.1_pre3.3.6': target_dir = join(target_dir, 'atlas321') skip_names['clapack'].extend(\ 'sgetri dgetri cgetri zgetri spotri dpotri cpotri zpotri'\ ' slauum dlauum clauum zlauum strtri dtrtri ctrtri ztrtri'.split()) elif atlas_version and atlas_version > '3.4.0' and atlas_version <= '3.5.12': skip_names['clapack'].extend('cpotrf zpotrf'.split()) # fblas: if needs_cblas_wrapper(lapack_opt): sources = ['fblas.pyf.src', join('src', 'fblaswrap_veclib_c.c')], else: sources = ['fblas.pyf.src', join('src', 'fblaswrap.f')] # Note: `depends` needs to include fblaswrap(_veclib) for both files to be # included by "python setup.py sdist" config.add_extension('fblas', sources=sources, depends=[ 'fblas_l?.pyf.src', join('src', 'fblaswrap_veclib_c.c'), join('src', 'fblaswrap.f') ], extra_info=lapack_opt) # flapack: config.add_extension('flapack', sources=['flapack.pyf.src'], depends=['flapack_user.pyf.src'], extra_info=lapack_opt) if atlas_version is not None: # cblas: config.add_extension('cblas', sources=['cblas.pyf.src'], depends=['cblas.pyf.src', 'cblas_l1.pyf.src'], f2py_options=['skip:'] + skip_names['cblas'] + [':'], extra_info=lapack_opt) # clapack: config.add_extension('clapack', sources=['clapack.pyf.src'], depends=['clapack.pyf.src'], f2py_options=['skip:'] + skip_names['clapack'] + [':'], extra_info=lapack_opt) # _flinalg: config.add_extension('_flinalg', sources=[join('src', 'det.f'), join('src', 'lu.f')], extra_info=lapack_opt) # calc_lwork: config.add_extension('calc_lwork', [join('src', 'calc_lwork.f')], extra_info=lapack_opt) # atlas_version: if os.name == 'nt' and ('FPATH' in os.environ or 'MKLROOT' in os.environ): define_macros = [('NO_ATLAS_INFO', 1)] else: define_macros = [] config.add_extension('atlas_version', ['atlas_version.c'], extra_info=lapack_opt, define_macros=define_macros) config.add_data_dir('tests') config.add_data_dir('benchmarks') return config
def prediction_zip(prediction_request, user_id, worker): worker = str(worker) model_file_url = prediction_request.model_url test_zip_folder = prediction_request.zip_file_url storage_label = prediction_request.label name = prediction_request.name zip_path = file_download(test_zip_folder, user_id) images_folder = extract_data(zip_path, worker) zip_path = file_download(model_file_url, user_id) model_folder = extract_data(zip_path, worker) model_file = model_json = "" for i in os.listdir(model_folder): if i.endswith(".model"): model_file = i if i.endswith(".json"): model_json = i if model_file is None: raise NotFoundError("model not found") if model_json is None: raise NotFoundError("model json not found") with open(model_folder + "/" + model_json) as f: class_config = json.load(f) pred_file = name + "_" + worker + "_prediction.csv" model = load_model(model_folder + "/" + model_file) images = os.listdir(images_folder) try: labels = [] imgs = [] classes = [] for img_name in images: if not img_name.endswith(".csv"): path = images_folder + "/" + img_name img = image.load_img(path, target_size=(HEIGHT, WIDTH)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) preds = model.predict(x)[0] result = {} z = 0 for i in class_config.keys(): label = class_config[i] result[label] = preds[z] z += 1 print(result) cls = sorted(result.items(), key=lambda j: j[1], reverse=True)[0][0] imgs.append(img_name) labels.append(result) classes.append(cls) df = pd.DataFrame( list(zip(imgs, labels, classes)), columns=["image_name", "prediction_json", "prediction_class"]) df.to_csv(pred_file, index=False) csv_file_url = file_upload(pred_file, user_id, storage_label) return csv_file_url finally: rmtree(model_folder) os.remove(pred_file) rmtree(images_folder)
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration from interface_gen import generate_interface config = Configuration('linalg', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([v[3:-3] for k,v in lapack_opt.get('define_macros',[]) \ if k=='ATLAS_INFO']+[None])[0] if atlas_version: print('ATLAS version: %s' % atlas_version) target_dir = '' skip_names = {'clapack': [], 'flapack': [], 'cblas': [], 'fblas': []} if skip_single_routines: target_dir = 'dbl' skip_names['clapack'].extend(\ 'sgesv cgesv sgetrf cgetrf sgetrs cgetrs sgetri cgetri'\ ' sposv cposv spotrf cpotrf spotrs cpotrs spotri cpotri'\ ' slauum clauum strtri ctrtri'.split()) skip_names['flapack'].extend(skip_names['clapack']) skip_names['flapack'].extend(\ 'sgesdd cgesdd sgelss cgelss sgeqrf cgeqrf sgeev cgeev'\ ' sgegv cgegv ssyev cheev slaswp claswp sgees cgees' ' sggev cggev'.split()) skip_names['cblas'].extend('saxpy caxpy'.split()) skip_names['fblas'].extend(skip_names['cblas']) skip_names['fblas'].extend(\ 'srotg crotg srotmg srot csrot srotm sswap cswap sscal cscal'\ ' csscal scopy ccopy sdot cdotu cdotc snrm2 scnrm2 sasum scasum'\ ' isamax icamax sgemv cgemv chemv ssymv strmv ctrmv'\ ' sgemm cgemm'.split()) if using_lapack_blas: target_dir = join(target_dir, 'blas') skip_names['fblas'].extend(\ 'drotmg srotmg drotm srotm'.split()) if atlas_version == '3.2.1_pre3.3.6': target_dir = join(target_dir, 'atlas321') skip_names['clapack'].extend(\ 'sgetri dgetri cgetri zgetri spotri dpotri cpotri zpotri'\ ' slauum dlauum clauum zlauum strtri dtrtri ctrtri ztrtri'.split()) elif atlas_version and atlas_version > '3.4.0' and atlas_version <= '3.5.12': skip_names['clapack'].extend('cpotrf zpotrf'.split()) def generate_pyf(extension, build_dir): name = extension.name.split('.')[-1] target = join(build_dir, target_dir, name + '.pyf') if name[0] == 'c' and atlas_version is None and newer( __file__, target): f = open(target, 'w') f.write('python module ' + name + '\n') f.write('usercode void empty_module(void) {}\n') f.write('interface\n') f.write('subroutine empty_module()\n') f.write('intent(c) empty_module\n') f.write('end subroutine empty_module\n') f.write('end interface\nend python module' + name + '\n') f.close() return target if newer_group(extension.depends, target): generate_interface(name, extension.depends[0], target, skip_names[name]) return target depends = [ 'generic_fblas.pyf', 'generic_fblas1.pyf', 'generic_fblas2.pyf', 'generic_fblas3.pyf', 'interface_gen.py', join('src', 'fblaswrap_veclib_c.c'), join('src', 'fblaswrap.f'), ] # fblas: if needs_cblas_wrapper(lapack_opt): config.add_extension( 'fblas', sources=[generate_pyf, join('src', 'fblaswrap_veclib_c.c')], depends=depends, extra_info=lapack_opt) else: config.add_extension( 'fblas', sources=[generate_pyf, join('src', 'fblaswrap.f')], depends=depends, extra_info=lapack_opt) # cblas: config.add_extension('cblas', sources=[generate_pyf], depends=[ 'generic_cblas.pyf', 'generic_cblas1.pyf', 'interface_gen.py' ], extra_info=lapack_opt) # flapack: config.add_extension('flapack', sources=[generate_pyf], depends=[ 'generic_flapack.pyf', 'flapack_user_routines.pyf', 'interface_gen.py' ], extra_info=lapack_opt) # clapack: config.add_extension('clapack', sources=[generate_pyf], depends=['generic_clapack.pyf', 'interface_gen.py'], extra_info=lapack_opt) # _flinalg: config.add_extension('_flinalg', sources=[join('src', 'det.f'), join('src', 'lu.f')], extra_info=lapack_opt) # calc_lwork: config.add_extension('calc_lwork', [join('src', 'calc_lwork.f')], extra_info=lapack_opt) # atlas_version: if os.name == 'nt' and 'FPATH' in os.environ: define_macros = [('NO_ATLAS_INFO', 1)] else: define_macros = [] config.add_extension('atlas_version', ['atlas_version.c'], extra_info=lapack_opt, define_macros=define_macros) config.add_data_dir('tests') config.add_data_dir('benchmarks') return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError, numpy_info from numpy.distutils.misc_util import Configuration, get_numpy_include_dirs from scipy._build_utils import (get_sgemv_fix, get_g77_abi_wrappers, split_fortran_files) config = Configuration('linalg', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([ v[3:-3] for k, v in lapack_opt.get('define_macros', []) if k == 'ATLAS_INFO' ] + [None])[0] if atlas_version: print(('ATLAS version: %s' % atlas_version)) # fblas: sources = ['fblas.pyf.src'] sources += get_g77_abi_wrappers(lapack_opt) sources += get_sgemv_fix(lapack_opt) config.add_extension('_fblas', sources=sources, depends=['fblas_l?.pyf.src'], extra_info=lapack_opt) # flapack: sources = ['flapack.pyf.src'] sources += get_g77_abi_wrappers(lapack_opt) config.add_extension('_flapack', sources=sources, depends=['flapack_user.pyf.src'], extra_info=lapack_opt) if atlas_version is not None: # cblas: config.add_extension('_cblas', sources=['cblas.pyf.src'], depends=['cblas.pyf.src', 'cblas_l1.pyf.src'], extra_info=lapack_opt) # clapack: config.add_extension('_clapack', sources=['clapack.pyf.src'], depends=['clapack.pyf.src'], extra_info=lapack_opt) # _flinalg: config.add_extension('_flinalg', sources=[join('src', 'det.f'), join('src', 'lu.f')], extra_info=lapack_opt) # _interpolative: routines_to_split = [ 'dfftb1', 'dfftf1', 'dffti1', 'dsint1', 'dzfft1', 'id_srand', 'idd_copyints', 'idd_id2svd0', 'idd_pairsamps', 'idd_permute', 'idd_permuter', 'idd_random_transf0', 'idd_random_transf0_inv', 'idd_random_transf_init0', 'idd_subselect', 'iddp_asvd0', 'iddp_rsvd0', 'iddr_asvd0', 'iddr_rsvd0', 'idz_estrank0', 'idz_id2svd0', 'idz_permute', 'idz_permuter', 'idz_random_transf0_inv', 'idz_random_transf_init0', 'idz_random_transf_init00', 'idz_realcomp', 'idz_realcomplex', 'idz_reco', 'idz_subselect', 'idzp_aid0', 'idzp_aid1', 'idzp_asvd0', 'idzp_rsvd0', 'idzr_asvd0', 'idzr_reco', 'idzr_rsvd0', 'zfftb1', 'zfftf1', 'zffti1', ] print('Splitting linalg.interpolative Fortran source files') dirname = os.path.split(os.path.abspath(__file__))[0] fnames = split_fortran_files(join(dirname, 'src', 'id_dist', 'src'), routines_to_split) fnames = [join('src', 'id_dist', 'src', f) for f in fnames] config.add_extension('_interpolative', fnames + ["interpolative.pyf"], extra_info=lapack_opt) # _calc_lwork: config.add_extension('_calc_lwork', [join('src', 'calc_lwork.f')], extra_info=lapack_opt) # _solve_toeplitz: config.add_extension('_solve_toeplitz', sources=[('_solve_toeplitz.c')], include_dirs=[get_numpy_include_dirs()]) config.add_data_dir('tests') # Cython BLAS/LAPACK config.add_data_files('cython_blas.pxd') config.add_data_files('cython_lapack.pxd') sources = ['_blas_subroutine_wrappers.f', '_lapack_subroutine_wrappers.f'] sources += get_g77_abi_wrappers(lapack_opt) sources += get_sgemv_fix(lapack_opt) includes = numpy_info().get_include_dirs() config.add_library('fwrappers', sources=sources, include_dirs=includes) config.add_extension('cython_blas', sources=['cython_blas.c'], depends=[ 'cython_blas.pyx', 'cython_blas.pxd', 'fortran_defs.h', '_blas_subroutines.h' ], include_dirs=['.'], libraries=['fwrappers'], extra_info=lapack_opt) config.add_extension('cython_lapack', sources=['cython_lapack.c'], depends=[ 'cython_lapack.pyx', 'cython_lapack.pxd', 'fortran_defs.h', '_lapack_subroutines.h' ], include_dirs=['.'], libraries=['fwrappers'], extra_info=lapack_opt) config.add_extension('_decomp_update', sources=['_decomp_update.c']) return config
def configuration(parent_package='',top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('linalg',parent_package,top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([v[3:-3] for k,v in lapack_opt.get('define_macros',[]) \ if k=='ATLAS_INFO']+[None])[0] if atlas_version: print(('ATLAS version: %s' % atlas_version)) target_dir = '' # fblas: if needs_g77_abi_wrapper(lapack_opt): sources = ['fblas.pyf.src', join('src', 'fblaswrap_veclib_c.c')], else: sources = ['fblas.pyf.src', join('src', 'fblaswrap.f')] # Note: `depends` needs to include fblaswrap(_veclib) for both files to be # included by "python setup.py sdist" config.add_extension('_fblas', sources = sources, depends = ['fblas_l?.pyf.src', join('src', 'fblaswrap_veclib_c.c'), join('src', 'fblaswrap.f')], extra_info = lapack_opt ) # flapack: config.add_extension('_flapack', sources = ['flapack.pyf.src'], depends = ['flapack_user.pyf.src'], extra_info = lapack_opt ) if atlas_version is not None: # cblas: config.add_extension('_cblas', sources = ['cblas.pyf.src'], depends = ['cblas.pyf.src', 'cblas_l1.pyf.src'], extra_info = lapack_opt ) # clapack: config.add_extension('_clapack', sources = ['clapack.pyf.src'], depends = ['clapack.pyf.src'], extra_info = lapack_opt ) # _flinalg: config.add_extension('_flinalg', sources = [join('src','det.f'),join('src','lu.f')], extra_info = lapack_opt ) # calc_lwork: config.add_extension('calc_lwork', [join('src','calc_lwork.f')], extra_info = lapack_opt ) config.add_data_dir('tests') config.add_data_dir('benchmarks') return config
def configuration(parent_package='', top_path=None): config = Configuration('mathlink', parent_package, top_path) #Compile the amos library config.add_library( 'famos', sources=[join('amos', '*f'), join('amos', 'mach', '*f')]) #Add the g2c or gfortran libraries to the source, is there a better way? def generate_fortran_library(ext, build_dir): config_cmd = config.get_config_cmd() config_cmd._check_compiler() fc_type = config_cmd.fcompiler.compiler_type config_cmd._clean() if fc_type == 'gnu95': ext.libraries.append('gfortran') elif fc_type == 'gnu': ext.libraries.append('g2c') print("Compiler: %s, Extend libraries: %s" % (fc_type, ext.libraries)) return None config.add_extension( 'bessel_ratios', sources=['bessel_ratios.cpp', generate_fortran_library], depends=['bessel_function_ratios.h'], libraries=['famos']) #C++ tridiagonal block solver #Get blas/lapack resources from numpy lapack_opt = config.get_info('lapack_opt') #Get boost SOURCE resources from numpy boost_src = config.get_info('boost_python') if not lapack_opt: from numpy.distutils.system_info import NotFoundError raise NotFoundError('no lapack/blas resources found') ublock_sources = [ 'ublas_block_lu/ublocklu.cpp', 'ublas_block_lu/numimport.cpp' ] ublock_depends = [ 'ublas_block_lu/ublocklu.hpp', 'ublas_block_lu/numimport.hpp' ] ublock_compile_flags = [] ublock_link_flags = [] ublock_library_dirs = [] ublock_include_dirs = ['ublas_block_lu'] ublock_libraries = [] #If boost_src is found, use that, otherwise use default directories if boost_src: print("Compiling boost-python from source") ublock_include_dirs += boost_src['include_dirs'] ublock_libraries += boost_src['libraries'] elif _ublock_boost_prefix: print("Using user configured boost-python") boost_include_dir = join(_ublock_boost_prefix, 'include') boost_library_dir = join(_ublock_boost_prefix, 'lib') ublock_library_dirs = [boost_library_dir] ublock_include_dirs = ['ublas_block_lu', boost_include_dir] ublock_libraries = [_ublock_boost_lib] else: print("Using system boost-python") boost_include_dir = "/usr/include" boost_library_dir = "/usr/lib" ublock_library_dirs = [boost_library_dir] ublock_include_dirs = ['ublas_block_lu', boost_include_dir] ublock_libraries = ['boost_python-mt'] if _ublock_compile_with_openmp: ublock_compile_flags += ['-fopenmp', '-ftree-vectorize'] ublock_link_flags += ['-lgomp'] if _ublock_compile: config.add_extension('ublocklu', sources=ublock_sources, depends=ublock_depends, library_dirs=ublock_library_dirs, include_dirs=ublock_include_dirs, libraries=ublock_libraries, extra_compile_args=ublock_compile_flags, extra_link_args=ublock_link_flags, extra_info=lapack_opt) return config
def configuration(parent_package='', top_path=None): from numpy.distutils.system_info import get_info, NotFoundError from numpy.distutils.misc_util import Configuration config = Configuration('linalg', parent_package, top_path) lapack_opt = get_info('lapack_opt') if not lapack_opt: raise NotFoundError('no lapack/blas resources found') atlas_version = ([ v[3:-3] for k, v in lapack_opt.get('define_macros', []) if k == 'ATLAS_INFO' ] + [None])[0] if atlas_version: print(('ATLAS version: %s' % atlas_version)) # fblas: if needs_g77_abi_wrapper(lapack_opt): sources = ['fblas.pyf.src', join('src', 'fblaswrap_veclib_c.c')], else: sources = ['fblas.pyf.src', join('src', 'fblaswrap_dummy.f')] # Note: `depends` needs to include fblaswrap(_veclib) for both files to be # included by "python setup.py sdist" config.add_extension('_fblas', sources=sources, depends=[ 'fblas_l?.pyf.src', join('src', 'fblaswrap_veclib_c.c'), join('src', 'fblaswrap_dummy.f') ], extra_info=lapack_opt) # flapack: if needs_g77_abi_wrapper(lapack_opt): sources = ['flapack.pyf.src', join('src', 'flapackwrap_veclib.f')], else: sources = ['flapack.pyf.src', join('src', 'flapackwrap_dummy.f')] config.add_extension('_flapack', sources=sources, depends=[ 'flapack_user.pyf.src', join('src', 'flapackwrap_veclib.f'), join('src', 'flapackwrap_dummy.f') ], extra_info=lapack_opt) if atlas_version is not None: # cblas: config.add_extension('_cblas', sources=['cblas.pyf.src'], depends=['cblas.pyf.src', 'cblas_l1.pyf.src'], extra_info=lapack_opt) # clapack: config.add_extension('_clapack', sources=['clapack.pyf.src'], depends=['clapack.pyf.src'], extra_info=lapack_opt) # _flinalg: config.add_extension('_flinalg', sources=[join('src', 'det.f'), join('src', 'lu.f')], extra_info=lapack_opt) # calc_lwork: config.add_extension('calc_lwork', [join('src', 'calc_lwork.f')], extra_info=lapack_opt) # _interpolative: config.add_extension('_interpolative', [ join('src', 'id_dist', 'src', fn) for fn in [ 'dfft.f', 'idd_frm.f', 'idd_house.f', 'idd_id2svd.f', 'idd_id.f', 'iddp_aid.f', 'iddp_asvd.f', 'iddp_rid.f', 'iddp_rsvd.f', 'idd_qrpiv.f', 'iddr_aid.f', 'iddr_asvd.f', 'iddr_rid.f', 'iddr_rsvd.f', 'idd_sfft.f', 'idd_snorm.f', 'idd_svd.f', 'id_rand.f', 'id_rtrans.f', 'idz_frm.f', 'idz_house.f', 'idz_id2svd.f', 'idz_id.f', 'idzp_aid.f', 'idzp_asvd.f', 'idzp_rid.f', 'idzp_rsvd.f', 'idz_qrpiv.f', 'idzr_aid.f', 'idzr_asvd.f', 'idzr_rid.f', 'idzr_rsvd.f', 'idz_sfft.f', 'idz_snorm.f', 'idz_svd.f', ] ] + ["interpolative.pyf"], extra_info=lapack_opt) config.add_data_dir('tests') config.add_data_dir('benchmarks') return config