Good point. The other factor might be that Steve is using PDL-2.4.3 where you were testing the expression with PDL-cvs.
Craig DeForest wrote: > Steve, > > Are you sure you sent us the exact expression you used below? For > example, if you masked > your very large data set with something like: > > $c = maximum( ($a==$b->dummy)->xchg(0,1)) != 0 && > (xvals($b->dim(0))<5000)) > > to look at only the first 5000 rows, then the "&&" would throw the > 'multielement' error, because && is a short-circuiting operation. In > general, you have to be in a branching logical construct to throw that > error, because there's no way to evaluate the argument of the branch > in anything but Perl's boolean context. The branching logical > constructs are the tests of the 'if', 'unless', 'elsif', 'for(;;)', > 'while', and 'until' statements, and the '?:', '&&', and '||' > operators. The reason your error message is puzzling is that your > example doesn't contain any of those, so if you are using that exact > expression it indicates something extremely peculiar going on in the > guts of PDL. > > > On Sep 14, 2008, at 8:11 PM, Steve Cicala wrote: >> >> >> (I am using this to collect indicies in a that correspond with >> elements in >> b: >> $d=which(maximum (($a==$b->dummy)->xchg(0,1))!=0) >> ). >> >> Now, when I try to use this operation for large numbers (i.e. $a is >> 480000x1 >> and $b is 500x1) I get: >> >> 'multielement piddle in a conditional expression' >> >> --And I get this error whether calculating $c on its own, or just >> sticking >> the expression that generates $c into the one that generates $d. > > > _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
