Seems I can’t help myself! I have now found the offending line in rcols() and
can now reproduce this without rcols. That should at least make it easier to
track down.
use PDL;
$x = sequence(100)+1; # This works
$x = $x->mv(-1,0)->slice("0:3");
print $x, "\n";
$x *= 100;
print $x, "\n";
$y=&PDL::_clump_int($x,-1);
print $y, "\n"; # prints [0 0 0 0]
1;
It seems to be the particular combination of ->mv and ->slice (that was on line
693 of misc.pd). This is a 1D ndarray so the ->mv(-1,0) should do nothing.
Removing it however makes the problem go away.
Works fine in PDL-2.025. Some bug that has been introduced in ->mv ?
Sorry to the stream of consciousness series of emails. I will stop looking
now...
Karl
> On 7 Jan 2024, at 4:32 pm, Karl Glazebrook <[email protected]> wrote:
>
> OK here is some deeper diving in to the problem
>
>
> use PDL;
> $x = rcols 'tmp.dat'; # This does causes the error
> #$x = sequence(4)+1; # This works
> print $x, "\n";
> $x *= 100;
> print $x, "\n";
> $y=&PDL::_clump_int($x,-1);
> print $y, "\n"; # prints [0 0 0 0]
> ;
>
>
>
> looks like the error is happening in the internal pp routine _clump_int in
> slices.pd.
>
>
> I also found ->sever() had the same behaviour with rcols:
>
> pdl> $x = rcols 'tmp.dat'
>
> Reading data into ndarrays of type: [ Double ]
> Read in 4 elements.
>
> pdl> $x *= 100
>
>
> pdl> p $x
>
> [100 200 300 400]
> pdl> p $x->sever
>
> [0 0 0 0]
>
>
> Note this is not a general problem with dataflow, if I make a sequence and
> slice or index is then the ops work fine. It is just something weird on the
> ndarray produced by rcols.
>
> Karl
>
>
>
>
>
>> On 7 Jan 2024, at 3:41 pm, Karl Glazebrook via pdl-general
>> <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Ah! I believe the difference between medover and median is a clump(-1) to
>> collapse the dimensions
>>
>> There does it indeed to be something wrong with clump too, so that is
>> probably the underlying cause
>>
>> pdl> $x = rcols 'tmp.dat'
>>
>> Reading data into ndarrays of type: [ Double ]
>> Read in 4 elements.
>>
>> pdl> p $x
>>
>> [1 2 3 4]
>> pdl> $x *= 100
>>
>>
>> pdl> p $x
>>
>> [100 200 300 400]
>> pdl> p $x->clump(-1)
>>
>> [0 0 0 0]
>>
>> What could be happening in rcols() that produces an ndarray that behaves
>> like that?
>>
>> Karl
>>
>>
>>> On 7 Jan 2024, at 12:48 pm, Luis Mochan <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>> I noticed that medover and maxover do work as expected in this case.
>>>
>>>
>>> On Sun, Jan 07, 2024 at 11:26:56AM +1100, Karl Glazebrook via pdl-general
>>> wrote:
>>>> Hi all,
>>>>
>>>> This dinosaur just upgraded from PDL v2.025 to v.2.084 (yes, I know that
>>>> is lame)
>>>>
>>>> I noticed a few things when running one of my complicated codes, I will
>>>> start seperate email threads
>>>>
>>>> First there seems to be a serious rcols bug:
>>>>
>>>>
>>>> e.g. create a file
>>>>
>>>> # tmp.dat
>>>> 1
>>>> 2
>>>> 3
>>>> 4
>>>>
>>>>
>>>> Loaded PDL v2.084 (supports bad values)
>>>> pdl> $x = rcols 'tmp.dat'
>>>> Reading data into ndarrays of type: [ Double ]
>>>> Read in 4 elements.
>>>>
>>>> pdl> p $x
>>>> [1 2 3 4]
>>>> pdl> $x *= 100
>>>>
>>>> pdl> p $x
>>>> [100 200 300 400]
>>>> pdl> p median($x)
>>>> 0
>>>> pdl> p $x
>>>> [100 200 300 400]
>>>>
>>>>
>>>> It seems the median function sees the values BEFORE the inplace
>>>> multiplacation, whereas print does not. This is very bad. min() and max()
>>>> are similar. No idea what is going on here! The behaviour or absent from
>>>> v2.025
>>>>
>>>> Notes
>>>> - making a $x->copy() removes the effect
>>>> - creating $x using sequence also removes, so it is something to do with
>>>> rcols() and not inplace in general?
>>>>
>>>> I’d be interested to know if others can reproduce this. It definitely
>>>> needs a fix
>>>>
>>>> best
>>>>
>>>> Karl
>>>>
>>>>
>>>>
>>>
>>>
>>>> _______________________________________________
>>>> pdl-general mailing list
>>>> [email protected]
>>>> <mailto:[email protected]>
>>>> https://lists.sourceforge.net/lists/listinfo/pdl-general
>>>> <https://lists.sourceforge.net/lists/listinfo/pdl-general>
>>>
>>>
>>> --
>>>
>>> o
>>> W. Luis Mochán, | tel:(52)(777)329-1734 /<(*)
>>> Instituto de Ciencias Físicas, UNAM | fax:(52)(777)317-5388 `>/ /\
>>> Av. Universidad s/n CP 62210 | (*)/\/ \
>>> Cuernavaca, Morelos, México | [email protected]
>>> <mailto:[email protected]> /\_/\__/
>>> GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16 C2DF 5F0A C52B 791E B9EB
>>
>> _______________________________________________
>> pdl-general mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/pdl-general
>
_______________________________________________
pdl-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pdl-general