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 <karlglazebr...@mac.com> 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 >> <pdl-general@lists.sourceforge.net >> <mailto: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 >>>> <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 <mailto: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