Re: [eigen] Feature idea: coeffRef() ---> setCoeff() |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Feature idea: coeffRef() ---> setCoeff()
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 30 Jul 2010 14:43:04 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=4Be+0Djrvmg/5ncsm8v2+mTUCjeMEO8KG6LxnirZgiE=; b=QBOd8Hdy2SV4NlT95xYGBWUMypsMHlkX399WUjBnsFdwIlV/6P7MwkHGTa1dJ+Ikfm KnsKKZIHNAZJzztmtW578oDnMOsS8WgM/JWaYrTF5iejnlX+WHX4JLJijUjLD5hKqeaP 9AF8q+G88o5TxPKY/dVRfpLQ32B9RqQNFjZ8I=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=aySzSjcEyqfZvz2jg5kz01hNpeNJ69DsEaSv1cFtVk4qhE2xb6nVq4zBp53p49er3Y UynIyy0W9t69S4dsuV5PysoBWjZVu+/5nLKr9r3v6yKedfdomXfMP1olTBB2nTkVqBE+ xYRXEC8BWQ3oZugQyYlWSMYv0zIQ6qBoPtMXk=
yes OK, but again, some expressions just don't want to be writable!
Only expressions that read their coeffs straight from memory, possibly
want to be writable.
Benoit
2010/7/30 Manoj Rajagopalan <rmanoj@xxxxxxxxx>:
>
>
>
> 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
>
>
>