Coverage for scipy\linalg\flinalg.py: 0%

# Coverage for scipy\linalg\flinalg.py : 0%

## 30 statements 0 run 30 missing 0 excluded

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | # # Author: Pearu Peterson, March 2002 # from __future__ import division, print_function, absolute_import __all__ = ['get_flinalg_funcs'] # The following ensures that possibly missing flavor (C or Fortran) is # replaced with the available one. If none is available, exception # is raised at the first attempt to use the resources. try: from . import _flinalg except ImportError: _flinalg = None # from numpy.distutils.misc_util import PostponedException # _flinalg = PostponedException() # print _flinalg.__doc__ has_column_major_storage = lambda a:0 def has_column_major_storage(arr): return arr.flags['FORTRAN'] _type_conv = {'f':'s', 'd':'d', 'F':'c', 'D':'z'} # 'd' will be default for 'i',.. def get_flinalg_funcs(names,arrays=(),debug=0): """Return optimal available _flinalg function objects with names. arrays are used to determine optimal prefix.""" ordering = [] for i in range(len(arrays)): t = arrays[i].dtype.char if t not in _type_conv: t = 'd' ordering.append((t,i)) if ordering: ordering.sort() required_prefix = _type_conv[ordering[0][0]] else: required_prefix = 'd' # Some routines may require special treatment. # Handle them here before the default lookup. # Default lookup: if ordering and has_column_major_storage(arrays[ordering[0][1]]): suffix1,suffix2 = '_c','_r' else: suffix1,suffix2 = '_r','_c' funcs = [] for name in names: func_name = required_prefix + name func = getattr(_flinalg,func_name+suffix1, getattr(_flinalg,func_name+suffix2,None)) funcs.append(func) return tuple(funcs)