Ignore:
Timestamp:
Jul 1, 2010, 5:09:54 PM (14 years ago)
Author:
steve
Message:

Copied sudi's directory

Location:
trunk/anuga_core/source/anuga/utilities
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/anuga_core/source/anuga/utilities/sparse.py

    r7276 r7886  
    297297    def __mul__(self, other):
    298298        """Multiply this matrix onto 'other' which can either be
    299         a numeric vector, a numeric matrix or another sparse matrix.
     299        a numeric vector.
    300300        """
    301301
     
    303303            B = num.array(other)
    304304        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
    308332
    309333
  • trunk/anuga_core/source/anuga/utilities/util_ext.h

    r7276 r7886  
    3131
    3232
     33double 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
    3341int _gradient(double x0, double y0,
    3442              double x1, double y1,
Note: See TracChangeset for help on using the changeset viewer.