Changeset 7886 for trunk/anuga_core/source/anuga/utilities/sparse.py
 Timestamp:
 Jul 1, 2010, 5:09:54 PM (13 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/anuga_core/source/anuga/utilities/sparse.py
r7276 r7886 297 297 def __mul__(self, other): 298 298 """Multiply this matrix onto 'other' which can either be 299 a numeric vector , a numeric matrix or another sparse matrix.299 a numeric vector. 300 300 """ 301 301 … … 303 303 B = num.array(other) 304 304 except: 305 print 'FIXME: Only numeric types implemented so far' 306 307 return csr_mv(self,B) 305 raise ValueError, 'FIXME: Only numeric types implemented so far' 306 307 308 # Assume numeric types from now on 309 310 if len(B.shape) == 0: 311 # Scalar  use __rmul__ method 312 #R = B*self 313 raise TypeError, 'Sparse matrix X scalar not implemented' 314 315 elif len(B.shape) == 1: 316 # Vector 317 msg = 'Mismatching dimensions: You cannot multiply (%d x %d) matrix onto %dvector'\ 318 %(self.M, self.N, B.shape[0]) 319 assert B.shape[0] == self.N, msg 320 321 R = csr_mv(self,B) 322 323 324 elif len(B.shape) == 2: 325 raise TypeError, 'Sparse matrix X matrix multiplication not implemented' 326 327 else: 328 raise ValueError, 'Dimension too high: d=%d' %len(B.shape) 329 330 return R 331 308 332 309 333
Note: See TracChangeset
for help on using the changeset viewer.