[Scipy-svn] r3814 - branches/testing_cleanup/scipy/sparse
scipy-svn at scipy.org
scipy-svn at scipy.org
Fri Jan 11 20:51:06 EST 2008
Author: matthew.brett at gmail.com
Date: 2008-01-11 19:50:57 -0600 (Fri, 11 Jan 2008)
New Revision: 3814
Modified:
branches/testing_cleanup/scipy/sparse/__init__.py
branches/testing_cleanup/scipy/sparse/base.py
branches/testing_cleanup/scipy/sparse/compressed.py
branches/testing_cleanup/scipy/sparse/construct.py
branches/testing_cleanup/scipy/sparse/coo.py
branches/testing_cleanup/scipy/sparse/csc.py
branches/testing_cleanup/scipy/sparse/csr.py
branches/testing_cleanup/scipy/sparse/dia.py
branches/testing_cleanup/scipy/sparse/info.py
branches/testing_cleanup/scipy/sparse/lil.py
branches/testing_cleanup/scipy/sparse/spfuncs.py
branches/testing_cleanup/scipy/sparse/sputils.py
Log:
Found changes to sparse documentation from missed merge
Modified: branches/testing_cleanup/scipy/sparse/__init__.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/__init__.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/__init__.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -15,5 +15,5 @@
from spfuncs import *
__all__ = filter(lambda s:not s.startswith('_'),dir())
-from scipy.testing.pkgtester import Tester
-test = Tester().test
+from numpy.testing import NumpyTest
+test = NumpyTest().test
Modified: branches/testing_cleanup/scipy/sparse/base.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/base.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/base.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -180,13 +180,15 @@
def asformat(self, format):
"""Return this matrix in a given sparse format
- *Parameters*:
- format : desired sparse matrix format
- If format is None then no conversion is performed
- Other possible values include:
- "csr" for csr_matrix format
- "csc" for csc_matrix format
- "dok" for dok_matrix format and so on
+ Parameters
+ ==========
+ - format : desired sparse matrix format
+ - If format is None then no conversion is performed
+ - Other possible values include:
+ - "csr" for csr_matrix format
+ - "csc" for csc_matrix format
+ - "dok" for dok_matrix format and so on
+
"""
if format is None or format == self.format:
@@ -375,11 +377,12 @@
def rmatvec(self, other, conjugate=True):
"""Multiplies the vector 'other' by the sparse matrix, returning a
dense vector as a result.
-
+
If 'conjugate' is True:
- returns A.transpose().conj() * other
+ - returns A.transpose().conj() * other
Otherwise:
- returns A.transpose() * other.
+ - returns A.transpose() * other.
+
"""
return self.tocsr().rmatvec(other, conjugate=conjugate)
Modified: branches/testing_cleanup/scipy/sparse/compressed.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/compressed.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/compressed.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -109,11 +109,13 @@
def check_format(self, full_check=True):
"""check whether the matrix format is valid
- *Parameters*:
- full_check:
- True - rigorous check, O(N) operations : default
- False - basic check, O(1) operations
+ Parameters
+ ==========
+ - full_check : {bool}
+ - True - rigorous check, O(N) operations : default
+ - False - basic check, O(1) operations
+
"""
#use _swap to determine proper bounds
major_name,minor_name = self._swap(('row','column'))
Modified: branches/testing_cleanup/scipy/sparse/construct.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/construct.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/construct.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -25,19 +25,24 @@
B = spdiags(diags, offsets, m, n)
- *Parameters*:
- data : matrix whose rows contain the diagonal values
- diags : diagonals to set
- k = 0 - the main diagonal
- k > 0 - the k-th upper diagonal
- k < 0 - the k-th lower diagonal
- m, n : dimensions of the result
- format : format of the result (e.g. "csr")
- By default (format=None) an appropriate sparse matrix
- format is returned. This choice is subject to change.
+ Parameters
+ ==========
+ - data : matrix whose rows contain the diagonal values
+ - diags : diagonals to set
+ - k = 0 - the main diagonal
+ - k > 0 - the k-th upper diagonal
+ - k < 0 - the k-th lower diagonal
+ - m, n : dimensions of the result
+ - format : format of the result (e.g. "csr")
+ - By default (format=None) an appropriate sparse matrix
+ format is returned. This choice is subject to change.
- *Example*
- -------
+ See Also
+ ========
+ The dia_matrix class which implements the DIAgonal format.
+
+ Example
+ =======
>>> data = array([[1,2,3,4]]).repeat(3,axis=0)
>>> diags = array([0,-1,2])
>>> spdiags(data,diags,4,4).todense()
@@ -76,16 +81,19 @@
def spkron(A, B, format=None):
"""kronecker product of sparse matrices A and B
- *Parameters*:
- A,B : sparse matrices
- E.g. csr_matrix, csc_matrix, coo_matrix, etc.
+ Parameters
+ ==========
+ A,B : dense or sparse matrices
+ format : format of the result (e.g. "csr")
+ - By default (format=None) an appropriate sparse matrix
+ format is returned. This choice is subject to change.
- *Returns*:
- coo_matrix
- kronecker product in COOrdinate format
+ Returns
+ =======
+ kronecker product in a sparse matrix format
- *Example*:
- -------
+ Examples
+ ========
>>> A = csr_matrix(array([[0,2],[5,0]]))
>>> B = csr_matrix(array([[1,2],[3,4]]))
@@ -95,8 +103,14 @@
[ 5., 10., 0., 0.],
[ 15., 20., 0., 0.]])
+ >>> spkron(A,[[1,2],[3,4]]).todense()
+ matrix([[ 0., 0., 2., 4.],
+ [ 0., 0., 6., 8.],
+ [ 5., 10., 0., 0.],
+ [ 15., 20., 0., 0.]])
+
"""
- #TODO optimize for small dense B and CSR A
+ #TODO optimize for small dense B and CSR A -> BSR
B = coo_matrix(B)
@@ -151,14 +165,15 @@
"""Generate a lil_matrix of dimensions (r,c) with the k-th
diagonal set to 1.
- :Parameters:
- r,c : int
- Row and column-dimensions of the output.
- k : int
- Diagonal offset. In the output matrix,
- out[m,m+k] == 1 for all m.
- dtype : dtype
- Data-type of the output array.
+ Parameters
+ ==========
+ - r,c : int
+ - row and column-dimensions of the output.
+ - k : int
+ - diagonal offset. In the output matrix,
+ - out[m,m+k] == 1 for all m.
+ - dtype : dtype
+ - data-type of the output array.
"""
warn("lil_eye is deprecated. use speye(... , format='lil') instead", \
@@ -171,19 +186,20 @@
def lil_diags(diags,offsets,(m,n),dtype='d'):
"""Generate a lil_matrix with the given diagonals.
- :Parameters:
- diags : list of list of values e.g. [[1,2,3],[4,5]]
- Values to be placed on each indicated diagonal.
- offsets : list of ints
- Diagonal offsets. This indicates the diagonal on which
- the given values should be placed.
- (r,c) : tuple of ints
- Row and column dimensions of the output.
- dtype : dtype
- Output data-type.
+ Parameters
+ ==========
+ - diags : list of list of values e.g. [[1,2,3],[4,5]]
+ - values to be placed on each indicated diagonal.
+ - offsets : list of ints
+ - diagonal offsets. This indicates the diagonal on which
+ the given values should be placed.
+ - (r,c) : tuple of ints
+ - row and column dimensions of the output.
+ - dtype : dtype
+ - output data-type.
- Example:
- -------
+ Example
+ =======
>>> lil_diags([[1,2,3],[4,5],[6]],[0,1,2],(3,3)).todense()
matrix([[ 1., 4., 6.],
Modified: branches/testing_cleanup/scipy/sparse/coo.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/coo.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/coo.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -1,4 +1,4 @@
-""" A sparse matrix in COOrdinate format """
+""" A sparse matrix in COOrdinate or 'triplet' format"""
__all__ = ['coo_matrix', 'isspmatrix_coo']
@@ -21,34 +21,52 @@
This can be instantiated in several ways:
- coo_matrix(D)
- with a dense matrix D
+ - with a dense matrix D
- coo_matrix(S)
- with another sparse matrix S (equivalent to S.tocoo())
+ - with another sparse matrix S (equivalent to S.tocoo())
- coo_matrix((M, N), [dtype])
- to construct an empty matrix with shape (M, N)
- dtype is optional, defaulting to dtype='d'.
+ - to construct an empty matrix with shape (M, N)
+ dtype is optional, defaulting to dtype='d'.
- coo_matrix((data, ij), [shape=(M, N)])
- When shape is not specified, it is inferred from the index arrays:
- ij[0][:] and ij[1][:]
+ - When shape is not specified, it is inferred from the index arrays:
+ - ij[0][:] and ij[1][:]
- The arguments 'data' and 'ij' represent three arrays:
- 1. data[:] the entries of the matrix, in any order
- 2. ij[0][:] the row indices of the matrix entries
- 3. ij[1][:] the column indices of the matrix entries
-
- So the following holds:
- A[ij[0][k], ij[1][k] = data[k]
+ - The arguments 'data' and 'ij' represent three arrays:
+ 1. data[:] the entries of the matrix, in any order
+ 2. ij[0][:] the row indices of the matrix entries
+ 3. ij[1][:] the column indices of the matrix entries
+ So the following holds:
+ - A[ij[0][k], ij[1][k] = data[k]
- Note:
- When converting to CSR or CSC format, duplicate (i,j) entries
- will be summed together. This facilitates efficient construction
- of finite element matrices and the like.
+ Notes
+ =====
+ Advantages of the COO format
+ ----------------------------
+ - facilitates fast conversion among sparse formats
+ - permits duplicate entries (see example)
+ - faster conversion to CSR/CSC than LIL
+
+ Disadvantages of the COO format
+ -------------------------------
+ - does not currently support (forces COO->CSR conversion)
+ - arithmetic operations
+ - slicing
+ - matrix vector products
+
+ Usage
+ -----
+ - COO is a fast format for constructing sparse matrices
+ - once a matrix has been constructed, convert to CSR or
+ CSC format for fast arithmetic and matrix vector operations
+ - By default when converting to CSR or CSC format, duplicate (i,j)
+ entries will be summed together. This facilitates efficient
+ construction of finite element matrices and the like. (see example)
- *Examples*
- ----------
+ Examples
+ ========
>>> from scipy.sparse import *
>>> from scipy import *
Modified: branches/testing_cleanup/scipy/sparse/csc.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/csc.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/csc.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -1,5 +1,4 @@
-"""Compressed Sparse Column matrix format
-"""
+"""Compressed Sparse Column matrix format"""
__all__ = ['csc_matrix', 'isspmatrix_csc']
@@ -23,32 +22,45 @@
This can be instantiated in several ways:
- csc_matrix(D)
- with a dense matrix or rank-2 ndarray D
+ - with a dense matrix or rank-2 ndarray D
- csc_matrix(S)
- with another sparse matrix S (equivalent to S.tocsc())
+ - with another sparse matrix S (equivalent to S.tocsc())
- csc_matrix((M, N), [dtype])
- to construct an empty matrix with shape (M, N)
- dtype is optional, defaulting to dtype='d'.
+ - to construct an empty matrix with shape (M, N)
+ - dtype is optional, defaulting to dtype='d'.
- csc_matrix((data, ij), [shape=(M, N)])
- where data, ij satisfy:
- a[ij[0, k], ij[1, k]] = data[k]
+ - where data, ij satisfy:
+ - a[ij[0, k], ij[1, k]] = data[k]
- csc_matrix((data, indices, indptr), [shape=(M, N)])
- is the native CSC representation where:
- the row indices for column i are stored in
- indices[ indptr[i]: indices[i+1] ]
- and their corresponding values are stored in
- data[ indptr[i]: indptr[i+1] ]
- If the shape parameter is not supplied, the matrix dimensions
- are inferred from the index arrays.
+ - is the standard CSC representation where
+ the row indices for column i are stored in
+ - indices[ indptr[i]: indices[i+1] ]
+ and their corresponding values are stored in
+ - data[ indptr[i]: indptr[i+1] ]
+ - If the shape parameter is not supplied, the matrix dimensions
+ are inferred from the index arrays.
+ Notes
+ =====
+ Advantages of the CSC format
+ ----------------------------
+ - efficient arithmetic operations CSC + CSC, CSC * CSC, etc.
+ - efficient column slicing
+ - fast matrix vector products (CSR,BSR may be faster)
+
+ Disadvantages of the CSC format
+ -------------------------------
+ - slow row slicing operations (prefer CSR)
+ - changes to the sparsity structure are expensive (prefer LIL, DOK)
- *Examples*
- ----------
+ Examples
+ ========
+
>>> from scipy.sparse import *
>>> from scipy import *
>>> csc_matrix( (3,4), dtype='i' ).todense()
@@ -132,9 +144,9 @@
def get_submatrix( self, slice0, slice1 ):
"""Return a submatrix of this matrix (new matrix is created).
Contigous range of rows and columns can be selected using:
- 1. a slice object
- 2. a tuple (from, to)
- 3. a scalar for single row/column selection."""
+ 1. a slice object
+ 2. a tuple (from, to)
+ 3. a scalar for single row/column selection."""
aux = _cs_matrix._get_submatrix( self, self.shape[1], self.shape[0],
slice1, slice0 )
nr, nc = aux[3:]
Modified: branches/testing_cleanup/scipy/sparse/csr.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/csr.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/csr.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -1,5 +1,4 @@
-"""Compressed Sparse Row matrix format
-"""
+"""Compressed Sparse Row matrix format"""
__all__ = ['csr_matrix', 'isspmatrix_csr']
@@ -23,32 +22,47 @@
This can be instantiated in several ways:
- csr_matrix(D)
- with a dense matrix or rank-2 ndarray D
+ - with a dense matrix or rank-2 ndarray D
- csr_matrix(S)
- with another sparse matrix S (equivalent to S.tocsr())
+ - with another sparse matrix S (equivalent to S.tocsr())
- csr_matrix((M, N), [dtype])
- to construct an empty matrix with shape (M, N)
- dtype is optional, defaulting to dtype='d'.
+ - to construct an empty matrix with shape (M, N)
+ - dtype is optional, defaulting to dtype='d'.
- csr_matrix((data, ij), [shape=(M, N)])
- where data, ij satisfy:
- a[ij[0, k], ij[1, k]] = data[k]
+ - where data, ij satisfy:
+ - a[ij[0, k], ij[1, k]] = data[k]
- csr_matrix((data, indices, indptr), [shape=(M, N)])
- is the native CSR representation where:
- the column indices for row i are stored in
- indices[ indptr[i]: indices[i+1] ]
- and their corresponding values are stored in
- data[ indptr[i]: indptr[i+1] ]
- If the shape parameter is not supplied, the matrix dimensions
- are inferred from the index arrays.
+ - is the standard CSR representation where
+ the column indices for row i are stored in
+ - indices[ indptr[i]: indices[i+1] ]
+ and their corresponding values are stored in
+ - data[ indptr[i]: indptr[i+1] ]
+ - If the shape parameter is not supplied, the matrix dimensions
+ are inferred from the index arrays.
- *Examples*
- ----------
+ Notes
+ =====
+ Advantages of the CSR format
+ ----------------------------
+ - efficient arithmetic operations CSR + CSR, CSR * CSR, etc.
+ - efficient row slicing
+ - fast matrix vector products
+
+ Disadvantages of the CSR format
+ -------------------------------
+ - slow column slicing operations (prefer CSC)
+ - changes to the sparsity structure are expensive (prefer LIL, DOK)
+
+
+ Examples
+ ========
+
>>> from scipy.sparse import *
>>> from scipy import *
>>> csr_matrix( (3,4), dtype='i' ).todense()
@@ -146,10 +160,12 @@
def get_submatrix( self, slice0, slice1 ):
"""Return a submatrix of this matrix (new matrix is created).
Contigous range of rows and columns can be selected using:
- 1. a slice object
- 2. a tuple (from, to)
- 3. a scalar for single row/column selection."""
+ 1. a slice object
+ 2. a tuple (from, to)
+ 3. a scalar for single row/column selection.
+ """
+
aux = _cs_matrix._get_submatrix( self, self.shape[0], self.shape[1],
slice0, slice1 )
nr, nc = aux[3:]
Modified: branches/testing_cleanup/scipy/sparse/dia.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/dia.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/dia.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -15,23 +15,24 @@
This can be instantiated in several ways:
- dia_matrix(D)
- with a dense matrix
+ - with a dense matrix
- dia_matrix(S)
- with another sparse matrix S (equivalent to S.todia())
+ - with another sparse matrix S (equivalent to S.todia())
- dia_matrix((M, N), [dtype])
- to construct an empty matrix with shape (M, N)
- dtype is optional, defaulting to dtype='d'.
+ - to construct an empty matrix with shape (M, N)
+ dtype is optional, defaulting to dtype='d'.
- dia_matrix((data, diags), shape=(M, N))
- where the data[k,:] stores the diagonal entries for
- diagonal diag[k] (See example below)
+ - where the data[k,:] stores the diagonal entries for
+ diagonal diag[k] (See example below)
- *Examples*
- ----------
+ Examples
+ ========
+
>>> from scipy.sparse import *
>>> from scipy import *
>>> dia_matrix( (3,4), dtype='i').todense()
Modified: branches/testing_cleanup/scipy/sparse/info.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/info.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/info.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -7,12 +7,14 @@
Original code by Travis Oliphant.
Modified and extended by Ed Schofield, Robert Cimrman, and Nathan Bell.
-There are five available sparse matrix types:
- (1) csc_matrix: Compressed Sparse Column format
- (2) csr_matrix: Compressed Sparse Row format
- (3) lil_matrix: List of Lists format
- (4) dok_matrix: Dictionary of Keys format
- (5) coo_matrix: COOrdinate format (aka IJV, triplet format)
+There are seven available sparse matrix types:
+ 1. csc_matrix: Compressed Sparse Column format
+ 2. csr_matrix: Compressed Sparse Row format
+ 3. bsr_matrix: Block Sparse Row format
+ 4. lil_matrix: List of Lists format
+ 5. dok_matrix: Dictionary of Keys format
+ 6. coo_matrix: COOrdinate format (aka IJV, triplet format)
+ 7. dig_matrix: DIAgonal format
To construct a matrix efficiently, use either lil_matrix (recommended) or
dok_matrix. The lil_matrix class supports basic slicing and fancy
@@ -27,8 +29,10 @@
All conversions among the CSR, CSC, and COO formats are efficient,
linear-time operations.
-Example:
+Example
+=======
Construct a 1000x1000 lil_matrix and add some values to it:
+
>>> from scipy import sparse, linsolve
>>> from numpy import linalg
>>> from numpy.random import rand
@@ -38,22 +42,28 @@
>>> A.setdiag(rand(1000))
Now convert it to CSR format and solve (A A^T) x = b for x:
+
>>> A = A.tocsr()
>>> b = rand(1000)
>>> x = linsolve.spsolve(A * A.T, b)
Convert it to a dense matrix and solve, and check that the result
is the same:
+
>>> A_ = A.todense()
>>> x_ = linalg.solve(A_ * A_.T, b)
>>> err = linalg.norm(x-x_)
Now we can print the error norm with:
- print "Norm error =", err
+
+ >>> print "Norm error =", err
+
It should be small :)
-Example:
+Example
+=======
Construct a matrix in COO format:
+
>>> from scipy import sparse
>>> from numpy import array
>>> I = array([0,3,1,0])
@@ -64,6 +74,7 @@
Notice that the indices do not need to be sorted.
Duplicate (i,j) entries are summed when converting to CSR or CSC.
+
>>> I = array([0,0,1,3,1,0,0])
>>> J = array([0,2,1,3,1,0,0])
>>> V = array([1,1,1,1,1,1,1])
@@ -72,13 +83,13 @@
This is useful for constructing finite-element stiffness and
mass matrices.
-Further Details:
+Further Details
+===============
+
CSR column indices are not necessarily sorted. Likewise for CSC row
indices. Use the .sorted_indices() and .sort_indices() methods when
- sorted indices are necessary. Note that there is no expectation for
- sorted indices in the sparsetools module. Furthermore some sparsetools
- functions produce matrices with unsorted indices even when sorted
- input is given.
+ sorted indices are required (e.g. when passing data to other libraries).
+
"""
postpone_import = 1
Modified: branches/testing_cleanup/scipy/sparse/lil.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/lil.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/lil.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -21,6 +21,27 @@
This contains a list (self.rows) of rows, each of which is a sorted
list of column indices of non-zero elements. It also contains a list
(self.data) of lists of these elements.
+
+ Notes
+ =====
+ Advantages of the LIL format
+ ----------------------------
+ - supports flexible slicing
+ - changes to the matrix sparsity structure are efficient
+
+ Disadvantages of the LIL format
+ -------------------------------
+ - arithmetic operations LIL + LIL are slower than CSR/CSC
+ - slow column slicing
+ - matrix vector products are slower than CSR/CSC
+
+ Usage
+ -----
+ - LIL is a convenient format for constructing sparse matrices
+ - once a matrix has been constructed, convert to CSR or
+ CSC format for fast arithmetic and matrix vector operations
+ - consider using the COO format when constructing large matrices
+
"""
def __init__(self, A=None, shape=None, dtype=None, copy=False):
Modified: branches/testing_cleanup/scipy/sparse/spfuncs.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/spfuncs.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/spfuncs.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -14,9 +14,7 @@
from sparsetools import csr_count_blocks
def extract_diagonal(A):
- """
- extract_diagonal(A) returns the main diagonal of A.
- """
+ """extract_diagonal(A) returns the main diagonal of A."""
#TODO extract k-th diagonal
if isspmatrix_csr(A) or isspmatrix_csc(A):
fn = getattr(sparsetools, A.format + "_diagonal")
@@ -33,7 +31,7 @@
"""Attempt to determine the blocksize of a sparse matrix
Returns a blocksize=(r,c) such that
- A.nnz / A.tobsr( (r,c) ).nnz > efficiency
+ - A.nnz / A.tobsr( (r,c) ).nnz > efficiency
"""
if not (isspmatrix_csr(A) or isspmatrix_csc(A)):
A = csr_matrix(A)
Modified: branches/testing_cleanup/scipy/sparse/sputils.py
===================================================================
--- branches/testing_cleanup/scipy/sparse/sputils.py 2008-01-11 19:21:45 UTC (rev 3813)
+++ branches/testing_cleanup/scipy/sparse/sputils.py 2008-01-12 01:50:57 UTC (rev 3814)
@@ -21,8 +21,8 @@
upcast(t0, t1, ..., tn) -> T where T is a supported dtype
- *Example*
- -------
+ Example
+ =======
>>> upcast('int32')
<type 'numpy.int32'>
More information about the Scipy-svn
mailing list