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.
gael.
Benoit