1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- """
- .. deprecated:: 1.20
- *This module is deprecated. Instead of importing functions from*
- ``numpy.dual``, *the functions should be imported directly from NumPy
- or SciPy*.
- Aliases for functions which may be accelerated by SciPy.
- SciPy_ can be built to use accelerated or otherwise improved libraries
- for FFTs, linear algebra, and special functions. This module allows
- developers to transparently support these accelerated functions when
- SciPy is available but still support users who have only installed
- NumPy.
- .. _SciPy : https://www.scipy.org
- """
- import warnings
- warnings.warn('The module numpy.dual is deprecated. Instead of using dual, '
- 'use the functions directly from numpy or scipy.',
- category=DeprecationWarning,
- stacklevel=2)
- # This module should be used for functions both in numpy and scipy if
- # you want to use the numpy version if available but the scipy version
- # otherwise.
- # Usage --- from numpy.dual import fft, inv
- __all__ = ['fft', 'ifft', 'fftn', 'ifftn', 'fft2', 'ifft2',
- 'norm', 'inv', 'svd', 'solve', 'det', 'eig', 'eigvals',
- 'eigh', 'eigvalsh', 'lstsq', 'pinv', 'cholesky', 'i0']
- import numpy.linalg as linpkg
- import numpy.fft as fftpkg
- from numpy.lib import i0
- import sys
- fft = fftpkg.fft
- ifft = fftpkg.ifft
- fftn = fftpkg.fftn
- ifftn = fftpkg.ifftn
- fft2 = fftpkg.fft2
- ifft2 = fftpkg.ifft2
- norm = linpkg.norm
- inv = linpkg.inv
- svd = linpkg.svd
- solve = linpkg.solve
- det = linpkg.det
- eig = linpkg.eig
- eigvals = linpkg.eigvals
- eigh = linpkg.eigh
- eigvalsh = linpkg.eigvalsh
- lstsq = linpkg.lstsq
- pinv = linpkg.pinv
- cholesky = linpkg.cholesky
- _restore_dict = {}
- def register_func(name, func):
- if name not in __all__:
- raise ValueError("{} not a dual function.".format(name))
- f = sys._getframe(0).f_globals
- _restore_dict[name] = f[name]
- f[name] = func
- def restore_func(name):
- if name not in __all__:
- raise ValueError("{} not a dual function.".format(name))
- try:
- val = _restore_dict[name]
- except KeyError:
- return
- else:
- sys._getframe(0).f_globals[name] = val
- def restore_all():
- for name in _restore_dict.keys():
- restore_func(name)
|