Re: [eigen] conservative resize ...

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


You're right, initializing a matrix after resizing should suffice, if
it is not slower than doing both in one step.

Marton

2009/9/4 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> Are these examples specifically for conservativeResize() ?
>
> For initializing a matrix with arbitrary value, we already have
>
> matrix = MatrixXd::Constant(rows,cols,value);
>
> Is it important to allow arbitrary value also in conservativeResize ?
>
> Benoit
>
> 2009/9/4 Márton Danóczy <marton78@xxxxxxxxx>:
>> Hi,
>>
>> I do think there is a use case to init memory with something else than
>> zero: for cumulative products with 1, for finding maxima with
>> -infinity, for finding minima with +infinity. And to give an example
>> for an arbitrary value, let's take repeated (=parallel) integrations
>> of a stochastic differential equation with the same initial value.
>> Therefore I prefer Hauke's original API.
>>
>> Marton
>>
>> 2009/9/4 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
>>> Hi,
>>>
>>> In your initial interface, allowing to extend by any arbitrary value,
>>> I don't think there was much of a use case for extending by a value
>>> other than zero. So I don't think it's a loss at all, not to have this
>>> feature. I like your current API,
>>>
>>> void conservativeResize(int rows, int cols, bool init_with_zero = false)
>>>
>>> How about defining a constant like
>>>
>>> const bool ExtendByZero = true;
>>>
>>> so that the user's code looks more explicit?
>>>
>>> Also, I don't know if the performance difference matters here, but if
>>> you want to get rid of the "if" you can always do a trick like
>>> NoChange_t. The drawback though is that it means even more overloads
>>> of conservativeResize.
>>>
>>> Benoit
>>>
>>> 2009/9/3 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>>> Hi,
>>>>
>>>> just a short question regarding my recent commit for conservative
>>>> resizing. I added an option to allow the user to set the part by which
>>>> a matrix might be extended to zero - currently via a boolean.
>>>> Initially I wanted to offer the ability to pass the scalar value
>>>> explicity which lead to problems, in particular for integer matrices.
>>>>
>>>> My initial intended interface was somethink like:
>>>>
>>>> void conservativeResize(int,int) // matrices with uninitialized memory
>>>> void conservativeResize(int,int,Scalar value) // matrices with new
>>>> memory set to value
>>>> void conservativeResize(int) // vectors with uninitialized memory
>>>> void conservativeResize(int,Scalar value) // vectors with new memory set to zero
>>>>
>>>> Here, the last and first definitions obviously clash when Scalar is int.
>>>>
>>>> Do you have any proposal how to circumvent this problem. Do we need
>>>> the uninitialized version at all for conservativeResizing? Any use
>>>> case for this?
>>>>
>>>> - Hauke
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>



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