Re: [eigen] Feature idea: coeffRef() ---> setCoeff()

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]




On Friday 30 July 2010 10:30:19 am Benoit Jacob wrote:
> 2010/7/30 Manoj Rajagopalan <rmanoj@xxxxxxxxx>:
> > On Friday 30 July 2010 12:08:42 am Benoit Jacob wrote:
> >> oh... i see. I guess that you omitted setCoeff in the above line, by
> >> the way, so you meant:
> >>
> >> A.selfadjointView<Lower>().setCoeff(j, j+1, value); // note: write to
> >> upper triangle
> >>
> >> so this would write 2 coeffs at once in A ? Why not. Indeed that cant
> >> be done with coeffRef. But I don't adhere to your rather complex plan
> >> of generally allowing to write to Conjugate expressions, this is not a
> >> prerequisite for that, we could just implement setCoeff in
> >> selfadjointView, where it is useful, without implementing it in stuff
> >> like conjugate() which IMO just don't want to be writable expressions.
> >>
> >> This would be much simpler --- the patch could be just a few kB's.
> >>
> >> But again, coeffRef() is definitely not going away.
> >>
> >> Benoit
> >
> > In my implementation of LLT on self-adjoint matrices with compact
> > triangular storage, which involves partitioning the matrix into 2x2 block
> > form, one step leads to an Eigen expression of the form,
> >
> >    L11.solveInPlace(L21.adjoint()); // L11 is triangular-view
>
> Oh, if that's what you wanted to do, why don't you just apply complex
> conjugation here, so this is equivalent to doing:
>
> L11.conjugate().solveInPlace(L21.transpose());
>
> Now you're good to go, because transpose() returns a writable
> expression which can perfectly be used in solve-in-place.
>
> Benoit
>

That's exactly what I settled into :-) The wish for a neater, more direct 
expression closer to the math sparked off this entire line of thought :-)

-- Manoj



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/