From: Joerg Walter (jhr.walter_at_[hidden])
Date: 2002-05-02 15:06:22
----- Original Message -----
From: "Toon Knapen" <toon.knapen_at_[hidden]>
Sent: Thursday, May 02, 2002 2:01 PM
Subject: Re: [boost] ublas: matrix clear() and operator=
> On Wednesday 01 May 2002 21:17, Joerg Walter wrote:
> > ----- Original Message -----
> > From: "Toon Knapen" <toon.knapen_at_[hidden]>
> > To: <boost_at_[hidden]>
> > Sent: Tuesday, April 30, 2002 6:09 PM
> > Subject: [boost] ublas: matrix clear() and operator=
> > > Currently, the matrices can be clear()-ed such that all elements are
> > > to 0. I would find it even more convenient to be able to use
> > > operator=(some_value_type) to assign a specific value to all the
> > > in the matrix.
> > How would you define the semantics of such an assignment operator for
> > sparse matrices?
> I think it should set all non-zeros to 0.
But it could be intended to reset the sparse matrix to the default state
> > > But I figure there's some good reason one has to use clear()
> > > instead of operator=() ?
> > Do you think, it would be worthy to add something like zero_vector<> and
> > zero_matrix<> to allow for syntactic sugar like m = zero_matrix<>()?
> This would be fine.
Ok, if no one objects we'll add these with low priority.
> Indeed as peter remarked, using operator=(double) it
> might not be clear if only the diagonal elements are assigned or the whole
> matrix. But although I regularly have to set all elements to 0, it should
> possible to use the same operation to set all elements to some specific
> value, eventually different from 0.
I'm not sure, whether this is really needed.
> As to why I need this clear() functionality : When assembling all local
> contributions of my finite elements into a large sparse matrix, I'm
> over a routine which gets as an (writeable) argument a matrix big enough
> store its contribution in (to prevent allocating a new matrix at every
> In some occasions, not all elements in this matrix will be assigned to and
> thus I have to be sure that these other entries are set to zero. The best
> to do this is to clear the matrix before assigning to some of the entries
> the matrix. And although I also would fancy initialising constructors,
> is not sufficient in my case.
Ok, so we can rule out the initializing constructor solution.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk