$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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
set
> > > 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
entries
> > > 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
also.
> > > 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
be
> 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
looping
> over a routine which gets as an (writeable) argument a matrix big enough
to
> store its contribution in (to prevent allocating a new matrix at every
call).
> 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
way
> to do this is to clear the matrix before assigning to some of the entries
in
> the matrix. And although I also would fancy initialising constructors,
this
> is not sufficient in my case.
Ok, so we can rule out the initializing constructor solution.
Regards
Joerg