[Scipy-svn] r3960 - in trunk/scipy: . linalg linsolve sparse sparse/linalg sparse/linalg/dsolve sparse/linalg/dsolve/tests sparse/linalg/dsolve/umfpack/tests sparse/linalg/eigen sparse/linalg/eigen/arpack sparse/linalg/eigen/arpack/tests sparse/linalg/isolve sparse/linalg/isolve/tests sparse/linalg/tests sparse/tests splinalg
scipy-svn at scipy.org
scipy-svn at scipy.org
Wed Feb 27 01:15:04 EST 2008
Author: wnbell
Date: 2008-02-27 00:14:46 -0600 (Wed, 27 Feb 2008)
New Revision: 3960
Added:
trunk/scipy/sparse/linalg/
Removed:
trunk/scipy/splinalg/dsolve/
trunk/scipy/splinalg/eigen/
trunk/scipy/splinalg/info.py
trunk/scipy/splinalg/interface.py
trunk/scipy/splinalg/isolve/
trunk/scipy/splinalg/setup.py
trunk/scipy/splinalg/tests/
Modified:
trunk/scipy/linalg/iterative.py
trunk/scipy/linsolve/__init__.py
trunk/scipy/setup.py
trunk/scipy/sparse/csr.py
trunk/scipy/sparse/linalg/dsolve/info.py
trunk/scipy/sparse/linalg/dsolve/linsolve.py
trunk/scipy/sparse/linalg/dsolve/tests/test_linsolve.py
trunk/scipy/sparse/linalg/dsolve/umfpack/tests/test_umfpack.py
trunk/scipy/sparse/linalg/eigen/arpack/arpack.py
trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py
trunk/scipy/sparse/linalg/eigen/arpack/tests/test_speigs.py
trunk/scipy/sparse/linalg/eigen/info.py
trunk/scipy/sparse/linalg/info.py
trunk/scipy/sparse/linalg/interface.py
trunk/scipy/sparse/linalg/isolve/iterative.py
trunk/scipy/sparse/linalg/isolve/minres.py
trunk/scipy/sparse/linalg/isolve/tests/test_iterative.py
trunk/scipy/sparse/linalg/isolve/utils.py
trunk/scipy/sparse/linalg/setup.py
trunk/scipy/sparse/linalg/tests/test_interface.py
trunk/scipy/sparse/setup.py
trunk/scipy/sparse/tests/test_base.py
trunk/scipy/splinalg/__init__.py
Log:
moved scipy.splinalg to scipy.sparse.linalg
Modified: trunk/scipy/linalg/iterative.py
===================================================================
--- trunk/scipy/linalg/iterative.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/linalg/iterative.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -2,12 +2,12 @@
# Deprecated on January 26, 2008
-from scipy.splinalg import isolve
+from scipy.sparse.linalg import isolve
from numpy import deprecate
for name in __all__:
oldfn = getattr(isolve, name)
oldname='scipy.linalg.' + name
- newname='scipy.splinalg.' + name
+ newname='scipy.sparse.linalg.' + name
newfn = deprecate(oldfn, oldname=oldname, newname=newname)
exec(name + ' = newfn')
Modified: trunk/scipy/linsolve/__init__.py
===================================================================
--- trunk/scipy/linsolve/__init__.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/linsolve/__init__.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,6 +1,6 @@
from warnings import warn
-warn('scipy.linsolve has moved to scipy.splinalg.dsolve', DeprecationWarning)
+warn('scipy.linsolve has moved to scipy.sparse.linalg.dsolve', DeprecationWarning)
-from scipy.splinalg.dsolve import *
+from scipy.sparse.linalg.dsolve import *
Modified: trunk/scipy/setup.py
===================================================================
--- trunk/scipy/setup.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/setup.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -18,7 +18,6 @@
config.add_subpackage('signal')
config.add_subpackage('sparse')
config.add_subpackage('special')
- config.add_subpackage('splinalg')
config.add_subpackage('stats')
config.add_subpackage('ndimage')
config.add_subpackage('stsci')
Modified: trunk/scipy/sparse/csr.py
===================================================================
--- trunk/scipy/sparse/csr.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/csr.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -221,7 +221,6 @@
if isinstance(key, tuple):
row = key[0]
col = key[1]
-
if isintlike(row):
#[1,??]
@@ -266,8 +265,6 @@
else:
raise NotImplementedError('unsupported indexing')
-
-
elif isintlike(key) or isinstance(key,slice):
return self[key,:] #[i] or [1:2]
else:
Copied: trunk/scipy/sparse/linalg (from rev 3959, trunk/scipy/splinalg)
Modified: trunk/scipy/sparse/linalg/dsolve/info.py
===================================================================
--- trunk/scipy/splinalg/dsolve/info.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/dsolve/info.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -13,7 +13,7 @@
>>> from scipy.sparse import csc_matrix, spdiags
>>> from numpy import array
->>> from scipy.splinalg import spsolve, use_solver
+>>> from scipy.sparse.linalg import spsolve, use_solver
>>>
>>> print "Inverting a sparse linear system:"
>>> print "The sparse matrix (constructed from diagonals):"
Modified: trunk/scipy/sparse/linalg/dsolve/linsolve.py
===================================================================
--- trunk/scipy/splinalg/dsolve/linsolve.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/dsolve/linsolve.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -16,7 +16,7 @@
isUmfpack = hasattr( umfpack, 'UMFPACK_OK' )
if isUmfpack and noScikit:
- warn( 'scipy.splinalg.dsolve.umfpack will be removed,'
+ warn( 'scipy.sparse.linalg.dsolve.umfpack will be removed,'
' install scikits.umfpack instead', DeprecationWarning )
useUmfpack = True
Modified: trunk/scipy/sparse/linalg/dsolve/tests/test_linsolve.py
===================================================================
--- trunk/scipy/splinalg/dsolve/tests/test_linsolve.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/dsolve/tests/test_linsolve.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -5,7 +5,7 @@
from scipy.linalg import norm, inv
from scipy.sparse import spdiags, csc_matrix, SparseEfficiencyWarning
-from scipy.splinalg.dsolve import spsolve, use_solver
+from scipy.sparse.linalg.dsolve import spsolve, use_solver
warnings.simplefilter('ignore',SparseEfficiencyWarning)
Modified: trunk/scipy/sparse/linalg/dsolve/umfpack/tests/test_umfpack.py
===================================================================
--- trunk/scipy/splinalg/dsolve/umfpack/tests/test_umfpack.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/dsolve/umfpack/tests/test_umfpack.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -14,13 +14,13 @@
from scipy import rand, matrix, diag, eye
from scipy.sparse import csc_matrix, dok_matrix, spdiags, SparseEfficiencyWarning
-from scipy.splinalg import linsolve
+from scipy.sparse.linalg import linsolve
warnings.simplefilter('ignore',SparseEfficiencyWarning)
import numpy as nm
try:
- import scipy.splinalg.dsolve.umfpack as um
+ import scipy.sparse.linalg.dsolve.umfpack as um
except (ImportError, AttributeError):
_have_umfpack = False
else:
Modified: trunk/scipy/sparse/linalg/eigen/arpack/arpack.py
===================================================================
--- trunk/scipy/splinalg/eigen/arpack/arpack.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/eigen/arpack/arpack.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -45,7 +45,7 @@
import _arpack
import numpy as np
-from scipy.splinalg.interface import aslinearoperator
+from scipy.sparse.linalg.interface import aslinearoperator
_type_conv = {'f':'s', 'd':'d', 'F':'c', 'D':'z'}
_ndigits = {'f':5, 'd':12, 'F':5, 'D':12}
Modified: trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py
===================================================================
--- trunk/scipy/splinalg/eigen/arpack/tests/test_arpack.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -9,7 +9,7 @@
from numpy import array,real,imag,finfo,concatenate,\
column_stack,argsort,dot,round,conj,sort,random
-from scipy.splinalg.eigen.arpack import eigen_symmetric,eigen
+from scipy.sparse.linalg.eigen.arpack import eigen_symmetric,eigen
def assert_almost_equal_cc(actual,desired,decimal=7,err_msg='',verbose=True):
Modified: trunk/scipy/sparse/linalg/eigen/arpack/tests/test_speigs.py
===================================================================
--- trunk/scipy/splinalg/eigen/arpack/tests/test_speigs.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/eigen/arpack/tests/test_speigs.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -2,8 +2,8 @@
from scipy.testing import *
-from scipy.splinalg.interface import aslinearoperator
-from scipy.splinalg.eigen.arpack.speigs import *
+from scipy.sparse.linalg.interface import aslinearoperator
+from scipy.sparse.linalg.eigen.arpack.speigs import *
import numpy as N
Modified: trunk/scipy/sparse/linalg/eigen/info.py
===================================================================
--- trunk/scipy/splinalg/eigen/info.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/eigen/info.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -2,7 +2,7 @@
Sparse Eigenvalue Solvers
=========================
-There are submodules of splinalg:
+The submodules of sparse.linalg:
1. arpack: spare eigenvalue solver using iterative methods
Modified: trunk/scipy/sparse/linalg/info.py
===================================================================
--- trunk/scipy/splinalg/info.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/info.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -2,7 +2,7 @@
Sparse Linear Algebra
=====================
-There are submodules of splinalg:
+The submodules of sparse.linalg:
1. eigen: sparse eigenvalue problem solvers
2. isolve: iterative methods for solving linear systems
3. dsolve: direct factorization methods for solving linear systems
Modified: trunk/scipy/sparse/linalg/interface.py
===================================================================
--- trunk/scipy/splinalg/interface.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/interface.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -31,7 +31,7 @@
Example:
- >>> from scipy.splinalg import LinearOperator
+ >>> from scipy.sparse.linalg import LinearOperator
>>> from scipy import *
>>> def mv(x):
... return array([ 2*x[0], 3*x[1]])
Modified: trunk/scipy/sparse/linalg/isolve/iterative.py
===================================================================
--- trunk/scipy/splinalg/isolve/iterative.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/isolve/iterative.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -15,7 +15,7 @@
import numpy as sb
import copy
-from scipy.splinalg.interface import LinearOperator
+from scipy.sparse.linalg.interface import LinearOperator
from utils import make_system
_type_conv = {'f':'s', 'd':'d', 'F':'c', 'D':'z'}
Modified: trunk/scipy/sparse/linalg/isolve/minres.py
===================================================================
--- trunk/scipy/splinalg/isolve/minres.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/isolve/minres.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -280,7 +280,7 @@
from scipy import ones, arange
from scipy.linalg import norm
from scipy.sparse import spdiags
- from scipy.splinalg import cg
+ from scipy.sparse.linalg import cg
#from scipy.sandbox.multigrid import *
n = 10
Modified: trunk/scipy/sparse/linalg/isolve/tests/test_iterative.py
===================================================================
--- trunk/scipy/splinalg/isolve/tests/test_iterative.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/isolve/tests/test_iterative.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-""" Test functions for the splinalg.isolve module
+""" Test functions for the sparse.linalg.isolve module
"""
from scipy.testing import *
@@ -9,7 +9,7 @@
from scipy.linalg import norm
from scipy.sparse import spdiags
-from scipy.splinalg.isolve import cg, cgs, bicg, bicgstab, gmres, qmr, minres
+from scipy.sparse.linalg.isolve import cg, cgs, bicg, bicgstab, gmres, qmr, minres
#def callback(x):
# global A, b
@@ -116,8 +116,8 @@
def test_leftright_precond(self):
"""Check that QMR works with left and right preconditioners"""
- from scipy.splinalg.dsolve import splu
- from scipy.splinalg.interface import LinearOperator
+ from scipy.sparse.linalg.dsolve import splu
+ from scipy.sparse.linalg.interface import LinearOperator
n = 100
Modified: trunk/scipy/sparse/linalg/isolve/utils.py
===================================================================
--- trunk/scipy/splinalg/isolve/utils.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/isolve/utils.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -2,7 +2,7 @@
from numpy import asanyarray, asarray, asmatrix, array, matrix, zeros
-from scipy.splinalg.interface import aslinearoperator, LinearOperator
+from scipy.sparse.linalg.interface import aslinearoperator, LinearOperator
_coerce_rules = {('f','f'):'f', ('f','d'):'d', ('f','F'):'F',
('f','D'):'D', ('d','f'):'d', ('d','d'):'d',
Modified: trunk/scipy/sparse/linalg/setup.py
===================================================================
--- trunk/scipy/splinalg/setup.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/setup.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -3,7 +3,7 @@
def configuration(parent_package='',top_path=None):
from numpy.distutils.misc_util import Configuration
- config = Configuration('splinalg',parent_package,top_path)
+ config = Configuration('linalg',parent_package,top_path)
config.add_subpackage(('isolve'))
config.add_subpackage(('dsolve'))
Modified: trunk/scipy/sparse/linalg/tests/test_interface.py
===================================================================
--- trunk/scipy/splinalg/tests/test_interface.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/linalg/tests/test_interface.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,5 +1,5 @@
#!/usr/bin/env python
-""" Test functions for the splinalg.interface module
+""" Test functions for the sparse.linalg.interface module
"""
from scipy.testing import *
@@ -8,7 +8,7 @@
from numpy import array, matrix, ones, ravel
from scipy.sparse import csr_matrix
-from scipy.splinalg.interface import *
+from scipy.sparse.linalg.interface import *
class TestInterface(TestCase):
Modified: trunk/scipy/sparse/setup.py
===================================================================
--- trunk/scipy/sparse/setup.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/setup.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -10,6 +10,7 @@
config = Configuration('sparse',parent_package,top_path)
config.add_data_dir('tests')
+ config.add_subpackage('linalg')
# Adding a Python file as a "source" file for an extension is something of
# a hack, but it works to put it in the right place.
Modified: trunk/scipy/sparse/tests/test_base.py
===================================================================
--- trunk/scipy/sparse/tests/test_base.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/sparse/tests/test_base.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -27,7 +27,7 @@
coo_matrix, lil_matrix, dia_matrix, bsr_matrix, \
eye, SparseEfficiencyWarning
from scipy.sparse.sputils import supported_dtypes
-from scipy.splinalg import splu
+from scipy.sparse.linalg import splu
warnings.simplefilter('ignore',SparseEfficiencyWarning)
Modified: trunk/scipy/splinalg/__init__.py
===================================================================
--- trunk/scipy/splinalg/__init__.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/splinalg/__init__.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,14 +1,6 @@
-"Sparse Linear Algebra routines"
+from warnings import warn
-from info import __doc__
+warn('scipy.splinalg has moved to scipy.sparse.linalg', DeprecationWarning)
-from isolve import *
-from dsolve import *
-from interface import *
-from eigen import *
+from scipy.sparse.linalg import *
-
-__all__ = filter(lambda s:not s.startswith('_'),dir())
-from scipy.testing.pkgtester import Tester
-test = Tester().test
-bench = Tester().bench
Deleted: trunk/scipy/splinalg/info.py
===================================================================
--- trunk/scipy/splinalg/info.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/splinalg/info.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,19 +0,0 @@
-"""
-Sparse Linear Algebra
-=====================
-
-There are submodules of splinalg:
- 1. eigen: sparse eigenvalue problem solvers
- 2. isolve: iterative methods for solving linear systems
- 3. dsolve: direct factorization methods for solving linear systems
-
-Examples
-========
-
-
-
-"""
-
-#TODO show examples
-
-postpone_import = 1
Deleted: trunk/scipy/splinalg/interface.py
===================================================================
--- trunk/scipy/splinalg/interface.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/splinalg/interface.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,128 +0,0 @@
-import numpy
-from numpy import matrix, ndarray, asarray, dot, atleast_2d
-from scipy.sparse.sputils import isshape
-from scipy.sparse import isspmatrix
-
-__all__ = ['LinearOperator', 'aslinearoperator']
-
-class LinearOperator:
- def __init__( self, shape, matvec, rmatvec=None, dtype=None ):
- """Common interface for performing matrix vector products
-
- Many iterative methods (e.g. cg, gmres) do not need to know the
- individual entries of a matrix to solve a linear system A*x=b.
- Such solvers only require the computation of matrix vector
- products, A*v where v is a dense vector. This class serves as
- an abstract interface between iterative solvers and matrix-like
- objects.
-
- Required Parameters:
- shape : tuple of matrix dimensions (M,N)
- matvec(x) : function that returns A * x
-
- Optional Parameters:
- rmatvec(x) : function that returns A^H * x where A^H represents
- the Hermitian (conjugate) transpose of A
- dtype : data type of the matrix
-
-
- See Also:
- aslinearoperator() : Construct LinearOperators for SciPy classes
-
- Example:
-
- >>> from scipy.splinalg import LinearOperator
- >>> from scipy import *
- >>> def mv(x):
- ... return array([ 2*x[0], 3*x[1]])
- ...
- >>> A = LinearOperator( (2,2), matvec=mv )
- >>> A
- <2x2 LinearOperator with unspecified dtype>
- >>> A.matvec( ones(2) )
- array([ 2., 3.])
-
- """
-
- shape = tuple(shape)
-
- if not isshape(shape):
- raise ValueError('invalid shape')
-
- self.shape = shape
- self.matvec = matvec
-
- if rmatvec is None:
- def rmatvec(x):
- raise NotImplementedError('rmatvec is not defined')
- self.rmatvec = rmatvec
- else:
- self.rmatvec = rmatvec
-
- if dtype is not None:
- self.dtype = numpy.dtype(dtype)
-
- def __repr__(self):
- M,N = self.shape
- if hasattr(self,'dtype'):
- dt = 'dtype=' + str(self.dtype)
- else:
- dt = 'unspecified dtype'
-
- return '<%dx%d LinearOperator with %s>' % (M,N,dt)
-
-def aslinearoperator(A):
- """Return A as a LinearOperator
-
- 'A' may be any of the following types
- - ndarray
- - matrix
- - sparse matrix (e.g. csr_matrix, lil_matrix, etc.)
- - LinearOperator
- - An object with .shape and .matvec attributes
-
- See the LinearOperator documentation for additonal information.
-
- Examples
- ========
-
- >>> from scipy import matrix
- >>> M = matrix( [[1,2,3],[4,5,6]], dtype='int32' )
- >>> aslinearoperator( M )
- <2x3 LinearOperator with dtype=int32>
-
- """
-
- if isinstance(A, LinearOperator):
- return A
-
- elif isinstance(A, ndarray) or isinstance(A, matrix):
- if len(A.shape) > 2:
- raise ValueError('array must have rank <= 2')
-
- A = atleast_2d(asarray(A))
-
- def matvec(x):
- return dot(A,x)
- def rmatvec(x):
- return dot(A.conj().transpose(),x)
- return LinearOperator( A.shape, matvec, rmatvec=rmatvec, dtype=A.dtype )
-
- elif isspmatrix(A):
- return LinearOperator( A.shape, A.matvec, rmatvec=A.rmatvec, dtype=A.dtype )
-
- else:
- if hasattr(A,'shape') and hasattr(A,'matvec'):
- rmatvec = None
- dtype = None
-
- if hasattr(A,'rmatvec'):
- rmatvec = A.rmatvec
- if hasattr(A,'dtype'):
- dtype = A.dtype
- return LinearOperator(A.shape, A.matvec, rmatvec=rmatvec, dtype=dtype)
-
- else:
- raise TypeError('type not understood')
-
-
Deleted: trunk/scipy/splinalg/setup.py
===================================================================
--- trunk/scipy/splinalg/setup.py 2008-02-27 05:35:35 UTC (rev 3959)
+++ trunk/scipy/splinalg/setup.py 2008-02-27 06:14:46 UTC (rev 3960)
@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-
-def configuration(parent_package='',top_path=None):
- from numpy.distutils.misc_util import Configuration
-
- config = Configuration('splinalg',parent_package,top_path)
-
- config.add_subpackage(('isolve'))
- config.add_subpackage(('dsolve'))
- config.add_subpackage(('eigen'))
-
- config.add_data_dir('tests')
-
- return config
-
-if __name__ == '__main__':
- from numpy.distutils.core import setup
- setup(**configuration(top_path='').todict())
More information about the Scipy-svn
mailing list