Example #1
0
def configuration(parent_package='', top_path=None):
    from numpy.distutils.misc_util import Configuration
    from numpy.distutils.system_info import get_info

    config = Configuration('blas', parent_package, top_path)

    blas_opt = get_info('blas_opt', notfound_action=2)

    atlas_version = ([
        v[3:-3]
        for k, v in blas_opt.get('define_macros', []) if k == 'ATLAS_INFO'
    ] + [None])[0]
    if atlas_version:
        print(('ATLAS version: %s' % atlas_version))

    target_dir = ''

    depends = [
        __file__, 'fblas_l?.pyf.src', 'fblas.pyf.src', 'fblaswrap_dummy.f',
        'fblaswrap_veclib_c.c'
    ]
    # fblas:
    if needs_g77_abi_wrapper(blas_opt):
        sources = ['fblas.pyf.src', 'fblaswrap_veclib_c.c'],
    else:
        sources = ['fblas.pyf.src', 'fblaswrap_dummy.f']
    config.add_extension('fblas',
                         sources=sources,
                         depends=depends,
                         extra_info=blas_opt)

    # cblas:
    def get_cblas_source(ext, build_dir):
        name = ext.name.split('.')[-1]
        assert name == 'cblas', repr(name)
        if atlas_version is None:
            target = join(build_dir, target_dir, 'cblas.pyf')
            from distutils.dep_util import newer
            if newer(__file__, target):
                f = open(target, 'w')
                f.write(tmpl_empty_cblas_pyf)
                f.close()
        else:
            target = ext.depends[0]
            assert os.path.basename(target) == 'cblas.pyf.src'
        return target

    config.add_extension('cblas',
                         sources=[get_cblas_source],
                         depends=['cblas.pyf.src', 'cblas_l?.pyf.src'],
                         extra_info=blas_opt)

    config.add_data_dir('tests')

    return config
Example #2
0
def configuration(parent_package='',top_path=None):
    from numpy.distutils.misc_util import Configuration
    from numpy.distutils.system_info import get_info

    config = Configuration('blas',parent_package,top_path)

    blas_opt = get_info('blas_opt',notfound_action=2)

    atlas_version = ([v[3:-3] for k,v in blas_opt.get('define_macros',[])
                      if k == 'ATLAS_INFO']+[None])[0]
    if atlas_version:
        print(('ATLAS version: %s' % atlas_version))

    target_dir = ''

    depends = [__file__, 'fblas_l?.pyf.src', 'fblas.pyf.src',
               'fblaswrap_dummy.f', 'fblaswrap_veclib_c.c']
    # fblas:
    if needs_g77_abi_wrapper(blas_opt):
        sources = ['fblas.pyf.src', 'fblaswrap_veclib_c.c'],
    else:
        sources = ['fblas.pyf.src','fblaswrap_dummy.f']
    config.add_extension('fblas',
                         sources=sources,
                         depends=depends,
                         extra_info=blas_opt
                         )

    # cblas:
    def get_cblas_source(ext, build_dir):
        name = ext.name.split('.')[-1]
        assert name == 'cblas', repr(name)
        if atlas_version is None:
            target = join(build_dir,target_dir,'cblas.pyf')
            from distutils.dep_util import newer
            if newer(__file__,target):
                f = open(target,'w')
                f.write(tmpl_empty_cblas_pyf)
                f.close()
        else:
            target = ext.depends[0]
            assert os.path.basename(target) == 'cblas.pyf.src'
        return target

    config.add_extension('cblas',
                         sources=[get_cblas_source],
                         depends=['cblas.pyf.src','cblas_l?.pyf.src'],
                         extra_info=blas_opt
                         )

    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('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('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
Example #5
0
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', 'veclib_cabi_f.f'),
                    join('FWRAPPERS', 'veclib_cabi_c.c')]
    else:
        methods += [join('FWRAPPERS', '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
                         ['veclib_cabi_f.f', 'veclib_cabi_c.c', 'dummy.f']]
                         )

    config.add_data_dir('tests')

    return config
Example #6
0
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
Example #7
0
File: setup.py Project: pmli/scipy
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
Example #8
0
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.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
                         )

    # _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
Example #9
0
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:
    print('Splitting linalg.interpolative Fortran source files')
    fnames = split_fortran_files(join(os.path.split(
                                          os.path.abspath(__file__))[0],
                                      'src', 'id_dist', 'src'))
    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
Example #10
0
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
Example #11
0
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:
    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
Example #12
0
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