On Thursday 05 March 2009 17:13:02 Garth N. Wells wrote: > We have a high-level interface which provides operations like > > A += B > > for matrices.
For the record: This is not only for the python interface. The c++ operator+= also use axpy. > This causes some problems as it hides the complexity which > is inherent in sparse matrices, in particularly with respect to whether > or not the two matrices have the same non-zero pattern. Unless someone > has a good idea as to get around this robustly, I suggest that we remove > these functions for matrices. A user can still do > > A.axpy(1.0, B) > > or > > A.axpy(1.0, B, True) > > where the last argument indicates whether or not the sparsity patterns > of A and B are the same (default is False). A naive suggestion: Is it possible to compute a unique number based on our SparsityPattern? This number could be stored as a private member of a Matrix? Then only matrices from the same SparsityPattern will be addable. When ever a Matrix is changed, by other means than M.init(sp), this number will be set to some default incompatible number. If we do not find a robust way to do this I am fine with removing the operators that use axpy, but I really think it is a neat feature which I would like to keep. Johan _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
