[Scipy-svn] r4549 - in trunk/scipy/sparse: . benchmarks linalg/dsolve sparsetools tests
scipy-svn at scipy.org
scipy-svn at scipy.org
Fri Jul 18 09:20:25 EDT 2008
Author: wnbell
Date: 2008-07-18 08:19:37 -0500 (Fri, 18 Jul 2008)
New Revision: 4549
Added:
trunk/scipy/sparse/sparsetools/dense.h
Modified:
trunk/scipy/sparse/benchmarks/bench_sparse.py
trunk/scipy/sparse/bsr.py
trunk/scipy/sparse/compressed.py
trunk/scipy/sparse/coo.py
trunk/scipy/sparse/dia.py
trunk/scipy/sparse/linalg/dsolve/linsolve.py
trunk/scipy/sparse/sparsetools/bsr.h
trunk/scipy/sparse/sparsetools/bsr.i
trunk/scipy/sparse/sparsetools/bsr.py
trunk/scipy/sparse/sparsetools/bsr_wrap.cxx
trunk/scipy/sparse/sparsetools/csc.h
trunk/scipy/sparse/sparsetools/csc.i
trunk/scipy/sparse/sparsetools/csc.py
trunk/scipy/sparse/sparsetools/csc_wrap.cxx
trunk/scipy/sparse/sparsetools/csr.h
trunk/scipy/sparse/sparsetools/csr.i
trunk/scipy/sparse/sparsetools/csr.py
trunk/scipy/sparse/sparsetools/csr_wrap.cxx
trunk/scipy/sparse/tests/test_base.py
Log:
added several block matrix vector products
Modified: trunk/scipy/sparse/benchmarks/bench_sparse.py
===================================================================
--- trunk/scipy/sparse/benchmarks/bench_sparse.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/benchmarks/bench_sparse.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -48,8 +48,8 @@
def bench_arithmetic(self):
matrices = []
#matrices.append( ('A','Identity', sparse.identity(500**2,format='csr')) )
- matrices.append( ('A','Poisson5pt', poisson2d(500,format='csr')) )
- matrices.append( ('B','Poisson5pt^2', poisson2d(500,format='csr')**2) )
+ matrices.append( ('A','Poisson5pt', poisson2d(250,format='csr')) )
+ matrices.append( ('B','Poisson5pt^2', poisson2d(250,format='csr')**2) )
print
print ' Sparse Matrix Arithmetic'
@@ -82,7 +82,7 @@
start = time.clock()
iter = 0
- while iter < 5 or time.clock() < start + 1:
+ while iter < 3 or time.clock() < start + 0.5:
fn(y)
iter += 1
end = time.clock()
@@ -133,6 +133,7 @@
matrices.append(('Poisson5pt', poisson2d(300,format='dia')))
matrices.append(('Poisson5pt', poisson2d(300,format='coo')))
matrices.append(('Poisson5pt', poisson2d(300,format='csr')))
+ matrices.append(('Poisson5pt', poisson2d(300,format='csc')))
matrices.append(('Poisson5pt', poisson2d(300,format='bsr')))
A = sparse.kron(poisson2d(150),ones((2,2))).tobsr(blocksize=(2,2))
@@ -159,11 +160,6 @@
iter = 0
while iter < 5 or time.clock() < start + 1:
y = A*x
- #try:
- # #avoid creating y if possible
- # A.matvec(x,y)
- #except:
- # y = A*x
iter += 1
end = time.clock()
@@ -175,6 +171,46 @@
print fmt % (A.format,name,shape,A.nnz,MFLOPs)
+ def bench_matvecs(self):
+ matrices = []
+ matrices.append(('Poisson5pt', poisson2d(300,format='dia')))
+ matrices.append(('Poisson5pt', poisson2d(300,format='coo')))
+ matrices.append(('Poisson5pt', poisson2d(300,format='csr')))
+ matrices.append(('Poisson5pt', poisson2d(300,format='csc')))
+ matrices.append(('Poisson5pt', poisson2d(300,format='bsr')))
+
+
+ n_vecs = 10
+
+ print
+ print ' Sparse Matrix (Block) Vector Product'
+ print ' Blocksize = %d' % (n_vecs,)
+ print '=================================================================='
+ print ' type | name | shape | nnz | MFLOPs '
+ print '------------------------------------------------------------------'
+ fmt = ' %3s | %12s | %20s | %8d | %6.1f '
+
+ for name,A in matrices:
+ x = ones((A.shape[1],10),dtype=A.dtype)
+
+ y = A*x #warmup
+
+ start = time.clock()
+ iter = 0
+ while iter < 5 or time.clock() < start + 1:
+ y = A*x
+ iter += 1
+ end = time.clock()
+
+ del y
+
+ name = name.center(12)
+ shape = ("%s" % (A.shape,)).center(20)
+ MFLOPs = (2*n_vecs*A.nnz*iter/(end-start))/float(1e6)
+
+ print fmt % (A.format,name,shape,A.nnz,MFLOPs)
+
+
def bench_construction(self):
"""build matrices by inserting single values"""
matrices = []
@@ -213,13 +249,13 @@
def bench_conversion(self):
A = poisson2d(100)
- formats = ['csr','csc','coo','lil','dok']
+ formats = ['csr','csc','coo','dia','lil','dok']
print
- print ' Sparse Matrix Conversion'
- print '=========================================================='
- print ' format | tocsr() | tocsc() | tocoo() | tolil() | todok() '
- print '----------------------------------------------------------'
+ print ' Sparse Matrix Conversion'
+ print '===================================================================='
+ print ' format | tocsr() | tocsc() | tocoo() | todia() | tolil() | todok() '
+ print '--------------------------------------------------------------------'
for fromfmt in formats:
base = getattr(A,'to' + fromfmt)()
Modified: trunk/scipy/sparse/bsr.py
===================================================================
--- trunk/scipy/sparse/bsr.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/bsr.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -15,7 +15,7 @@
from sputils import isshape, getdtype, to_native, isscalarlike, isdense, \
upcast
import sparsetools
-from sparsetools import bsr_matvec, csr_matmat_pass1, csr_matmat_pass2, \
+from sparsetools import bsr_matvec, bsr_matvecs, csr_matmat_pass1, csr_matmat_pass2, \
bsr_matmat_pass2, bsr_transpose, bsr_sort_indices
class bsr_matrix(_cs_matrix):
@@ -296,16 +296,30 @@
result = zeros( self.shape[0], dtype=upcast(self.dtype, other.dtype) )
bsr_matvec(M/R, N/C, R, C, \
- self.indptr, self.indices, ravel(self.data), other, result)
+ self.indptr, self.indices, self.data.ravel(),
+ other, result)
return result
+
+ def _mul_dense_matrix(self,other):
+ R,C = self.blocksize
+ M,N = self.shape
+ n_vecs = other.shape[1] #number of column vectors
- def _mul_dense_matrix(self, other):
- # TODO make sparse * dense matrix multiplication more efficient
- # matvec each column of other
- result = hstack( [ self * col.reshape(-1,1) for col in asarray(other).T ] )
- return result
+ result = zeros( (M,n_vecs), dtype=upcast(self.dtype,other.dtype) )
+ bsr_matvecs(M/R, N/C, n_vecs, R, C, \
+ self.indptr, self.indices, self.data.ravel(), \
+ other.ravel(), result.ravel())
+
+ return result
+
+ #def _mul_dense_matrix(self, other):
+ # # TODO make sparse * dense matrix multiplication more efficient
+ # # matvec each column of other
+ # result = hstack( [ self * col.reshape(-1,1) for col in asarray(other).T ] )
+ # return result
+
def _mul_sparse_matrix(self, other):
M, K1 = self.shape
K2, N = other.shape
Modified: trunk/scipy/sparse/compressed.py
===================================================================
--- trunk/scipy/sparse/compressed.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/compressed.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -276,7 +276,7 @@
#output array
result = zeros( self.shape[0], dtype=upcast(self.dtype,other.dtype) )
- # csrmux, cscmux
+ # csr_matvec or csc_matvec
fn = getattr(sparsetools,self.format + '_matvec')
fn(M, N, self.indptr, self.indices, self.data, other, result)
@@ -284,10 +284,17 @@
def _mul_dense_matrix(self,other):
- # TODO make sparse * dense matrix multiplication more efficient
- # matvec each column of other
- return hstack( [ self * col.reshape(-1,1) for col in asarray(other).T ] )
+ M,N = self.shape
+ n_vecs = other.shape[1] #number of column vectors
+ result = zeros( (M,n_vecs), dtype=upcast(self.dtype,other.dtype) )
+
+ # csr_matvecs or csc_matvecs
+ fn = getattr(sparsetools,self.format + '_matvecs')
+ fn(M, N, n_vecs, self.indptr, self.indices, self.data, other.ravel(), result.ravel())
+
+ return result
+
def _mul_sparse_matrix(self, other):
M, K1 = self.shape
Modified: trunk/scipy/sparse/coo.py
===================================================================
--- trunk/scipy/sparse/coo.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/coo.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -8,7 +8,7 @@
from warnings import warn
from numpy import array, asarray, empty, intc, zeros, \
- unique, searchsorted, atleast_2d, rank, deprecate
+ unique, searchsorted, atleast_2d, rank, deprecate, hstack
from sparsetools import coo_tocsr, coo_tocsc, coo_todense, coo_matvec
from base import isspmatrix
@@ -338,6 +338,9 @@
result = zeros( self.shape[0], dtype=upcast(self.dtype,other.dtype) )
coo_matvec(self.nnz, self.row, self.col, self.data, other, result)
return result
+
+ def _mul_dense_matrix(self, other):
+ return hstack( [ self._mul_vector(col).reshape(-1,1) for col in other.T ] )
from sputils import _isinstance
Modified: trunk/scipy/sparse/dia.py
===================================================================
--- trunk/scipy/sparse/dia.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/dia.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -6,7 +6,7 @@
from numpy import asarray, asmatrix, matrix, zeros, arange, array, \
empty_like, intc, atleast_1d, atleast_2d, add, multiply, \
- unique
+ unique, hstack
from base import isspmatrix, _formats
from data import _data_matrix
@@ -155,6 +155,8 @@
return y
+ def _mul_dense_matrix(self, other):
+ return hstack( [ self._mul_vector(col).reshape(-1,1) for col in other.T ] )
def todia(self,copy=False):
if copy:
@@ -180,21 +182,22 @@
for i,k in enumerate(self.diags):
row[i,:] -= k
+ row,col,data = row.ravel(),col.ravel(),self.data.ravel()
+
mask = (row >= 0)
mask &= (row < self.shape[0])
mask &= (col < self.shape[1])
- mask &= self.data != 0
- row,col,data = row[mask],col[mask],self.data[mask]
- row,col,data = row.reshape(-1),col.reshape(-1),data.reshape(-1)
+ mask &= data != 0
+ row,col,data = row[mask],col[mask],data[mask]
+ #row,col,data = row.reshape(-1),col.reshape(-1),data.reshape(-1)
from coo import coo_matrix
return coo_matrix((data,(row,col)),shape=self.shape)
# needed by _data_matrix
- def _with_data(self,data,copy=True):
+ def _with_data(self, data, copy=True):
"""Returns a matrix with the same sparsity structure as self,
- but with different data. By default the structure arrays
- (i.e. .indptr and .indices) are copied.
+ but with different data. By default the structure arrays are copied.
"""
if copy:
return dia_matrix( (data,self.diags.copy()), shape=self.shape)
Modified: trunk/scipy/sparse/linalg/dsolve/linsolve.py
===================================================================
--- trunk/scipy/sparse/linalg/dsolve/linsolve.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/linalg/dsolve/linsolve.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -22,6 +22,8 @@
useUmfpack = True
+__all__ = [ 'use_solver', 'spsolve', 'splu', 'factorized' ]
+
#convert numpy char to superLU char
superLU_transtabl = {'f':'s', 'd':'d', 'F':'c', 'D':'z'}
Modified: trunk/scipy/sparse/sparsetools/bsr.h
===================================================================
--- trunk/scipy/sparse/sparsetools/bsr.h 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/bsr.h 2008-07-18 13:19:37 UTC (rev 4549)
@@ -6,7 +6,7 @@
#include <functional>
#include "csr.h"
-#include "fixed_size.h"
+#include "dense.h"
template <class I, class T>
@@ -19,10 +19,10 @@
const T Ax[],
T Yx[])
{
- const I N = std::min(R*n_brow, C*n_bcol);
+ const I D = std::min(R*n_brow, C*n_bcol);
const I RC = R*C;
- for(I i = 0; i < N; i++){
+ for(I i = 0; i < D; i++){
Yx[i] = 0;
}
@@ -45,7 +45,7 @@
else
{
//This could be made faster
- const I end = (N/R) + (N % R == 0 ? 0 : 1);
+ const I end = (D/R) + (D % R == 0 ? 0 : 1);
for(I i = 0; i < end; i++){
for(I jj = Ap[i]; jj < Ap[i+1]; jj++){
const I base_row = R*i;
@@ -54,7 +54,7 @@
for(I bi = 0; bi < R; bi++){
const I row = base_row + bi;
- if (row >= N) break;
+ if (row >= D) break;
for(I bj = 0; bj < C; bj++){
const I col = base_col + bj;
@@ -87,16 +87,15 @@
const T Xx[])
{
const I RC = R*C;
+
for(I i = 0; i < n_brow; i++){
+ const T * row_scales = Xx + R*i;
+
for(I jj = Ap[i]; jj < Ap[i+1]; jj++){
- for(I bi = 0; bi < R; bi++){
- const T s = Xx[R*i + bi];
- T * block_row = Ax + RC*jj + C*bi;
-
- for(I bj = 0; bj < C; bj++){
- block_row[bj] *= s;
- }
+ T * block = Ax + RC*jj;
+ for(I bi = 0; bi < R; bi++){
+ scal(C, row_scales[bi], block + C*bi);
}
}
}
@@ -167,7 +166,7 @@
const I RC = R*C;
const I nnz = RC*nblks;
- //compute permutation of blocks using tranpose(CSR)
+ //compute permutation of blocks using CSR
std::vector<I> perm(nblks);
for(I i = 0; i < nblks; i++)
@@ -249,70 +248,7 @@
}
-template <class I, class T, int R, int C, int N>
-void bsr_matmat_pass2_fixed(const I n_brow, const I n_bcol,
- const I Ap[], const I Aj[], const T Ax[],
- const I Bp[], const I Bj[], const T Bx[],
- I Cp[], I Cj[], T Cx[])
-{
- const I RC = R*C;
- const I RN = R*N;
- const I NC = N*C;
- const I SIZE = RC*Cp[n_brow];
- for(I i = 0; i < SIZE; i++){
- Cx[i] = 0;
- }
-
- std::vector<I> next(n_bcol,-1);
- std::vector<T*> mats(n_bcol);
-
-
- I nnz = 0;
-
- Cp[0] = 0;
-
- for(I i = 0; i < n_brow; i++){
- I head = -2;
- I length = 0;
-
- I jj_start = Ap[i];
- I jj_end = Ap[i+1];
- for(I jj = jj_start; jj < jj_end; jj++){
- I j = Aj[jj];
-
- I kk_start = Bp[j];
- I kk_end = Bp[j+1];
- for(I kk = kk_start; kk < kk_end; kk++){
- I k = Bj[kk];
-
- if(next[k] == -1){
- next[k] = head;
- head = k;
- Cj[nnz] = k;
- mats[k] = Cx + RC*nnz;
- nnz++;
- length++;
- }
-
- const T * A = Ax + jj*RN;
- const T * B = Bx + kk*NC;
- T * result = mats[k];
- matmat<R,C,N>(A,B,result);
- }
- }
-
- for(I jj = 0; jj < length; jj++){
- I temp = head;
- head = next[head];
- next[temp] = -1; //clear arrays
- }
-
- }
-
-}
-
-
template <class I, class T>
void bsr_matmat_pass2(const I n_brow, const I n_bcol,
const I R, const I C, const I N,
@@ -322,44 +258,8 @@
{
assert(R > 0 && C > 0 && N > 0);
-#ifdef SPARSETOOLS_TESTING
-#define F(X,Y,Z) bsr_matmat_pass2_fixed<I,T,X,Y,Z>
-
- void (*dispatch[4][4][4])(I,I,const I*,const I*,const T*,
- const I*,const I*,const T*,
- I*, I*, T*) = \
- {
- { { F(1,1,1), F(1,1,2), F(1,1,3), F(1,1,4) },
- { F(1,2,1), F(1,2,2), F(1,2,3), F(1,2,4) },
- { F(1,3,1), F(1,3,2), F(1,3,3), F(1,3,4) },
- { F(1,4,1), F(1,4,2), F(1,4,3), F(1,4,4) },
- },
- { { F(2,1,1), F(2,1,2), F(2,1,3), F(2,1,4) },
- { F(2,2,1), F(2,2,2), F(2,2,3), F(2,2,4) },
- { F(2,3,1), F(2,3,2), F(2,3,3), F(2,3,4) },
- { F(2,4,1), F(2,4,2), F(2,4,3), F(2,4,4) },
- },
- { { F(3,1,1), F(3,1,2), F(3,1,3), F(3,1,4) },
- { F(3,2,1), F(3,2,2), F(3,2,3), F(3,2,4) },
- { F(3,3,1), F(3,3,2), F(3,3,3), F(3,3,4) },
- { F(3,4,1), F(3,4,2), F(3,4,3), F(3,4,4) },
- },
- { { F(4,1,1), F(4,1,2), F(4,1,3), F(4,1,4) },
- { F(4,2,1), F(4,2,2), F(4,2,3), F(4,2,4) },
- { F(4,3,1), F(4,3,2), F(4,3,3), F(4,3,4) },
- { F(4,4,1), F(4,4,2), F(4,4,3), F(4,4,4) },
- }
- };
-
- if (R <= 4 && C <= 4 && N <= 4){
- dispatch[R-1][N-1][C-1](n_brow,n_bcol,Ap,Aj,Ax,Bp,Bj,Bx,Cp,Cj,Cx);
- return;
- }
-
-#undef F
-#endif
-
if( R == 1 && N == 1 && C == 1 ){
+ // Use CSR for 1x1 blocksize
csr_matmat_pass2(n_brow, n_bcol, Ap, Aj, Ax, Bp, Bj, Bx, Cp, Cj, Cx);
return;
}
@@ -367,12 +267,8 @@
const I RC = R*C;
const I RN = R*N;
const I NC = N*C;
- const I SIZE = RC*Cp[n_brow];
-
- for(I i = 0; i < SIZE; i++){
- Cx[i] = 0;
- }
+ std::fill( Cx, Cx + RC * Cp[n_brow], 0 ); //clear output array
std::vector<I> next(n_bcol,-1);
std::vector<T*> mats(n_bcol);
@@ -405,15 +301,8 @@
const T * A = Ax + jj*RN;
const T * B = Bx + kk*NC;
- T * result = mats[k];
- for(I r = 0; r < R; r++){
- for(I c = 0; c < C; c++){
- for(I n = 0; n < N; n++){
- result[C*r + c] += A[N*r + n] * B[C*n + c];
- }
- }
- }
+ gemm(R, C, N, A, B, mats[k]);
}
}
@@ -609,38 +498,7 @@
// }
//}
-template <class I, class T, int R, int C>
-void bsr_matvec_fixed(const I n_brow,
- const I n_bcol,
- const I Ap[],
- const I Aj[],
- const T Ax[],
- const T Xx[],
- T Yx[])
-{
- const int RC = R*C;
- for(I i = 0; i < n_brow; i++) {
- for(I jj = Ap[i]; jj < Ap[i+1]; jj++) {
- I j = Aj[jj];
- matvec<R,C,1,1>(Ax + jj*RC, Xx + j*C, Yx + i*R);
- }
- }
-}
-/*
- * Generate the table below with:
- * out = ''
- * N = 8
- * for i in range(N):
- * out += '{'
- * for j in range(N-1):
- * out += ' F(%d,%d),' % (i+1,j+1)
- * out += ' F(%d,%d) },\n' % (i+1,j+2)
- * out = out[:-2]
- *
- */
-
-
template <class I, class T>
void bsr_matvec(const I n_brow,
const I n_bcol,
@@ -655,50 +513,72 @@
assert(R > 0 && C > 0);
if( R == 1 && C == 1 ){
- csr_matvec(n_brow, n_bcol, Ap, Aj, Ax, Xx, Yx); //use CSR for 1x1 blocksize
+ //use CSR for 1x1 blocksize
+ csr_matvec(n_brow, n_bcol, Ap, Aj, Ax, Xx, Yx);
return;
}
-#ifdef SPARSETOOLS_TESTING
-#define F(X,Y) bsr_matvec_fixed<I,T,X,Y>
+ const I RC = R*C;
+ for(I i = 0; i < n_brow; i++){
+ T * y = Yx + R * i;
+ for(I jj = Ap[i]; jj < Ap[i+1]; jj++){
+ const I j = Aj[jj];
+ const T * A = Ax + RC * jj;
+ const T * x = Xx + C * j;
+ gemv(R, C, A, x, y); // y += A*x
+ }
+ }
+}
+/*
+ * Compute Y += A*X for BSR matrix A and dense block vectors X,Y
+ *
+ *
+ * Input Arguments:
+ * I n_brow - number of row blocks in A
+ * I n_bcol - number of column blocks in A
+ * I n_vecs - number of column vectors in X and Y
+ * I R - rows per block
+ * I C - columns per block
+ * I Ap[n_brow+1] - row pointer
+ * I Aj[nblks(A)] - column indices
+ * T Ax[nnz(A)] - nonzeros
+ * T Xx[C*n_bcol,n_vecs] - input vector
+ *
+ * Output Arguments:
+ * T Yx[R*n_brow,n_vecs] - output vector
+ *
+ */
+template <class I, class T>
+void bsr_matvecs(const I n_brow,
+ const I n_bcol,
+ const I n_vecs,
+ const I R,
+ const I C,
+ const I Ap[],
+ const I Aj[],
+ const T Ax[],
+ const T Xx[],
+ T Yx[])
+{
+ assert(R > 0 && C > 0);
- void (*dispatch[8][8])(I,I,const I*,const I*,const T*,const T*,T*) = \
- {
- { F(1,1), F(1,2), F(1,3), F(1,4), F(1,5), F(1,6), F(1,7), F(1,8) },
- { F(2,1), F(2,2), F(2,3), F(2,4), F(2,5), F(2,6), F(2,7), F(2,8) },
- { F(3,1), F(3,2), F(3,3), F(3,4), F(3,5), F(3,6), F(3,7), F(3,8) },
- { F(4,1), F(4,2), F(4,3), F(4,4), F(4,5), F(4,6), F(4,7), F(4,8) },
- { F(5,1), F(5,2), F(5,3), F(5,4), F(5,5), F(5,6), F(5,7), F(5,8) },
- { F(6,1), F(6,2), F(6,3), F(6,4), F(6,5), F(6,6), F(6,7), F(6,8) },
- { F(7,1), F(7,2), F(7,3), F(7,4), F(7,5), F(7,6), F(7,7), F(7,8) },
- { F(8,1), F(8,2), F(8,3), F(8,4), F(8,5), F(8,6), F(8,7), F(8,8) }
- };
-
- if (R <= 8 && C <= 8){
- dispatch[R-1][C-1](n_brow,n_bcol,Ap,Aj,Ax,Xx,Yx);
+ if( R == 1 && C == 1 ){
+ //use CSR for 1x1 blocksize
+ csr_matvecs(n_brow, n_bcol, n_vecs, Ap, Aj, Ax, Xx, Yx);
return;
}
-#undef F
-#endif
+ const I A_bs = R*C; //Ax blocksize
+ const I Y_bs = n_vecs*R; //Yx blocksize
+ const I X_bs = C*n_vecs; //Xx blocksize
- //otherwise use general method
for(I i = 0; i < n_brow; i++){
- const T * A = Ax + R * C * Ap[i];
- T * y = Yx + R * i;
+ T * y = Yx + Y_bs * i;
for(I jj = Ap[i]; jj < Ap[i+1]; jj++){
- const T * x = Xx + C*Aj[jj];
-
- //TODO replace this with a proper matvec
- for( I r = 0; r < R; r++ ){
- T sum = 0;
- for( I c = 0; c < C; c++ ){
- sum += (*A) * x[c];
- A++;
- }
- y[r] += sum;
- }
-
+ const I j = Aj[jj];
+ const T * A = Ax + A_bs * jj;
+ const T * x = Xx + X_bs * j;
+ gemm(R, n_vecs, C, A, x, y); // y += A*x
}
}
}
Modified: trunk/scipy/sparse/sparsetools/bsr.i
===================================================================
--- trunk/scipy/sparse/sparsetools/bsr.i 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/bsr.i 2008-07-18 13:19:37 UTC (rev 4549)
@@ -15,6 +15,7 @@
INSTANTIATE_ALL(bsr_transpose)
INSTANTIATE_ALL(bsr_matmat_pass2)
INSTANTIATE_ALL(bsr_matvec)
+INSTANTIATE_ALL(bsr_matvecs)
INSTANTIATE_ALL(bsr_elmul_bsr)
INSTANTIATE_ALL(bsr_eldiv_bsr)
INSTANTIATE_ALL(bsr_plus_bsr)
Modified: trunk/scipy/sparse/sparsetools/bsr.py
===================================================================
--- trunk/scipy/sparse/sparsetools/bsr.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/bsr.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -269,6 +269,48 @@
"""
return _bsr.bsr_matvec(*args)
+def bsr_matvecs(*args):
+ """
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, signed char Ax, signed char Xx,
+ signed char Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, unsigned char Ax, unsigned char Xx,
+ unsigned char Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, short Ax, short Xx, short Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, unsigned short Ax, unsigned short Xx,
+ unsigned short Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, int Ax, int Xx, int Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, unsigned int Ax, unsigned int Xx,
+ unsigned int Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, long long Ax, long long Xx, long long Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, unsigned long long Ax, unsigned long long Xx,
+ unsigned long long Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, float Ax, float Xx, float Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, double Ax, double Xx, double Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, long double Ax, long double Xx,
+ long double Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, npy_cfloat_wrapper Ax, npy_cfloat_wrapper Xx,
+ npy_cfloat_wrapper Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, npy_cdouble_wrapper Ax, npy_cdouble_wrapper Xx,
+ npy_cdouble_wrapper Yx)
+ bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap,
+ int Aj, npy_clongdouble_wrapper Ax, npy_clongdouble_wrapper Xx,
+ npy_clongdouble_wrapper Yx)
+ """
+ return _bsr.bsr_matvecs(*args)
+
def bsr_elmul_bsr(*args):
"""
bsr_elmul_bsr(int n_row, int n_col, int R, int C, int Ap, int Aj,
Modified: trunk/scipy/sparse/sparsetools/bsr_wrap.cxx
===================================================================
--- trunk/scipy/sparse/sparsetools/bsr_wrap.cxx 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/bsr_wrap.cxx 2008-07-18 13:19:37 UTC (rev 4549)
@@ -20630,6 +20630,3118 @@
}
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ signed char *arg8 ;
+ signed char *arg9 ;
+ signed char *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_BYTE, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (signed char*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_BYTE, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (signed char*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_BYTE);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (signed char*) array_data(temp10);
+ }
+ bsr_matvecs< int,signed char >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(signed char const (*))arg8,(signed char const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ unsigned char *arg8 ;
+ unsigned char *arg9 ;
+ unsigned char *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_UBYTE, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (unsigned char*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_UBYTE, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (unsigned char*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_UBYTE);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (unsigned char*) array_data(temp10);
+ }
+ bsr_matvecs< int,unsigned char >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(unsigned char const (*))arg8,(unsigned char const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ short *arg8 ;
+ short *arg9 ;
+ short *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_SHORT, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (short*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_SHORT, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (short*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_SHORT);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (short*) array_data(temp10);
+ }
+ bsr_matvecs< int,short >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(short const (*))arg8,(short const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ unsigned short *arg8 ;
+ unsigned short *arg9 ;
+ unsigned short *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_USHORT, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (unsigned short*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_USHORT, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (unsigned short*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_USHORT);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (unsigned short*) array_data(temp10);
+ }
+ bsr_matvecs< int,unsigned short >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(unsigned short const (*))arg8,(unsigned short const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ int *arg8 ;
+ int *arg9 ;
+ int *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_INT, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (int*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_INT, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (int*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_INT);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (int*) array_data(temp10);
+ }
+ bsr_matvecs< int,int >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(int const (*))arg8,(int const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ unsigned int *arg8 ;
+ unsigned int *arg9 ;
+ unsigned int *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_UINT, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (unsigned int*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_UINT, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (unsigned int*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_UINT);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (unsigned int*) array_data(temp10);
+ }
+ bsr_matvecs< int,unsigned int >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(unsigned int const (*))arg8,(unsigned int const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ long long *arg8 ;
+ long long *arg9 ;
+ long long *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_LONGLONG, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (long long*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_LONGLONG, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (long long*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_LONGLONG);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (long long*) array_data(temp10);
+ }
+ bsr_matvecs< int,long long >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(long long const (*))arg8,(long long const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ unsigned long long *arg8 ;
+ unsigned long long *arg9 ;
+ unsigned long long *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_ULONGLONG, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (unsigned long long*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_ULONGLONG, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (unsigned long long*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_ULONGLONG);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (unsigned long long*) array_data(temp10);
+ }
+ bsr_matvecs< int,unsigned long long >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(unsigned long long const (*))arg8,(unsigned long long const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ float *arg8 ;
+ float *arg9 ;
+ float *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_FLOAT, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (float*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_FLOAT, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (float*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_FLOAT);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (float*) array_data(temp10);
+ }
+ bsr_matvecs< int,float >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(float const (*))arg8,(float const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ double *arg8 ;
+ double *arg9 ;
+ double *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_DOUBLE, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (double*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_DOUBLE, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (double*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_DOUBLE);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (double*) array_data(temp10);
+ }
+ bsr_matvecs< int,double >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(double const (*))arg8,(double const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ long double *arg8 ;
+ long double *arg9 ;
+ long double *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_LONGDOUBLE, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (long double*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_LONGDOUBLE, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (long double*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_LONGDOUBLE);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (long double*) array_data(temp10);
+ }
+ bsr_matvecs< int,long double >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(long double const (*))arg8,(long double const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ npy_cfloat_wrapper *arg8 ;
+ npy_cfloat_wrapper *arg9 ;
+ npy_cfloat_wrapper *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_CFLOAT, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (npy_cfloat_wrapper*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_CFLOAT, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (npy_cfloat_wrapper*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_CFLOAT);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (npy_cfloat_wrapper*) array_data(temp10);
+ }
+ bsr_matvecs< int,npy_cfloat_wrapper >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(npy_cfloat_wrapper const (*))arg8,(npy_cfloat_wrapper const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ npy_cdouble_wrapper *arg8 ;
+ npy_cdouble_wrapper *arg9 ;
+ npy_cdouble_wrapper *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_CDOUBLE, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (npy_cdouble_wrapper*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_CDOUBLE, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (npy_cdouble_wrapper*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_CDOUBLE);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (npy_cdouble_wrapper*) array_data(temp10);
+ }
+ bsr_matvecs< int,npy_cdouble_wrapper >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(npy_cdouble_wrapper const (*))arg8,(npy_cdouble_wrapper const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ npy_clongdouble_wrapper *arg8 ;
+ npy_clongdouble_wrapper *arg9 ;
+ npy_clongdouble_wrapper *arg10 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *array8 = NULL ;
+ int is_new_object8 ;
+ PyArrayObject *array9 = NULL ;
+ int is_new_object9 ;
+ PyArrayObject *temp10 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:bsr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "bsr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "bsr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "bsr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "bsr_matvecs" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "bsr_matvecs" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array8 = obj_to_array_contiguous_allow_conversion(obj7, PyArray_CLONGDOUBLE, &is_new_object8);
+ if (!array8 || !require_dimensions(array8,1) || !require_size(array8,size,1)
+ || !require_contiguous(array8) || !require_native(array8)) SWIG_fail;
+
+ arg8 = (npy_clongdouble_wrapper*) array8->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array9 = obj_to_array_contiguous_allow_conversion(obj8, PyArray_CLONGDOUBLE, &is_new_object9);
+ if (!array9 || !require_dimensions(array9,1) || !require_size(array9,size,1)
+ || !require_contiguous(array9) || !require_native(array9)) SWIG_fail;
+
+ arg9 = (npy_clongdouble_wrapper*) array9->data;
+ }
+ {
+ temp10 = obj_to_array_no_conversion(obj9,PyArray_CLONGDOUBLE);
+ if (!temp10 || !require_contiguous(temp10) || !require_native(temp10)) SWIG_fail;
+ arg10 = (npy_clongdouble_wrapper*) array_data(temp10);
+ }
+ bsr_matvecs< int,npy_clongdouble_wrapper >(arg1,arg2,arg3,arg4,arg5,(int const (*))arg6,(int const (*))arg7,(npy_clongdouble_wrapper const (*))arg8,(npy_clongdouble_wrapper const (*))arg9,arg10);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ {
+ if (is_new_object8 && array8) {
+ Py_DECREF(array8);
+ }
+ }
+ {
+ if (is_new_object9 && array9) {
+ Py_DECREF(array9);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_bsr_matvecs(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[11];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = (int)PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 10); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_4(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_5(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_6(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_7(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_8(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_9(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_10(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_11(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_12(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_13(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 10) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[8]) && PyArray_CanCastSafely(PyArray_TYPE(argv[8]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[9]) && PyArray_CanCastSafely(PyArray_TYPE(argv[9]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_bsr_matvecs__SWIG_14(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'bsr_matvecs'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " bsr_matvecs< int,signed char >(int const,int const,int const,int const,int const,int const [],int const [],signed char const [],signed char const [],signed char [])\n"
+ " bsr_matvecs< int,unsigned char >(int const,int const,int const,int const,int const,int const [],int const [],unsigned char const [],unsigned char const [],unsigned char [])\n"
+ " bsr_matvecs< int,short >(int const,int const,int const,int const,int const,int const [],int const [],short const [],short const [],short [])\n"
+ " bsr_matvecs< int,unsigned short >(int const,int const,int const,int const,int const,int const [],int const [],unsigned short const [],unsigned short const [],unsigned short [])\n"
+ " bsr_matvecs< int,int >(int const,int const,int const,int const,int const,int const [],int const [],int const [],int const [],int [])\n"
+ " bsr_matvecs< int,unsigned int >(int const,int const,int const,int const,int const,int const [],int const [],unsigned int const [],unsigned int const [],unsigned int [])\n"
+ " bsr_matvecs< int,long long >(int const,int const,int const,int const,int const,int const [],int const [],long long const [],long long const [],long long [])\n"
+ " bsr_matvecs< int,unsigned long long >(int const,int const,int const,int const,int const,int const [],int const [],unsigned long long const [],unsigned long long const [],unsigned long long [])\n"
+ " bsr_matvecs< int,float >(int const,int const,int const,int const,int const,int const [],int const [],float const [],float const [],float [])\n"
+ " bsr_matvecs< int,double >(int const,int const,int const,int const,int const,int const [],int const [],double const [],double const [],double [])\n"
+ " bsr_matvecs< int,long double >(int const,int const,int const,int const,int const,int const [],int const [],long double const [],long double const [],long double [])\n"
+ " bsr_matvecs< int,npy_cfloat_wrapper >(int const,int const,int const,int const,int const,int const [],int const [],npy_cfloat_wrapper const [],npy_cfloat_wrapper const [],npy_cfloat_wrapper [])\n"
+ " bsr_matvecs< int,npy_cdouble_wrapper >(int const,int const,int const,int const,int const,int const [],int const [],npy_cdouble_wrapper const [],npy_cdouble_wrapper const [],npy_cdouble_wrapper [])\n"
+ " bsr_matvecs< int,npy_clongdouble_wrapper >(int const,int const,int const,int const,int const,int const [],int const [],npy_clongdouble_wrapper const [],npy_clongdouble_wrapper const [],npy_clongdouble_wrapper [])\n");
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_bsr_elmul_bsr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
int arg1 ;
@@ -38786,6 +41898,45 @@
" npy_clongdouble_wrapper Ax, npy_clongdouble_wrapper Xx, \n"
" npy_clongdouble_wrapper Yx)\n"
""},
+ { (char *)"bsr_matvecs", _wrap_bsr_matvecs, METH_VARARGS, (char *)"\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, signed char Ax, signed char Xx, \n"
+ " signed char Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, unsigned char Ax, unsigned char Xx, \n"
+ " unsigned char Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, short Ax, short Xx, short Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, unsigned short Ax, unsigned short Xx, \n"
+ " unsigned short Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, int Ax, int Xx, int Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, unsigned int Ax, unsigned int Xx, \n"
+ " unsigned int Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, long long Ax, long long Xx, long long Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, unsigned long long Ax, unsigned long long Xx, \n"
+ " unsigned long long Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, float Ax, float Xx, float Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, double Ax, double Xx, double Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, long double Ax, long double Xx, \n"
+ " long double Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, npy_cfloat_wrapper Ax, npy_cfloat_wrapper Xx, \n"
+ " npy_cfloat_wrapper Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, npy_cdouble_wrapper Ax, npy_cdouble_wrapper Xx, \n"
+ " npy_cdouble_wrapper Yx)\n"
+ "bsr_matvecs(int n_brow, int n_bcol, int n_vecs, int R, int C, int Ap, \n"
+ " int Aj, npy_clongdouble_wrapper Ax, npy_clongdouble_wrapper Xx, \n"
+ " npy_clongdouble_wrapper Yx)\n"
+ ""},
{ (char *)"bsr_elmul_bsr", _wrap_bsr_elmul_bsr, METH_VARARGS, (char *)"\n"
"bsr_elmul_bsr(int n_row, int n_col, int R, int C, int Ap, int Aj, \n"
" signed char Ax, int Bp, int Bj, signed char Bx, \n"
Modified: trunk/scipy/sparse/sparsetools/csc.h
===================================================================
--- trunk/scipy/sparse/sparsetools/csc.h 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csc.h 2008-07-18 13:19:37 UTC (rev 4549)
@@ -40,14 +40,55 @@
I col_end = Ap[j+1];
for(I ii = col_start; ii < col_end; ii++){
- I row = Ai[ii];
- Yx[row] += Ax[ii] * Xx[j];
+ I i = Ai[ii];
+ Yx[i] += Ax[ii] * Xx[j];
}
}
}
/*
+ * Compute Y += A*X for CSC matrix A and dense block vectors X,Y
+ *
+ *
+ * Input Arguments:
+ * I n_row - number of rows in A
+ * I n_col - number of columns in A
+ * I n_vecs - number of column vectors in X and Y
+ * I Ap[n_row+1] - row pointer
+ * I Aj[nnz(A)] - column indices
+ * T Ax[nnz(A)] - nonzeros
+ * T Xx[n_col,n_vecs] - input vector
+ *
+ * Output Arguments:
+ * T Yx[n_row,n_vecs] - output vector
+ *
+ * Note:
+ * Output array Yx must be preallocated
+ *
+ */
+template <class I, class T>
+void csc_matvecs(const I n_row,
+ const I n_col,
+ const I n_vecs,
+ const I Ap[],
+ const I Ai[],
+ const T Ax[],
+ const T Xx[],
+ T Yx[])
+{
+ for(I j = 0; j < n_col; j++){
+ for(I ii = Ap[j]; ii < Ap[j+1]; ii++){
+ const I i = Ai[ii];
+ axpy(n_vecs, Ax[ii], Xx + n_vecs * j, Yx + n_vecs * i);
+ }
+ }
+}
+
+
+
+
+/*
* Derived methods
*/
template <class I, class T>
Modified: trunk/scipy/sparse/sparsetools/csc.i
===================================================================
--- trunk/scipy/sparse/sparsetools/csc.i 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csc.i 2008-07-18 13:19:37 UTC (rev 4549)
@@ -14,6 +14,7 @@
INSTANTIATE_ALL(csc_tocsr)
INSTANTIATE_ALL(csc_matmat_pass2)
INSTANTIATE_ALL(csc_matvec)
+INSTANTIATE_ALL(csc_matvecs)
INSTANTIATE_ALL(csc_elmul_csc)
INSTANTIATE_ALL(csc_eldiv_csc)
INSTANTIATE_ALL(csc_plus_csc)
Modified: trunk/scipy/sparse/sparsetools/csc.py
===================================================================
--- trunk/scipy/sparse/sparsetools/csc.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csc.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -195,6 +195,43 @@
"""
return _csc.csc_matvec(*args)
+def csc_matvecs(*args):
+ """
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, signed char Ax,
+ signed char Xx, signed char Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned char Ax,
+ unsigned char Xx, unsigned char Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, short Ax,
+ short Xx, short Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned short Ax,
+ unsigned short Xx, unsigned short Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, int Ax,
+ int Xx, int Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned int Ax,
+ unsigned int Xx, unsigned int Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, long long Ax,
+ long long Xx, long long Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned long long Ax,
+ unsigned long long Xx,
+ unsigned long long Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, float Ax,
+ float Xx, float Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, double Ax,
+ double Xx, double Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, long double Ax,
+ long double Xx, long double Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, npy_cfloat_wrapper Ax,
+ npy_cfloat_wrapper Xx,
+ npy_cfloat_wrapper Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, npy_cdouble_wrapper Ax,
+ npy_cdouble_wrapper Xx,
+ npy_cdouble_wrapper Yx)
+ csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, npy_clongdouble_wrapper Ax,
+ npy_clongdouble_wrapper Xx,
+ npy_clongdouble_wrapper Yx)
+ """
+ return _csc.csc_matvecs(*args)
+
def csc_elmul_csc(*args):
"""
csc_elmul_csc(int n_row, int n_col, int Ap, int Ai, signed char Ax,
Modified: trunk/scipy/sparse/sparsetools/csc_wrap.cxx
===================================================================
--- trunk/scipy/sparse/sparsetools/csc_wrap.cxx 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csc_wrap.cxx 2008-07-18 13:19:37 UTC (rev 4549)
@@ -13882,6 +13882,2698 @@
}
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ signed char *arg6 ;
+ signed char *arg7 ;
+ signed char *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_BYTE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (signed char*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_BYTE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (signed char*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_BYTE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (signed char*) array_data(temp8);
+ }
+ csc_matvecs< int,signed char >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(signed char const (*))arg6,(signed char const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned char *arg6 ;
+ unsigned char *arg7 ;
+ unsigned char *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_UBYTE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned char*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_UBYTE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned char*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_UBYTE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned char*) array_data(temp8);
+ }
+ csc_matvecs< int,unsigned char >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned char const (*))arg6,(unsigned char const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ short *arg6 ;
+ short *arg7 ;
+ short *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_SHORT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (short*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_SHORT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (short*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_SHORT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (short*) array_data(temp8);
+ }
+ csc_matvecs< int,short >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(short const (*))arg6,(short const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned short *arg6 ;
+ unsigned short *arg7 ;
+ unsigned short *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_USHORT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned short*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_USHORT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned short*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_USHORT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned short*) array_data(temp8);
+ }
+ csc_matvecs< int,unsigned short >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned short const (*))arg6,(unsigned short const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ int *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_INT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (int*) array_data(temp8);
+ }
+ csc_matvecs< int,int >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(int const (*))arg6,(int const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned int *arg6 ;
+ unsigned int *arg7 ;
+ unsigned int *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_UINT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_UINT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned int*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_UINT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned int*) array_data(temp8);
+ }
+ csc_matvecs< int,unsigned int >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned int const (*))arg6,(unsigned int const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ long long *arg6 ;
+ long long *arg7 ;
+ long long *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_LONGLONG, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (long long*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_LONGLONG, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (long long*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_LONGLONG);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (long long*) array_data(temp8);
+ }
+ csc_matvecs< int,long long >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(long long const (*))arg6,(long long const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned long long *arg6 ;
+ unsigned long long *arg7 ;
+ unsigned long long *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_ULONGLONG, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned long long*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_ULONGLONG, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned long long*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_ULONGLONG);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned long long*) array_data(temp8);
+ }
+ csc_matvecs< int,unsigned long long >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned long long const (*))arg6,(unsigned long long const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ float *arg6 ;
+ float *arg7 ;
+ float *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_FLOAT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (float*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_FLOAT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (float*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_FLOAT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (float*) array_data(temp8);
+ }
+ csc_matvecs< int,float >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(float const (*))arg6,(float const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ double *arg6 ;
+ double *arg7 ;
+ double *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_DOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (double*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_DOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (double*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_DOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (double*) array_data(temp8);
+ }
+ csc_matvecs< int,double >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(double const (*))arg6,(double const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ long double *arg6 ;
+ long double *arg7 ;
+ long double *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_LONGDOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (long double*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_LONGDOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (long double*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_LONGDOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (long double*) array_data(temp8);
+ }
+ csc_matvecs< int,long double >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(long double const (*))arg6,(long double const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ npy_cfloat_wrapper *arg6 ;
+ npy_cfloat_wrapper *arg7 ;
+ npy_cfloat_wrapper *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_CFLOAT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (npy_cfloat_wrapper*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CFLOAT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (npy_cfloat_wrapper*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_CFLOAT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (npy_cfloat_wrapper*) array_data(temp8);
+ }
+ csc_matvecs< int,npy_cfloat_wrapper >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(npy_cfloat_wrapper const (*))arg6,(npy_cfloat_wrapper const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ npy_cdouble_wrapper *arg6 ;
+ npy_cdouble_wrapper *arg7 ;
+ npy_cdouble_wrapper *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_CDOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (npy_cdouble_wrapper*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CDOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (npy_cdouble_wrapper*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_CDOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (npy_cdouble_wrapper*) array_data(temp8);
+ }
+ csc_matvecs< int,npy_cdouble_wrapper >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(npy_cdouble_wrapper const (*))arg6,(npy_cdouble_wrapper const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ npy_clongdouble_wrapper *arg6 ;
+ npy_clongdouble_wrapper *arg7 ;
+ npy_clongdouble_wrapper *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csc_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csc_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csc_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csc_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_CLONGDOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (npy_clongdouble_wrapper*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CLONGDOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (npy_clongdouble_wrapper*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_CLONGDOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (npy_clongdouble_wrapper*) array_data(temp8);
+ }
+ csc_matvecs< int,npy_clongdouble_wrapper >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(npy_clongdouble_wrapper const (*))arg6,(npy_clongdouble_wrapper const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csc_matvecs(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[9];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = (int)PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_4(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_5(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_6(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_7(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_8(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_9(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_10(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_11(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_12(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_13(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csc_matvecs__SWIG_14(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'csc_matvecs'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " csc_matvecs< int,signed char >(int const,int const,int const,int const [],int const [],signed char const [],signed char const [],signed char [])\n"
+ " csc_matvecs< int,unsigned char >(int const,int const,int const,int const [],int const [],unsigned char const [],unsigned char const [],unsigned char [])\n"
+ " csc_matvecs< int,short >(int const,int const,int const,int const [],int const [],short const [],short const [],short [])\n"
+ " csc_matvecs< int,unsigned short >(int const,int const,int const,int const [],int const [],unsigned short const [],unsigned short const [],unsigned short [])\n"
+ " csc_matvecs< int,int >(int const,int const,int const,int const [],int const [],int const [],int const [],int [])\n"
+ " csc_matvecs< int,unsigned int >(int const,int const,int const,int const [],int const [],unsigned int const [],unsigned int const [],unsigned int [])\n"
+ " csc_matvecs< int,long long >(int const,int const,int const,int const [],int const [],long long const [],long long const [],long long [])\n"
+ " csc_matvecs< int,unsigned long long >(int const,int const,int const,int const [],int const [],unsigned long long const [],unsigned long long const [],unsigned long long [])\n"
+ " csc_matvecs< int,float >(int const,int const,int const,int const [],int const [],float const [],float const [],float [])\n"
+ " csc_matvecs< int,double >(int const,int const,int const,int const [],int const [],double const [],double const [],double [])\n"
+ " csc_matvecs< int,long double >(int const,int const,int const,int const [],int const [],long double const [],long double const [],long double [])\n"
+ " csc_matvecs< int,npy_cfloat_wrapper >(int const,int const,int const,int const [],int const [],npy_cfloat_wrapper const [],npy_cfloat_wrapper const [],npy_cfloat_wrapper [])\n"
+ " csc_matvecs< int,npy_cdouble_wrapper >(int const,int const,int const,int const [],int const [],npy_cdouble_wrapper const [],npy_cdouble_wrapper const [],npy_cdouble_wrapper [])\n"
+ " csc_matvecs< int,npy_clongdouble_wrapper >(int const,int const,int const,int const [],int const [],npy_clongdouble_wrapper const [],npy_clongdouble_wrapper const [],npy_clongdouble_wrapper [])\n");
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_csc_elmul_csc__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
int arg1 ;
@@ -28645,6 +31337,40 @@
"csc_matvec(int n_row, int n_col, int Ap, int Ai, npy_clongdouble_wrapper Ax, \n"
" npy_clongdouble_wrapper Xx, npy_clongdouble_wrapper Yx)\n"
""},
+ { (char *)"csc_matvecs", _wrap_csc_matvecs, METH_VARARGS, (char *)"\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, signed char Ax, \n"
+ " signed char Xx, signed char Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned char Ax, \n"
+ " unsigned char Xx, unsigned char Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, short Ax, \n"
+ " short Xx, short Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned short Ax, \n"
+ " unsigned short Xx, unsigned short Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, int Ax, \n"
+ " int Xx, int Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned int Ax, \n"
+ " unsigned int Xx, unsigned int Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, long long Ax, \n"
+ " long long Xx, long long Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, unsigned long long Ax, \n"
+ " unsigned long long Xx, \n"
+ " unsigned long long Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, float Ax, \n"
+ " float Xx, float Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, double Ax, \n"
+ " double Xx, double Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, long double Ax, \n"
+ " long double Xx, long double Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, npy_cfloat_wrapper Ax, \n"
+ " npy_cfloat_wrapper Xx, \n"
+ " npy_cfloat_wrapper Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, npy_cdouble_wrapper Ax, \n"
+ " npy_cdouble_wrapper Xx, \n"
+ " npy_cdouble_wrapper Yx)\n"
+ "csc_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Ai, npy_clongdouble_wrapper Ax, \n"
+ " npy_clongdouble_wrapper Xx, \n"
+ " npy_clongdouble_wrapper Yx)\n"
+ ""},
{ (char *)"csc_elmul_csc", _wrap_csc_elmul_csc, METH_VARARGS, (char *)"\n"
"csc_elmul_csc(int n_row, int n_col, int Ap, int Ai, signed char Ax, \n"
" int Bp, int Bi, signed char Bx, int Cp, int Ci, \n"
Modified: trunk/scipy/sparse/sparsetools/csr.h
===================================================================
--- trunk/scipy/sparse/sparsetools/csr.h 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csr.h 2008-07-18 13:19:37 UTC (rev 4549)
@@ -5,6 +5,8 @@
#include <algorithm>
#include <functional>
+#include "dense.h"
+
/*
* Extract main diagonal of CSR matrix A
*
@@ -854,6 +856,47 @@
}
+/*
+ * Compute Y += A*X for CSR matrix A and dense block vectors X,Y
+ *
+ *
+ * Input Arguments:
+ * I n_row - number of rows in A
+ * I n_col - number of columns in A
+ * I n_vecs - number of column vectors in X and Y
+ * I Ap[n_row+1] - row pointer
+ * I Aj[nnz(A)] - column indices
+ * T Ax[nnz(A)] - nonzeros
+ * T Xx[n_col,n_vecs] - input vector
+ *
+ * Output Arguments:
+ * T Yx[n_row,n_vecs] - output vector
+ *
+ */
+template <class I, class T>
+void csr_matvecs(const I n_row,
+ const I n_col,
+ const I n_vecs,
+ const I Ap[],
+ const I Aj[],
+ const T Ax[],
+ const T Xx[],
+ T Yx[])
+{
+ for(I i = 0; i < n_row; i++){
+ T * y = Yx + n_vecs * i;
+ for(I jj = Ap[i]; jj < Ap[i+1]; jj++){
+ const I j = Aj[jj];
+ const T a = Ax[jj];
+ const T * x = Xx + n_vecs * j;
+ axpy(n_vecs, a, x, y);
+ }
+ }
+}
+
+
+
+
template<class I, class T>
void get_csr_submatrix(const I n_row,
const I n_col,
Modified: trunk/scipy/sparse/sparsetools/csr.i
===================================================================
--- trunk/scipy/sparse/sparsetools/csr.i 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csr.i 2008-07-18 13:19:37 UTC (rev 4549)
@@ -22,6 +22,7 @@
INSTANTIATE_ALL(csr_tobsr)
INSTANTIATE_ALL(csr_matmat_pass2)
INSTANTIATE_ALL(csr_matvec)
+INSTANTIATE_ALL(csr_matvecs)
INSTANTIATE_ALL(csr_elmul_csr)
INSTANTIATE_ALL(csr_eldiv_csr)
INSTANTIATE_ALL(csr_plus_csr)
Modified: trunk/scipy/sparse/sparsetools/csr.py
===================================================================
--- trunk/scipy/sparse/sparsetools/csr.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csr.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -299,6 +299,43 @@
"""
return _csr.csr_matvec(*args)
+def csr_matvecs(*args):
+ """
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, signed char Ax,
+ signed char Xx, signed char Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned char Ax,
+ unsigned char Xx, unsigned char Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, short Ax,
+ short Xx, short Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned short Ax,
+ unsigned short Xx, unsigned short Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, int Ax,
+ int Xx, int Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned int Ax,
+ unsigned int Xx, unsigned int Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, long long Ax,
+ long long Xx, long long Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned long long Ax,
+ unsigned long long Xx,
+ unsigned long long Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, float Ax,
+ float Xx, float Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, double Ax,
+ double Xx, double Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, long double Ax,
+ long double Xx, long double Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, npy_cfloat_wrapper Ax,
+ npy_cfloat_wrapper Xx,
+ npy_cfloat_wrapper Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, npy_cdouble_wrapper Ax,
+ npy_cdouble_wrapper Xx,
+ npy_cdouble_wrapper Yx)
+ csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, npy_clongdouble_wrapper Ax,
+ npy_clongdouble_wrapper Xx,
+ npy_clongdouble_wrapper Yx)
+ """
+ return _csr.csr_matvecs(*args)
+
def csr_elmul_csr(*args):
"""
csr_elmul_csr(int n_row, int n_col, int Ap, int Aj, signed char Ax,
Modified: trunk/scipy/sparse/sparsetools/csr_wrap.cxx
===================================================================
--- trunk/scipy/sparse/sparsetools/csr_wrap.cxx 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/csr_wrap.cxx 2008-07-18 13:19:37 UTC (rev 4549)
@@ -21145,6 +21145,2698 @@
}
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ signed char *arg6 ;
+ signed char *arg7 ;
+ signed char *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_BYTE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (signed char*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_BYTE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (signed char*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_BYTE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (signed char*) array_data(temp8);
+ }
+ csr_matvecs< int,signed char >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(signed char const (*))arg6,(signed char const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned char *arg6 ;
+ unsigned char *arg7 ;
+ unsigned char *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_UBYTE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned char*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_UBYTE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned char*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_UBYTE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned char*) array_data(temp8);
+ }
+ csr_matvecs< int,unsigned char >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned char const (*))arg6,(unsigned char const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ short *arg6 ;
+ short *arg7 ;
+ short *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_SHORT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (short*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_SHORT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (short*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_SHORT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (short*) array_data(temp8);
+ }
+ csr_matvecs< int,short >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(short const (*))arg6,(short const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned short *arg6 ;
+ unsigned short *arg7 ;
+ unsigned short *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_USHORT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned short*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_USHORT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned short*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_USHORT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned short*) array_data(temp8);
+ }
+ csr_matvecs< int,unsigned short >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned short const (*))arg6,(unsigned short const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ int *arg6 ;
+ int *arg7 ;
+ int *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_INT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (int*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_INT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (int*) array_data(temp8);
+ }
+ csr_matvecs< int,int >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(int const (*))arg6,(int const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned int *arg6 ;
+ unsigned int *arg7 ;
+ unsigned int *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_UINT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned int*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_UINT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned int*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_UINT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned int*) array_data(temp8);
+ }
+ csr_matvecs< int,unsigned int >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned int const (*))arg6,(unsigned int const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ long long *arg6 ;
+ long long *arg7 ;
+ long long *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_LONGLONG, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (long long*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_LONGLONG, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (long long*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_LONGLONG);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (long long*) array_data(temp8);
+ }
+ csr_matvecs< int,long long >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(long long const (*))arg6,(long long const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ unsigned long long *arg6 ;
+ unsigned long long *arg7 ;
+ unsigned long long *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_ULONGLONG, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (unsigned long long*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_ULONGLONG, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (unsigned long long*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_ULONGLONG);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (unsigned long long*) array_data(temp8);
+ }
+ csr_matvecs< int,unsigned long long >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(unsigned long long const (*))arg6,(unsigned long long const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ float *arg6 ;
+ float *arg7 ;
+ float *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_FLOAT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (float*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_FLOAT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (float*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_FLOAT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (float*) array_data(temp8);
+ }
+ csr_matvecs< int,float >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(float const (*))arg6,(float const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ double *arg6 ;
+ double *arg7 ;
+ double *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_DOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (double*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_DOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (double*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_DOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (double*) array_data(temp8);
+ }
+ csr_matvecs< int,double >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(double const (*))arg6,(double const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ long double *arg6 ;
+ long double *arg7 ;
+ long double *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_LONGDOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (long double*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_LONGDOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (long double*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_LONGDOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (long double*) array_data(temp8);
+ }
+ csr_matvecs< int,long double >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(long double const (*))arg6,(long double const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ npy_cfloat_wrapper *arg6 ;
+ npy_cfloat_wrapper *arg7 ;
+ npy_cfloat_wrapper *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_CFLOAT, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (npy_cfloat_wrapper*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CFLOAT, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (npy_cfloat_wrapper*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_CFLOAT);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (npy_cfloat_wrapper*) array_data(temp8);
+ }
+ csr_matvecs< int,npy_cfloat_wrapper >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(npy_cfloat_wrapper const (*))arg6,(npy_cfloat_wrapper const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ npy_cdouble_wrapper *arg6 ;
+ npy_cdouble_wrapper *arg7 ;
+ npy_cdouble_wrapper *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_CDOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (npy_cdouble_wrapper*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CDOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (npy_cdouble_wrapper*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_CDOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (npy_cdouble_wrapper*) array_data(temp8);
+ }
+ csr_matvecs< int,npy_cdouble_wrapper >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(npy_cdouble_wrapper const (*))arg6,(npy_cdouble_wrapper const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ int arg3 ;
+ int *arg4 ;
+ int *arg5 ;
+ npy_clongdouble_wrapper *arg6 ;
+ npy_clongdouble_wrapper *arg7 ;
+ npy_clongdouble_wrapper *arg8 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyArrayObject *array4 = NULL ;
+ int is_new_object4 ;
+ PyArrayObject *array5 = NULL ;
+ int is_new_object5 ;
+ PyArrayObject *array6 = NULL ;
+ int is_new_object6 ;
+ PyArrayObject *array7 = NULL ;
+ int is_new_object7 ;
+ PyArrayObject *temp8 = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:csr_matvecs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "csr_matvecs" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "csr_matvecs" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "csr_matvecs" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array4 = obj_to_array_contiguous_allow_conversion(obj3, PyArray_INT, &is_new_object4);
+ if (!array4 || !require_dimensions(array4,1) || !require_size(array4,size,1)
+ || !require_contiguous(array4) || !require_native(array4)) SWIG_fail;
+
+ arg4 = (int*) array4->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array5 = obj_to_array_contiguous_allow_conversion(obj4, PyArray_INT, &is_new_object5);
+ if (!array5 || !require_dimensions(array5,1) || !require_size(array5,size,1)
+ || !require_contiguous(array5) || !require_native(array5)) SWIG_fail;
+
+ arg5 = (int*) array5->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array6 = obj_to_array_contiguous_allow_conversion(obj5, PyArray_CLONGDOUBLE, &is_new_object6);
+ if (!array6 || !require_dimensions(array6,1) || !require_size(array6,size,1)
+ || !require_contiguous(array6) || !require_native(array6)) SWIG_fail;
+
+ arg6 = (npy_clongdouble_wrapper*) array6->data;
+ }
+ {
+ npy_intp size[1] = {
+ -1
+ };
+ array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CLONGDOUBLE, &is_new_object7);
+ if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)
+ || !require_contiguous(array7) || !require_native(array7)) SWIG_fail;
+
+ arg7 = (npy_clongdouble_wrapper*) array7->data;
+ }
+ {
+ temp8 = obj_to_array_no_conversion(obj7,PyArray_CLONGDOUBLE);
+ if (!temp8 || !require_contiguous(temp8) || !require_native(temp8)) SWIG_fail;
+ arg8 = (npy_clongdouble_wrapper*) array_data(temp8);
+ }
+ csr_matvecs< int,npy_clongdouble_wrapper >(arg1,arg2,arg3,(int const (*))arg4,(int const (*))arg5,(npy_clongdouble_wrapper const (*))arg6,(npy_clongdouble_wrapper const (*))arg7,arg8);
+ resultobj = SWIG_Py_Void();
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return resultobj;
+fail:
+ {
+ if (is_new_object4 && array4) {
+ Py_DECREF(array4);
+ }
+ }
+ {
+ if (is_new_object5 && array5) {
+ Py_DECREF(array5);
+ }
+ }
+ {
+ if (is_new_object6 && array6) {
+ Py_DECREF(array6);
+ }
+ }
+ {
+ if (is_new_object7 && array7) {
+ Py_DECREF(array7);
+ }
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_csr_matvecs(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[9];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = (int)PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_BYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_UBYTE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_SHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_USHORT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_4(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_5(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_UINT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_6(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_LONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_7(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_ULONGLONG)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_8(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_FLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_9(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_DOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_10(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_LONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_11(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CFLOAT)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_12(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_13(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 8) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[3]) && PyArray_CanCastSafely(PyArray_TYPE(argv[3]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[4]) && PyArray_CanCastSafely(PyArray_TYPE(argv[4]),PyArray_INT)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[5]) && PyArray_CanCastSafely(PyArray_TYPE(argv[5]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[6]) && PyArray_CanCastSafely(PyArray_TYPE(argv[6]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ {
+ _v = (is_array(argv[7]) && PyArray_CanCastSafely(PyArray_TYPE(argv[7]),PyArray_CLONGDOUBLE)) ? 1 : 0;
+ }
+ if (_v) {
+ return _wrap_csr_matvecs__SWIG_14(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'csr_matvecs'.\n"
+ " Possible C/C++ prototypes are:\n"
+ " csr_matvecs< int,signed char >(int const,int const,int const,int const [],int const [],signed char const [],signed char const [],signed char [])\n"
+ " csr_matvecs< int,unsigned char >(int const,int const,int const,int const [],int const [],unsigned char const [],unsigned char const [],unsigned char [])\n"
+ " csr_matvecs< int,short >(int const,int const,int const,int const [],int const [],short const [],short const [],short [])\n"
+ " csr_matvecs< int,unsigned short >(int const,int const,int const,int const [],int const [],unsigned short const [],unsigned short const [],unsigned short [])\n"
+ " csr_matvecs< int,int >(int const,int const,int const,int const [],int const [],int const [],int const [],int [])\n"
+ " csr_matvecs< int,unsigned int >(int const,int const,int const,int const [],int const [],unsigned int const [],unsigned int const [],unsigned int [])\n"
+ " csr_matvecs< int,long long >(int const,int const,int const,int const [],int const [],long long const [],long long const [],long long [])\n"
+ " csr_matvecs< int,unsigned long long >(int const,int const,int const,int const [],int const [],unsigned long long const [],unsigned long long const [],unsigned long long [])\n"
+ " csr_matvecs< int,float >(int const,int const,int const,int const [],int const [],float const [],float const [],float [])\n"
+ " csr_matvecs< int,double >(int const,int const,int const,int const [],int const [],double const [],double const [],double [])\n"
+ " csr_matvecs< int,long double >(int const,int const,int const,int const [],int const [],long double const [],long double const [],long double [])\n"
+ " csr_matvecs< int,npy_cfloat_wrapper >(int const,int const,int const,int const [],int const [],npy_cfloat_wrapper const [],npy_cfloat_wrapper const [],npy_cfloat_wrapper [])\n"
+ " csr_matvecs< int,npy_cdouble_wrapper >(int const,int const,int const,int const [],int const [],npy_cdouble_wrapper const [],npy_cdouble_wrapper const [],npy_cdouble_wrapper [])\n"
+ " csr_matvecs< int,npy_clongdouble_wrapper >(int const,int const,int const,int const [],int const [],npy_clongdouble_wrapper const [],npy_clongdouble_wrapper const [],npy_clongdouble_wrapper [])\n");
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_csr_elmul_csr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
int arg1 ;
@@ -42954,6 +45646,40 @@
"csr_matvec(int n_row, int n_col, int Ap, int Aj, npy_clongdouble_wrapper Ax, \n"
" npy_clongdouble_wrapper Xx, npy_clongdouble_wrapper Yx)\n"
""},
+ { (char *)"csr_matvecs", _wrap_csr_matvecs, METH_VARARGS, (char *)"\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, signed char Ax, \n"
+ " signed char Xx, signed char Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned char Ax, \n"
+ " unsigned char Xx, unsigned char Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, short Ax, \n"
+ " short Xx, short Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned short Ax, \n"
+ " unsigned short Xx, unsigned short Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, int Ax, \n"
+ " int Xx, int Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned int Ax, \n"
+ " unsigned int Xx, unsigned int Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, long long Ax, \n"
+ " long long Xx, long long Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, unsigned long long Ax, \n"
+ " unsigned long long Xx, \n"
+ " unsigned long long Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, float Ax, \n"
+ " float Xx, float Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, double Ax, \n"
+ " double Xx, double Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, long double Ax, \n"
+ " long double Xx, long double Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, npy_cfloat_wrapper Ax, \n"
+ " npy_cfloat_wrapper Xx, \n"
+ " npy_cfloat_wrapper Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, npy_cdouble_wrapper Ax, \n"
+ " npy_cdouble_wrapper Xx, \n"
+ " npy_cdouble_wrapper Yx)\n"
+ "csr_matvecs(int n_row, int n_col, int n_vecs, int Ap, int Aj, npy_clongdouble_wrapper Ax, \n"
+ " npy_clongdouble_wrapper Xx, \n"
+ " npy_clongdouble_wrapper Yx)\n"
+ ""},
{ (char *)"csr_elmul_csr", _wrap_csr_elmul_csr, METH_VARARGS, (char *)"\n"
"csr_elmul_csr(int n_row, int n_col, int Ap, int Aj, signed char Ax, \n"
" int Bp, int Bj, signed char Bx, int Cp, int Cj, \n"
Added: trunk/scipy/sparse/sparsetools/dense.h
===================================================================
--- trunk/scipy/sparse/sparsetools/dense.h 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/sparsetools/dense.h 2008-07-18 13:19:37 UTC (rev 4549)
@@ -0,0 +1,83 @@
+#ifndef __DENSE_H__
+#define __DENSE_H__
+
+// Simplified BLAS routines and other dense linear algebra functions
+
+/*
+ * Level 1
+ */
+
+// y += a*x
+template <class I, class T>
+void axpy(const I n, const T a, const T * x, T * y){
+ for(I i = 0; i < n; i++){
+ y[i] += a * x[i];
+ }
+}
+
+// scale a vector in-place
+template <class I, class T>
+void scal(const I n, const T a, T * x){
+ for(I i = 0; i < n; i++){
+ x[i] *= a;
+ }
+}
+
+
+// dot product
+template <class I, class T>
+void dot(const I n, const T * x, const T * y){
+ T dp = 0;
+ for(I i = 0; i < n; i++){
+ dp += x[i] * y[i];
+ }
+ return dp;
+}
+
+
+// vectorize a binary operation
+template<class I, class T, class binary_operator>
+void vector_binop(const I n, const T * x, const T * y, T * z,
+ const binary_operator& op)
+{
+ for(I i = 0; i < n; i++){
+ z[i] = op(x[i],y[i]);
+ }
+}
+
+//template<class I, class T>
+//void vector_multiply(const I n, const T * x, const T * y, T * z){
+//{
+// vector_binop(n,x,y,z, std::multiplies<T>() );
+//}
+
+
+
+// Level 2
+template <class I, class T>
+void gemv(const I m, const I n, const T * A, const T * x, T * y){
+ for(I i = 0; i < m; i++){
+ T dot = y[i];
+ for(I j = 0; j < n; j++){
+ dot += A[n * i + j] * x[j];
+ }
+ y[i] = dot;
+ }
+}
+
+// Level 3
+template <class I, class T>
+void gemm(const I m, const I n, const I k, const T * A, const T * B, T * C){
+ for(I i = 0; i < m; i++){
+ for(I j = 0; j < n; j++){
+ T dot = C[n * i + j];
+ for(I _d = 0; _d < k; _d++){
+ dot += A[k * i + _d] * B[n * _d + j];
+ }
+ C[n * i + j] = dot;
+ }
+ }
+}
+
+
+#endif
Modified: trunk/scipy/sparse/tests/test_base.py
===================================================================
--- trunk/scipy/sparse/tests/test_base.py 2008-07-17 12:50:08 UTC (rev 4548)
+++ trunk/scipy/sparse/tests/test_base.py 2008-07-18 13:19:37 UTC (rev 4549)
@@ -400,7 +400,7 @@
assert_equal( result, dot(a,b) )
def test_sparse_format_conversions(self):
- A = sparse.kron([[1,0,1],[0,1,1],[1,0,0]], [[1,1],[0,1]] )
+ A = sparse.kron( [[1,0,2],[0,3,4],[5,0,0]], [[1,2],[0,3]] )
D = A.todense()
A = self.spmatrix(A)
@@ -441,7 +441,7 @@
def test_add_dense(self):
- """ Check whether adding a dense matrix to a sparse matrix works
+ """ adding a dense matrix to a sparse matrix
"""
sum1 = self.dat + self.datsp
assert_array_equal(sum1, 2*self.dat)
@@ -449,7 +449,7 @@
assert_array_equal(sum2, 2*self.dat)
def test_sub_dense(self):
- """ Check whether adding a dense matrix to a sparse matrix works
+ """ subtracting a dense matrix to/from a sparse matrix
"""
sum1 = 3*self.dat - self.datsp
assert_array_equal(sum1, 2*self.dat)
@@ -1406,6 +1406,16 @@
assert_array_equal(asp.nnz, 3*4)
assert_array_equal(asp.todense(),bsp.todense())
+ def test_bsr_matvec(self):
+ A = bsr_matrix( arange(2*3*4*5).reshape(2*4,3*5), blocksize=(4,5) )
+ x = arange(A.shape[1]).reshape(-1,1)
+ assert_equal(A*x, A.todense()*x)
+ def test_bsr_matvecs(self):
+ A = bsr_matrix( arange(2*3*4*5).reshape(2*4,3*5), blocksize=(4,5) )
+ x = arange(A.shape[1]*6).reshape(-1,6)
+ assert_equal(A*x, A.todense()*x)
+
+
if __name__ == "__main__":
nose.run(argv=['', __file__])
More information about the Scipy-svn
mailing list