Boost logo

Boost :

From: Joerg Walter (jhr.walter_at_[hidden])
Date: 2002-05-02 15:06:22

----- Original Message -----
From: "Toon Knapen" <toon.knapen_at_[hidden]>
To: <boost_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, gregod at, cpdaniel at, john at