Re: [eigen] inconsistent cwise() support |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] inconsistent cwise() support
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 18 Nov 2009 10:07:07 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=w8iMR2cSJcx85tA63B+tiEIFcT2BaoCMhEpAS/y8PxA=; b=fL03jhLrkquQMF4SLqswWGWQE68A+nK19OlE4EZuuLU4772BTanjYt37/R0C7aiDYu y6EryH/CjS8d15JmybUJFluISJLcBlNwUN5mObcKfzX29SeWUpnBgtUpBNFEYsaqcTCM 9stlTrcywPQcZrcsDt+cc8wpfdhrCG4PMLmMQ=
- 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=n9LkNpLK7854FVYFJz2fMzHCcuLN+CMSW19Qr5enPDOw2oOPWDw6N7P0MgwTGIpmc6 20ag3Qsh0e0Hh8YfzJYeWjoovRBkWJ6dVDIOQw6gG8i3FCNvu/MajDii/PCaasCu3Vw8 IcUZ76xlW08yJnOfOL8/sCg+5FU/w8vzHxPrI=
2009/11/18 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>
>
> On Wed, Nov 18, 2009 at 4:00 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
> wrote:
>>
>> 2009/11/18 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>> >
>> >
>> > On Wed, Nov 18, 2009 at 3:50 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>> > wrote:
>> >>
>> >> >> > Yes that's what I was going to reply: I like Jitse's proposal too
>> >> >> > but
>> >> >> > we really don't have to provide .cwiseEverything(), only the most
>> >> >> > common functions,
>> >> >> > matrix.cwiseProduct(matrix2)
>> >> >> > matrix.cwiseSum(scalar)
>> >> >> > matrix.cwiseAbs()
>> >> >> > matrix.cwiseAbs2()
>> >> >>
>> >> >> Also I wonder. If matrix.cwiseAbs() is a synonym for
>> >> >> matrix.array().abs(), perhaps we should call that matrix.arrayAbs()?
>> >> >>
>> >> >> In other words, s/cwise/array/g ? To have only 1 terminology
>> >> >> everywhere.
>> >> >>
>> >> >
>> >> > Well, the first question is whether we still want a .array() method
>> >> > or
>> >> > not?
>> >>
>> >> Oh, I hadn't understood that was the question.
>> >> Do you really think that we can do without? First it would require us
>> >> to add a ton of cwise...() functions that will not often be used
>> >> (what's the use for cwiseCos() when we have a true Array class?), and
>> >> even then, we still wouldn't have all the power that .array()
>> >> provides, e.g. think of user-defined functions taking an Array...
>> >>
>> >
>> > ok, so at the end we would have my proposal + a couple of shortcuts
>> > covering
>> > the basic needs of linear algebra. Remark that m.cwiseAbs() /
>> > m.arrayAbs()
>> > returns a matrix expression while m.arrayAbs() returns an array. So
>> > perhaps
>> > it is better to keep cwise for the shortcuts.
>>
>> (rewriting to make sure we agree, since you wrote 2x arrayAbs())
>
> oops sorry.
>
>>
>> So:
>>
>> m.cwiseAbs() returns a matrix xpr
>> m.array().abs() returns an array xpr
>>
>> So i agree with you, let's keep cwise and not have any method named
>> arrayAbs().
>
> Ok, good then I'm doing these changes in the ET-refactoring fork. I need to
> do them before going further. I will also move Cwise and other deprecated
> stuff to a new Eigen2Support module in that fork.
Great!
Benoit