Changeset 7886 for trunk/anuga_core
- Timestamp:
- Jul 1, 2010, 5:09:54 PM (15 years ago)
- Location:
- trunk/anuga_core/source/anuga/utilities
- Files:
-
- 2 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 %d-vector'\ 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 -
trunk/anuga_core/source/anuga/utilities/util_ext.h
r7276 r7886 31 31 32 32 33 double sign(double x) { 34 //Return sign of a double 35 36 if (x>0.0) return 1.0; 37 else if (x<0.0) return -1.0; 38 else return 0.0; 39 } 40 33 41 int _gradient(double x0, double y0, 34 42 double x1, double y1,
Note: See TracChangeset
for help on using the changeset viewer.