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 
> <pdl-general@lists.sourceforge.net> 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 <moc...@icf.unam.mx 
>> <mailto:moc...@icf.unam.mx>> 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
>>> pdl-general@lists.sourceforge.net <mailto:pdl-general@lists.sourceforge.net>
>>> 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          | moc...@fis.unam.mx 
>> <mailto:moc...@fis.unam.mx>   /\_/\__/
>> GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB
> 
> _______________________________________________
> pdl-general mailing list
> pdl-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pdl-general

_______________________________________________
pdl-general mailing list
pdl-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-general

Reply via email to