Changeset 7887
 Timestamp:
 Jul 2, 2010, 9:38:46 AM (13 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/anuga_core/source/anuga/utilities/sparse.py
r7886 r7887 297 297 def __mul__(self, other): 298 298 """Multiply this matrix onto 'other' which can either be 299 a numeric vector .299 a numeric vector, a numeric matrix or another sparse matrix. 300 300 """ 301 301 … … 303 303 B = num.array(other) 304 304 except: 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 305 print 'FIXME: Only numeric types implemented so far' 306 307 return csr_mv(self,B) 332 308 333 309
Note: See TracChangeset
for help on using the changeset viewer.